数据结构课程设计报告

上传人:大米 文档编号:505090789 上传时间:2023-02-07 格式:DOCX 页数:25 大小:278.32KB
返回 下载 相关 举报
数据结构课程设计报告_第1页
第1页 / 共25页
数据结构课程设计报告_第2页
第2页 / 共25页
数据结构课程设计报告_第3页
第3页 / 共25页
数据结构课程设计报告_第4页
第4页 / 共25页
数据结构课程设计报告_第5页
第5页 / 共25页
点击查看更多>>
资源描述

《数据结构课程设计报告》由会员分享,可在线阅读,更多相关《数据结构课程设计报告(25页珍藏版)》请在金锄头文库上搜索。

1、课程设计报告课程:数据结构学号:姓名:班级:教师:时间:计算机科学与技术系设计名称:简单的职工管理系统设计目的与要求:课程设计目的:数据结构是计算机专业一门重要的专业技术基础课程。本课程较系统地介绍了软件设计中常用的数据结构以及相应的存储结构和实现算法,介绍了常用的多种查找和排序技术。本课程将为整个专业的学习以及软件设计水平的提高打下良好的基础。为了学好数据结构,必须掌握编写一些在特定数据结构上的算法,并通过上机调试,更好地掌握各种数据结构及其特点,此次数据结构 课程设计目的正在于此。经过本次课程设讣,我们对于数据结构基本理论和存储结构及算法设讣将有更加深入的理解,并提高我们在实际设计操作中系

2、统分析、结构确定、算法选择、数学建模和信息加工的能力,提高我们的C/C+语言程序设计能力,以及培养学 我们编写程序设计文档的能力。详细要求:(1)问题说明设计一个简单的职工管理系统,按照课程设计的要求,实现对职工信息的新增、修改、插入、删除、以及排序操作。(2)输入要求山系统管理员依次输入现有职工和新增职工的以下信息:姓名(可以重复)、性别、出生年月、工作年月、学历、职务、地址、电话等信息,并且注意输入时姓名、学历、职务、地址为字符串形式,性别为字符,其余的为长整型数字。(3)输出要求并输出相应的系统管理员根据公司的人员流动情况,选择系统提供的各项功能进行操作,结果。夂体理求:职工对彖包括姓名

3、、性别、出生年月、工作年月、学历、职务、住址、电话等信息。(1) 新增一名职工:将新增职工对象按姓名以字典方式职工管理文件中。(2) 删除一名职工:从职工管理文件中删除一名职工对象。(3) 查询:从职工管理文件中査询符合某些条件的职工。(4) 修改:检索某个职工对象,对苴某些属性进行修改。(5) 排序:按某种需要对职工对象文件进行排序。设计所用软件环境或器材、原理与说明:Windows 7, Microsoft Visual C+6.0问题的模型化描述及求解算法的简要描述:根据职工管理系统问题的描述和详细需求分析,要达到上述功能,链表的数 职工信息,并对其进行相应的插入、删除、修改、查询、排序

4、、保存等操作。(1) 输入功能的实现:要想实现职工管理系统的输入,必须要建立一个职 统的抽象数据类型,其中职丄信息以链表的存储方式实现。(2) 系统处理功能的实现:系统管理员根据公司的人员流动惜况,在提示 示下,选择相应的服务进行操作。(3) 输出的实现:根据选择的操作,输出与之对应的信息。据结构来存储丄信息系信息的提测试模块 块输出模块斗输入模块系统处理 模块图1系统流程图职工根据职工管理系统问题的分析和设计要求,可以得到该职1:管理系统可以分为五 个模块:信息添加模块、职工信息修改模块、职工信息删除模块、职工信息查询模块、职丄信息排序模块。其系统功能结构如图2所示幵始输入职工人数査询职工信

5、息职修工职 息工信息-nJ和对应的信息显示主菜氓提示图2系统功能结构图软件组成及使用说明:主函数设计根据详细设计要求,可以得到主函数代码及其对应的程序流程图:在主函数中,实现了友好的界面设计。系统需要输入职工的基本信息:姓名、性别、出生年月、工作年月、学历、职务、住址、电话等。这个系统还利用键盘输入提供的主菜单服务,在主菜单中,有七种操作的调用:新增职工信息: 查询职工信息: 删除职工信息:修改职工信息: 职工信息排序: 显示职工信息:addWorker() serWorker() delWorker() chaWorker() sortWorker() showWorker()1.数据类型定

