1、员工管理数据结构员工管理系统(员工管理)数据结构员工管理系统壹、设计题目问题描述每个员工的信息包括:编号、姓名、性别、出生年月、学历职务、电话、住址等。系统能够完成员工信息的查询、更新、插入、删除、排序等功能。基本要求(1) 排序:按不同关键字,对所有员工的信息进行排序。(2) (2)查询:按特定条件查找员工。(3) (3)更新:按编号对某个员工的某项信息进行修改。(4) (4)插入:加入新员工的信息。(5) (5)删除:按编号删除已离职的员工的信息。二、运行环境MrosoftVisualC+6.0三、算法设计的思想构造链表存储用户记录。四、算法的流程图五、算法设计分析(1)构造顺序表存储用户
2、记录。(2)利用冒泡法对用户名和号码分别进行排序(3)利用直接查找法进行查找六、源代码#includestdio.h#includestdlib.h#includestring.h/定义节点类型typedefstructnodecharid10;charname10;charsex10;charbirth10;charxueli10;charzhiwu10;charphone10;charaddress10;structnode*next;node,*linklist;/头插法生成单链表intcreatlist(linklist&L)linklistp;p=(linklist)malloc(s
3、izeof(node);if(!p)return(0);elseprintf(请输入员工编号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-a
4、ddress);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);printf(学历%s,p-xueli);printf
5、(职务%s,p-zhiwu);printf(电话%s,p-phone);printf(地址%sn,p-address);/按id删除intdel(linklist&L,charid10)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);elser-next=p-next;free(p);printf(删除成功n);return1;/查询idintsearchid(linklist&L,charid10)node*p;p=L;while(p)if(strcmp(
6、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(地址%sn,p-address);p=p-next;return1;/查询姓名intsearchname(linklist&L,charname10)node*p;p=L;while(p)if(strcmp(p-name,name)=0)printf(编号%s,p-id);prin
7、tf(姓名%s,p-name);printf(性别%s,p-sex);printf(生日%s,p-birth);printf(学历%s,p-xueli);printf(职务%s,p-zhiwu);printf(电话%s,p-phone);printf(地址%sn,p-address);p=p-next;return1;/修改intxiugai(linklist&L,charid10)node*p;p=L;while(p)if(strcmp(p-id,id)=0)printf(请输入员工编号n);scanf(%s,p-id);printf(请输入员工姓名n);scanf(%s,p-name);p
8、rintf(请输入员工性别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)linklistLa;linklistp,q,m;La=(linklist)malloc(sizeof
9、(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;elsem-next=q-next;q-next=La-next;La-next=q;L=La;display(L);#includestdio.h#includestdlib.h#includestring.h#includehead.h/主函数voidmain()linklistL;inta;charm;cha
10、rname10;charid10;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);doprintf(否继续输入?(y/n);getchar();scanf(%c,&m);if(m=y)creat
11、list(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,&nam
12、e);searchname(L,name);break;case5:Sort(L);break;case6:printf(所有员工信息如下所示n);display(L);break;case7:x=0;break;7、运行结果主界面添加员工信息修改员工信息删除员工信息查询员工信息排序显示八、收获及体会实训期间,让我学到了很多东西,不仅使我于理论上对软件行业有了全新的认识,于实践能力上也得到了提高,真正地做到了学以致用,对我来说受益非浅。除此以外,我仍学会了如何更好地和别人沟通,如何更好地去陈述自己的观点,如何说服别人认同自己的观点。第壹次亲身感受到理论和实际的相结合,让我大开眼界。也是对以前所
13、学知识的壹个初审吧!这次实训对于我以后学习、找工作也真是受益菲浅,于这短短的几天中相信这些宝贵的经验会成为我今后成功的重要的基石。作为壹名大二的学生,经过俩年的于校学习,对程序设计有了理性的认识和理解。于校期间,壹直忙于理论知识的学习,没有机会也没有相应的经验来参和项目的开发。所以于实训之前,软件项目开发对我来说是比较抽象的,壹个完整的项目要怎么来分工以及完成该项目所要的基本步骤也不明确。而经过这次实训,让我明白壹个完整项目的开发它所要经历的阶段包括:规划和用例说明、项目结构、业务功能说明书、详细设计说明书、代码实现、测试、实训手册。壹个项目的开发所需要的财力、人力均是大量的,如果没有壹个好的
14、远景规划,对以后的开发进度会产生很大的影响,严重时导致于预定时间内不能完成该项目或者完成的项目跟原先计划所要实现的项目功能不符合。壹份好的项目结构、业务功能和详细设计说明书对壹个项目的开发有明确的指引作用,它能够使开发人员对这个项目所要实现的功能于总体上有具体的认识,且能减少于开发过程中出现不必要的脱节。代码的实现是壹个项目开发成功和否的关键,能够说,前面所做的事情就是为代码的实现做铺垫。这次实训也让我深刻了解到,不管于工作中仍是于生活中要和老师,同学保持良好的关系是很重要的。做事首先要学做人,要明白做人的道理,如何和人相处是现代社会的做人的壹个最基本的问题。对于自己这样壹个即将步入社会的人来说,需要学习的东西很多,他们就是最好的老师,正所谓“三人行,必有我师”,我们能够向他们学习很多知识、道理。于此,我应当感谢老师的指导和帮助以及学院提供此次千载难逢的实训机会。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1