欢迎来到天天文库
浏览记录
ID:44509452
大小:386.26 KB
页数:19页
时间:2019-10-22
《数据结构课程设计简单的职工管理系统》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、◎&上履後鼻丈$数据结构课程设计题目名称:简单的职工管理系统计算机科学与技术学院一•需求分析1•问题描述对单位的职工进行管理,包括插入、删除、查找、排序等功能。2.要求职工对象包括姓名、性别、岀生年月、工作年月、学历、职务、住址、电话等信息。(1)新增一名职工:将新增职工对象按姓名以字典方式职工管理文件中。(2)删除一名职工:从职工管理文件中删除一名职工对象。(3)查询:从职工管理文件屮查询符合某些条件的职工。(4)修改:检索某个职工对象,对其某些屈性进行修改。(5)排序:按某种需要对职工对象文件进行排序。3•实现提示职工对象数不必很多,便于一次读入
2、内存,所有操作不经过内外存交换。存。(1)由键盘输入职工对象,以文件方式保存。程序执行时先将文件读入内(2)对职工对象中的”姓名”按字典顺序进行排序。(3)对排序后的职工对象进行增、删、查询、修改等操作。二.概要设计1•设计一个职工的结构体typedefstructWorker{char*name;char*sex;cha严Bothdate;char*Workdate;char*school;char*duty;char*address;char*phone;structWorker水next;}worker;2•主体函数(1)•输入函数voidSc
3、anfwork(worker**phead,worker**pendantnum);(2)•输出函数voidPrintfwork(worker*phead);(3).查询职工函数voidFindworker(worker*phead);(4).更新职工函数voidUpdata(worker*phead);(5)•删除职工函数voidDelwork(worker**phead,worker**pend);voidDelete(worker**phead,worker**pend,char*name);(1)•按字典排序函数worker*Sort(wor
4、ker**phead,worker**pendjntnum);(1).文件调用函数voidsave(worker*phead);(2)・增加职工函数voidAddworker(worker**phead,worker**pend,worker*p);worker*Getnodeln();三•详细设计1•流程图2.代码详细分析(1)•输入函数voidScanfwork(worker**phead,worker**pendjntnum)inti;srand((unsignedint)time(O));for(i=0;i5、r(phead,pend,Getwork());}}⑵.输出函数voidPrintfwork(worker*phead){while(phead){printf("%s%s%s%s%s%s%s%s",phead->name,phead->sex,phead->Bothdate,phead->Workdate,phead->school,phead->duty9phead->phone,phead・>address);phead=phead->next;}printfC'b返回主菜单”);key=getchar();switch(key){case6、b:return;break;default:printf(”按错了”);}(3).查询职工函数voidFindworker(worker*phead){char*keyword=NULL;worker*w=NULL;worker*newhead=NULL;worker*newend=NULL;worker*pDel=NULL;worker*bj=phead;while(l){while(l){printfC*请输入要查询的关键字:”);keyword=getstring();printf(n按a键确认你的输入,按其他键重新输入:”);if(ge7、tkey()==,a,){break;}else{free(keyword);keyword=NULL;}}phead=bj;while(phead){if(stmcmp(phead->name,keyword,strlen(keyword))==08、9、strncmp(phead->sex,keyword,strlen(keyword))==010、11、strncmp(phead->Bothdate,keyword,strlen(keyword))==012、13、strncmp(phead->Workdate,keyword,strlen(keyword))=014、15、16、strncmp(phead->school,keyword,strlen(keyword))==017、18、s
5、r(phead,pend,Getwork());}}⑵.输出函数voidPrintfwork(worker*phead){while(phead){printf("%s%s%s%s%s%s%s%s",phead->name,phead->sex,phead->Bothdate,phead->Workdate,phead->school,phead->duty9phead->phone,phead・>address);phead=phead->next;}printfC'b返回主菜单”);key=getchar();switch(key){case
6、b:return;break;default:printf(”按错了”);}(3).查询职工函数voidFindworker(worker*phead){char*keyword=NULL;worker*w=NULL;worker*newhead=NULL;worker*newend=NULL;worker*pDel=NULL;worker*bj=phead;while(l){while(l){printfC*请输入要查询的关键字:”);keyword=getstring();printf(n按a键确认你的输入,按其他键重新输入:”);if(ge
7、tkey()==,a,){break;}else{free(keyword);keyword=NULL;}}phead=bj;while(phead){if(stmcmp(phead->name,keyword,strlen(keyword))==0
8、
9、strncmp(phead->sex,keyword,strlen(keyword))==0
10、
11、strncmp(phead->Bothdate,keyword,strlen(keyword))==0
12、
13、strncmp(phead->Workdate,keyword,strlen(keyword))=0
14、
15、
16、strncmp(phead->school,keyword,strlen(keyword))==0
17、
18、s
此文档下载收益归作者所有