6、义char n ame20;char sex;struct Workerslong birthday;long workday;chardiploma20;charpositi on 20;charaddress20;long teleph one;worker 100;2.查找算法设计在查询算法中,职工管理系统提供了七种查询操作,实现了系统的人性化查询操作。这些查询操作分别为:对姓名进行查询,对性别进行查询,对出生年月进行查询,对工作年月进行查询,对学历进行查询,对职位进行查询,对住址进行查询,对电话进行查询等一些列操作。查找算法中,利用链表的指针的移动扫描整个职工信息表,利用strcmp(

7、)函数判断字符串是否匹配。查询算法程序流程图如图 3所示:査询时工作年月査询选择除上述数7Z外的操作图3査询算法程序流程图3?排序算法设计在排序算法中,职工管理系统提供了四种查询操作,实现了系统的基本排序操作。这些排序操作分别为:对姓名进行排序,对性别进行排序,对出生年月进行排序,对工作年月进行排序,等一些列操作。排序算法中,利用链表的指针的移动扫描整个职工信息表,利用strcmpO函数判断字符串是否匹配。排序算法流程图如图4所示:无翱排序生退出排 序系统|对工作日|期排序对性别排序程序清单:#i nclude#i ncludevstri ng.h#i nclude #defi ne max

8、100int i = 0;int j = 0;struct Workerschar n ame20; char sex;long birthday; long workday;char diploma20;char positi on 20;char address20); char teleph on e20;worker100;void showWorker() cout?Mii姓名性别” VV出生年月n?H工作年月VV”学历” vv”职务H?H住址” vv电话n ?cout? worker。, name”?3vorkerj.sexM?workerj.birthdayM?workerj.w

9、orkdayM?workerj.diploi naM ?workerU).positi on1 ?workerj .addressH?workerj.teleph one?en dl;void addWorker()if(i = max)cout?n 职工表已满!nH; char ch;coutvv请输入职工姓名:nu;ci n?workeri. name;coutvc 谓输入职工性别:(M:男,F:女)n” ; cin?workeri.sex;coutvv 请输入职工出生年月(如:20110101) ; I1U; cin?workeribirthday;cout?B输入职工工作年月(如:20

10、110101): n “ci n?workeri.workday;cout? *请输入职工学历:n “ci n?workeri.diploma;coutvv请输入职工职务:iiu;cin? workeri.positi on;cout?iW 输入职工住址:ii;ci n?workeri.address;cout “请输入职工电话:I1U;ci n?workeri.teleph one;i+;cout?* ?是否继续添加?( y/n ) n ” ;/提示是否继续cin?ch;while ( ch = y II ch = fYf);判断是否继续void delWorker ()if( i = 0)

11、_coutvv职工信息表为空!n” ;elsechar n ame20;cout?n请输入被删职工姓名:n” ; cin?name;int k = 0;int I = 1;for(;k =i;k+)if(strcmp(workerk.name,name) = 0) if(k = i)】? ;else for(;k=i;k+) workerfk = workerk+l;if(l!=l) coutvv 训除成功! nH;void serWorker()if(i = 0)coutvv ”职工信息表为空! I1;elseint opr; int 1 = 1;int k = 0; double n;ch

12、ar ch;char in20;coutvv 请输入査询方式:n”;cout?nl.按姓名查找!nH;cout?H2 .按性别查找!n”;cout?n3.按出生年月查找!n ; coutw “按工作年月查找!n “ coutv “5按学历査找!n”; coutvv6 . 按职务查找! nH;coutvv “.7按地址查找!n ; cout?n8.按电话查找! n “ cin?opr;switch(opr)case 1:cout ”请输入职工姓名: n“; cin? in;for(;k=i;k+) if(strcmp(workerk.name,in)=0) j=k ; showVVorker()

13、;if(l=l)cout? *未找到该名职工! n”; break; case 2:cout “谓输入职工性别 : n“; cin?ch;k = 0;1 = 1; for(;k=i;k+)if(workerk.sex = ch)j=k ; showVVorker();if(l=l)cout?n未找到该名职工!iT;break;case 3:cout?MiW 输入职工出生年月: n“; cin?n; k = 0;1 = 1;for(;k=i;k+)if(workerk.birthday = n)j=k ; showVVorker();if(l=l)cout 未找到该名职工! I1; break;case 4:cout “请输入职工工作年月 : n“; cin? n;k = 0;1 = 1; for(;k=i;k+)if(workerk.workclay = n)j=k ; showVVorkerO;if(l=l)cout? * 未找到该名职工! n” ; break;case 5: c

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号