您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 人事档案/员工关系 > 数据结构员工管理系统
1一、设计题目[问题描述]每个员工的信息包括:编号、姓名、性别、出生年月、学历职务、电话、住址等。系统能够完成员工信息的查询、更新、插入、删除、排序等功能。[基本要求](1)排序:按不同关键字,对所有员工的信息进行排序。(2)查询:按特定条件查找员工。(3)更新:按编号对某个员工的某项信息进行修改。(4)插入:加入新员工的信息。(5)删除:按编号删除已离职的员工的信息。二、运行环境MrosoftVisualC++6.02三、算法设计的思想构造链表存储用户记录。四、算法的流程图五、算法设计分析(1)构造顺序表存储用户记录。(2)利用冒泡法对用户名和号码分别进行排序(3)利用直接查找法进行查找3六、源代码#includestdio.h#includestdlib.h#includestring.h//定义节点类型typedefstructnode{charid[10];charname[10];charsex[10];charbirth[10];charxueli[10];charzhiwu[10];charphone[10];charaddress[10];structnode*next;}node,*linklist;//头插法生成单链表intcreatlist(linklist&L){linklistp;p=(linklist)malloc(sizeof(node));if(!p){return(0);}else{printf(请输入员工编号\n);scanf(%s,p-id);printf(请输入员工姓名\n);scanf(%s,p-name);printf(请输入员工性别\n);4scanf(%s,p-sex);printf(请输入员工生日\n);scanf(%s,p-birth);printf(请输入员工学历\n);scanf(%s,p-xueli);printf(请输入员工职务\n);scanf(%s,p-zhiwu);printf(请输入员工电话\n);scanf(%s,p-phone);printf(请输入员工地址\n);scanf(%s,p-address);}p-next=L-next;L-next=p;}//初始化单链表intinitlist(linklist&L){L=(linklist)malloc(sizeof(node));if(!L)return(0);L-next=NULL;return1;}//显示所有员工信息voiddisplay(linklist&L){linklistp;for(p=L-next;p;p=p-next){printf(编号%s,p-id);printf(姓名%s,p-name);printf(性别%s,p-sex);printf(生日%s,p-birth);5printf(学历%s,p-xueli);printf(职务%s,p-zhiwu);printf(电话%s,p-phone);printf(地址%s\n,p-address);}}//按id删除intdel(linklist&L,charid[10]){node*p;node*r;p=L-next;r=L;while(!(strcmp(p-id,id)==0)&&p){r=p;p=p-next;}if(!p)printf(\n删除位置不合理\n);else{r-next=p-next;free(p);printf(删除成功\n);}return1;}//查询idintsearchid(linklist&L,charid[10]){node*p;p=L;while(p)6{if(strcmp(p-id,id)==0){printf(编号%s,p-id);printf(姓名%s,p-name);printf(性别%s,p-sex);printf(生日%s,p-birth);printf(学历%s,p-xueli);printf(职务%s,p-zhiwu);printf(电话%s,p-phone);printf(地址%s\n,p-address);}p=p-next;}return1;}//查询姓名intsearchname(linklist&L,charname[10]){node*p;p=L;while(p){if(strcmp(p-name,name)==0){printf(编号%s,p-id);printf(姓名%s,p-name);printf(性别%s,p-sex);printf(生日%s,p-birth);printf(学历%s,p-xueli);printf(职务%s,p-zhiwu);printf(电话%s,p-phone);printf(地址%s\n,p-address);}p=p-next;}7return1;}//修改intxiugai(linklist&L,charid[10]){node*p;p=L;while(p){if(strcmp(p-id,id)==0){printf(请输入员工编号\n);scanf(%s,p-id);printf(请输入员工姓名\n);scanf(%s,p-name);printf(请输入员工性别\n);scanf(%s,p-sex);printf(请输入员工生日\n);scanf(%s,p-birth);printf(请输入员工学历\n);scanf(%s,p-xueli);printf(请输入员工职务\n);scanf(%s,p-zhiwu);printf(请输入员工电话\n);scanf(%s,p-phone);printf(请输入员工地址\n);scanf(%s,p-address);}p=p-next;}return1;}//排序voidSort(linklist&L){8linklistLa;linklistp,q,m;La=(linklist)malloc(sizeof(node));La-next=NULL;while(L-next){for(q=L-next,p=L-next;p-next;p=p-next){if((strcmp(p-next-id,q-id))0){m=p;q=p-next;}}if(q==L-next){L-next=L-next-next;}else{m-next=q-next;}q-next=La-next;La-next=q;}L=La;display(L);}9#includestdio.h#includestdlib.h#includestring.h#includehead.h//主函数voidmain(){linklistL;inta;charm;charname[10];charid[10];initlist(L);inty;intx=1;while(x){printf(****************\n);printf(1添加员工信息\n);printf(2修改员工信息\n);printf(3删除员工信息\n);printf(4查询员工信息\n);printf(5排序员工信息\n);printf(6显示所有员工信息\n);printf(7退出\n);printf(****************\n);printf(请输入代码:);scanf(%d,&y);switch(y){case1:creatlist(L);do10{printf(否继续输入?(y/n));getchar();scanf(%c,&m);if(m=='y'){creatlist(L);}}while(m!='n');break;case2:printf(请输入修改员工编号);getchar();scanf(%s,&id);xiugai(L,id);break;case3:printf(请输入删除员工编号);getchar();scanf(%s,&id);del(L,id);break;case4:printf(请输入查询方式(1按编号查询,2按姓名查找));scanf(%d,&a);if(a==1){printf(请输入查询员工编号\n);scanf(%s,&id);searchid(L,id);}if(a==2){printf(请输入查询员工姓名\n);scanf(%s,&name);11searchname(L,name);}break;case5:Sort(L);break;case6:printf(所有员工信息如下所示\n);display(L);break;case7:x=0;break;}}}12七、运行结果主界面13添加员工信息14修改员工信息15删除员工信息16查询员工信息17排序18显示19八、收获及体会实训期间,让我学到了很多东西,不仅使我在理论上对软件行业有了全新的认识,在实践能力上也得到了提高,真正地做到了学以致用,对我来说受益非浅。除此以外,我还学会了如何更好地与别人沟通,如何更好地去陈述自己的观点,如何说服别人认同自己的观点。第一次亲身感受到理论与实际的相结合,让我大开眼界。也是对以前所学知识的一个初审吧!这次实训对于我以后学习、找工作也真是受益菲浅,在这短短的几天中相信这些宝贵的经验会成为我今后成功的重要的基石。作为一名大二的学生,经过两年的在校学习,对程序设计有了理性的认识和理解。在校期间,一直忙于理论知识的学习,没有机会也没有相应的经验来参与项目的开发。所以在实训之前,软件项目开发对我来说是比较抽象的,一个完整的项目要怎么来分工以及完成该项目所要的基本步骤也不明确。而经过这次实训,让我明白一个完整项目的开发它所要经历的阶段包括:规划和用例说明、项目结构、业务功能说明书、详细设计说明书、代码实现、测试、实训手册。一个项目的开发所需要的财力、人力都是大量的,如果没有一个好的远景规划,对以后的开发进度会产生很大的影响,严重时导致在预定时间内不能完成该项目或者完成的项目跟原先计划所要实现的项目功能不符合。一份好的项目结构、业务功能和详细设计说明书对一个项目的开发有明确的指引作用,它可以使开发人员对这个项目所要实现的功能在总体上有具体的认识,并能减少在开发过程中出现不必要的脱节。代码的实现是一个项目开发成功与否的关键,可以说,前面所做的事情就是为代码的实现做铺垫。这次实训也让我深刻了解到,不管在工作中还是在生活中要和老师,同学保持良好的关系是很重要的。做事首先要学做人,要明白做人的道理,如何与人相处是现代社会的做人的一个最基本的问题。对于自己这样一个即将步入社会的人来说,需要学习的东西很多,他们就是最好的老师,正所谓“三人行,必有我师”,我们可以向他们学习很多知识、道理。在此,我应当感谢老师的指导与帮助以及学院提供此次千载难逢的实训机会。
本文标题:数据结构员工管理系统
链接地址:https://www.777doc.com/doc-1030108 .html