企业员工信息管理系统 设计与实现 c语言

上传人:ba****u6 文档编号:158839231 上传时间:2022-10-07 格式:DOCX 页数:25 大小:97.58KB
收藏 版权申诉 举报 下载
企业员工信息管理系统 设计与实现 c语言_第1页
第1页 / 共25页
企业员工信息管理系统 设计与实现 c语言_第2页
第2页 / 共25页
企业员工信息管理系统 设计与实现 c语言_第3页
第3页 / 共25页
资源描述:

《企业员工信息管理系统 设计与实现 c语言》由会员分享,可在线阅读,更多相关《企业员工信息管理系统 设计与实现 c语言(25页珍藏版)》请在装配图网上搜索。

1、Xian Technological University North Institute of Information Engineering算法与数据结构课程设计题目企业员工信息管理系统设计与实现院、系:计算机信息与技术系学科专业:计算机科学与技术学 号:_B学生姓名:指导教师:2012年9月16日目录第一章 设计要求 1.1 问题描述31.2 需求分析 3第二章 概要设计2.1 主界面设计42.2 存储结构设计 42.3 系统功能设计4第三章 模块设计 53.1 系统子程序及功能设计53.2 系统功能图6第四章 详细设计 64.1 数据类型定义64.2 系统主要子程序详细设计7第五章 测

2、试分析 14第六章 源程序清单 16第七章 工作总结 25第八章 参考文献 25第一章 设计要求1.1 问题描述近年来,随着企业彼此间的竞争日趋激烈,信息管理技术在企业的发展中 占据着越来越重要的地位。在企业的经营生产中,员工信息已成为企业经营管 理中不可缺少的一部分,为管理者进行管理决和进行各种人事调配活动提供了 重要的依据,在生产分配安排中发挥了越来越重要的作用。此次课程设计应该 具有的功能是能够查看员工的个人信息,每个员工的信息包括:编号、姓名、 性别、部门、工资;系统能够完成员工信息的查询、更新、插入、删除、排序 等功能。1.2 需求分析(1)在相应的每条记录中,应该包括该员工的所有信

3、息,譬如:编号、姓名、性别、 出生年月、学历、职务、电话、住址等;(2)根据不同关键字(如编号,姓名等),对所有员工的信息进行排序;(3)按照指定条件查找某个员工的所有信息;(4)按编号对某个员工的信息进行更改;(5)添加新员工的信息,并实现排序;(6)按编号删除已离职的员工的信息;(7)与此同时,除了以上基本的需求以外,该企业员工信息管理系统的程序源代码还应 具有良好的编程结构和适当的注释,运行界面清晰,提示内容明确,易于操作。第二章概要设计2.1主界面设计当输入相应的操作字符(比如:0-6或者#),通过在主函数中选择并调用对应的子函 数程序以及其他函数(比如:菜单函数)中的辅助调用,实现并

4、完成各自的功能操作(比 如:添加、查找、更改、排序、删除、显示等)。系统主界面如下:Fil esMiGrosoft Visual Studi vMyFrojec IsVgKgV:u畧容贝士一口舍口亠 _口戏迎使用员工信息管理系统 欢迎充临-息I24.丁信自:! 丄I 口LlT 屮员 氣删除虹ff自亠息LLIU=_J-.L=_J-2.2存储结构设计依据给定的数据格式,个人信息由九个字段来组成,即编号、姓名、性别、生日、学 历、职务、电话和住址,外加一个判断关键字。如:编号|姓名|性别丨出生年月|学历|职务|电话丨住址01 fdf n 1991-10 b q 189 p本课程设计根据功能需求,使用

5、线性结构来组织数据,由于要对表中某项数据进行插 入、删除操作,所以使用链表比较方便。2.3系统功能设计依据程序的数据结构和功能,遵照“自顶向下”原则,描述该程序的层次结构,在总 体上包括数据的插入、添加、删除、查找、更改和数据的排序以及数据的显示等功能模块。(1)输入函数功能:通过输入各项数据给数据元素,来建立一个数据表。(2) 排序函数功能:按照指定关键字对员工信息进行排序。(3) 显示函数功能:输出表中所有节点的信息。(4) 查找函数功能:按照指定关键字,对相应员工信息进行查找。(5) 更改函数功能:输入员工编号,查找到员工信息,对其信息进行更新。(6) 删除函数功能:查找到要删除员工的相

6、应信息,并将其从表中永久的删除。(7) 主函数功能:调用以上子函数,并用开关语句进行选择性的调用。(8) 其它函数功能:主要起辅助作用,比如:菜单函数,主要起到引导作用;释放空间函数,主要用于释放已经删除节点的信息,或者释放整个链表的节点信息。第三章 模块设计1. 创建成员表函数 Stuff *Cre(Stuff *head)2. 添加成员函数Stuff *App(Stuff *head)3. 排序函数void Sort(Stuff *head)4. 判断函数3.1 系统子程序及功能设计/创建一个员工的信息列表/添加其他员工的信息列/按照编号等对员工进行排序int Sel(char ch,St

7、uff *p,Stuff *q) /判断该员工是否存在5. 查找函数Stuff *Search(Stuff *head)/查找该员工的信息情况6更改函数Stuff *Change(Stuff *head,char n10)/便改员工的信息情况7. 删除函数Stuff *Del(Stuff *head,char n10) /删除员工的信息情况3.2 系统功能图第四章 详细设计4.1 数据类型定义1.员工结构体定义struct Stuffchar number10;char name10;char sex8;char borth10;char degree20;char business20;ch

8、ar phone15;char place50;char con50; struct Stuff *next;4.2 系统主要子程序详细设计1.输入函数:Stuff *App(Stuff *head)Stuff *p=NULL,*q=head;while(n)p=(Stuff *)malloc(sizeof(Stuff);/申请结构体空间if(p=NULL)printf(”空间不足,自动退出系统!n);exit(0);p-next =NULL;/指针域为空printf(”请输入第小名员工:n,n);printf( 编号 | 姓名 | 性别 | 出生年月 | 学历 | 职务 | 电话 | 住址

9、:n); getchar();scanf(%s,p-number ); if(strcmp(p-number,#)+n;scanf(%s%s%s%s%s%s%s,p-name ,p-sex ,p-birthday ,p-degree ,p-business ,p-ph one ,p-place );p-con0=0;/防止后面判断出现随机值if(head=NULL)head=p;else while(q-next !=NULL) q=q-next ; q-next =p;q=p;if(!strcmp(p-number ,#)free(p); break;return head;/完成添加,/尾

10、插法释放多余空间2. 排序函数:void Sort(Stuff *head)char ch;Stuff *p,*q,*r;while(1)printf(请选择排序条件:1 .编号12 .姓名10.退出n); getchar();scanf(%c,&ch);if(ch=0) break;if(ch2)printf(输入错误,请重新输入!n); continue;p=head;while(p-next!=NULL)q=p-next;r=p;while(q!=NULL) if(Sel(ch,r,q)r=q;q=q-next;/选择排序/调用判断函数/交换信息if(r!=p)Scpy(r-number

11、,p-number);Scpy(r-name,p-name);Scpy(r-sex,p-sex);Scpy(r-birthday,p-birthday);Scpy(r-degree,p-degree);Scpy(r-business,p-business);Scpy(r-phone,p-phone);Scpy(r-place,p-place); p=p-next;Show(head);/输出3. 显示函数:void Show(Stuff *head)Stuff *p=head;int n=1;if(head!=NULL)printf(员工信息如下:n);printf( 编号 | 姓名 | 性别

12、 | 出生年月 | 学历 | 职务 | 电话 | 住址 :n); while(p!=NULL)printf(%d. %s %s %s%s%s %s %s %sn,n+,p-number ,p-name ,p-sex ,p-birthday ,p-degree ,p-business ,p-phone ,p-plac e);p=p-next ;elseprintf(信息为空! n);4. 查找函数:Stuff *Search(Stuff *head)Stuff *p=NULL,*q,a=0,0,0,0,0,0,0,0;intflag;/查找判断charch,sh;/两个控制变量q=&a;whil

13、e(1)printf(请输入要查找的条件:1.编号2姓名0退出n);scanf( %c,&ch);if(ch=0)break;if(ch2) printf(输入错误,请重新输入!n); continue;getchar();printf(请输入:”);gets(q-con);p=head;/指向表头flag=0;while(p!=NULL) if(strcmp(q-con,p-number)=0|strcmp(q-con,p-name)=0) printf(”员工信息如下:n);printf( 编号 | 姓名 | 性别 | 出生年月 | 学历 | 职务 | 电话 | 住址n%st%st%st%

14、st%st%st%st%sn,p-number ,p-name ,p-sex ,p-birthday ,p-degree ,p-business ,p-phone ,p-place )printf(”是否需要:1.更改2删除3继续n);scanf( %c,&sh);if(sh=1) Change(head,p-number);/调用更改函数else if(sh=2)head=Del(head,p-number);/调用删除函数flag=1;break;p=p-next ;if(flag=0)printf(没有找到该员工信息!n);return head;5. 更改函数:Stuff *Chang

15、e(Stuff *head,char n10)Stuff *p=head;int flag=0;if(head=NULL)printf(信息表为空,请先建立信息表!n);elsewhile(p!=NULL)if(!strcmp(p-number,n)printf(”找到员工,请输入新的信息:n编号丨姓名丨性别丨出生年月I 学历 | 职务 | 电话 | 住址 n);scanf(%s%s%s%s%s%s%s%s,p-number ,p-name ,p-sex ,p-birthday ,p-degree ,p- business ,p-phone ,p-place );printf(”员工信息如下:

16、n);flag=1;p=p-next;if(flag=0)printf(未找到该员工信息!n);Show(head);return head;/删除函数Stuff *Del(Stuff *head,char n10)Stuff *p,*pr; int flag;flag=0;p=head,pr=head;if(head=NULL)printf(未找到员工信息!n);elsewhile(strcmp(p-number ,n)&p-next !=NULL) pr=p; p=p-next ;if(!strcmp(p-number ,n)if(p=head) head=p-next ;else pr-

17、next=p-next ;free(p); printf(删除成功!n); n-;elseprintf(未找到员工信息!n);Show(head); return head;6.删除函数:void Fre(Stuff *head)Stuff *p;while(head!=NULL)p=head;head=head-next ;free(p);7.主函数:void main()char Index10;Stuff *head=NULL;/链表头指针定义printf(欢迎使用员工信息管理系统n);Sleep(1000);while(1)switch(Menu()/case 1:/ head=Cre

18、(head);/ break;case 1:printf(”请输入员工信息,直接输入#结束n); head=App(head);break;case 2: Sort(head); break;case 3: head=Search(head); break;case 4:Show(head); break;case 5: printf(请输入员工编号:”); scanf(%s,Index); Change(head,Index); break;case 6: printf(请输入员工编号:”); scanf(%s,Index);head=Del(head,Index); break;case

19、0: printf(欢迎下次光临!n);Sleep(2000); exit(0); break;default: printf(输入错误,请重新输入!n);printf(按 Enter 键继续”); getchar();getchar();system(cls);清屏效果Fre(head);&其他函数:charMenu();菜单函数voidShow(Stuff *head);输出函数第五章测试分析各功能的运行结果:-Ini x(1)添加界面- *- *C : P:rogj-iB FilcsVHicirosoft Vi sual St-u.di okByProj ects.ggDcliig.gg

20、g. cxc可尺工宿息亘理珮疣迎舟缶;.一髓击聲蠶 蒯除员工信息ID心息自心 言言言1.- 1.- 1.- 工工丄 因呢贝 川技艺岀 尊更退 13 5 0圭择你旳凍作:1即解奮常囂学历;瞰:罪:讎:(2)排序界面|r| y.白自自 言.=口丄n 工工工 U企区仄 加食出 f-I 丄3 5 0-欢迎光临自心 壯fs.ft. .J 息工工 信広仄圣牛:1.编岩:2.妒名!0.1Rz -C Z Pr fligrFileHiciraKnf t ITi En.iaJ. Si.u.d.1 o VHyProj ac*LeggVl)CCE mo同一信息如下:15S0923474O7编号I姓浴:件别!岀兰丘月!

21、学历:职务I电话!住址:1 _ Bl i/angrxn(jnan1991B2henmejouhan Mitt.编号2姓名個.退岀(3) 查找界面-Irl x欢迎光I由246姓名!性别!出主年月!学历!职务!电话!住;止yangxingnar 199102ben neou 1E8B923474B7(4)输出员工界面*C: Progr:i Files.licr soEt i sual Stmli oMyProj ectsffg:Debiigg:gg:- exe*息自II-1J自31 3 5 B工工一 UT员仄一划找改岀-添亘貝退序.自心自心 息工工 淫BR1贝 T出徐 吊输删请选择f尔的探佃3请输

22、入夏查唆齿条件=1 -编号2 处名0-退出1谊输A:0i驚貝如下:-01shanxiff足否需要:丄更改2 删除3 .继续|n| 斜白心白心白心 优曲优 工工工 =思容囚 加找常 啻更退 13 5 0丄5B092347407: *IZ : Pr next =NULL;printf(”请输入第小名员工:n,n);printf( 编号 | 姓名 | 性别 | 出生年月 | 学历 | 职务 | 电话 | 住址 :n); getchar();scanf(%s,p-number );if(strcmp(p-number,#)+n;scanf(%s%s%s%s%s%s%s,p-name ,p-sex ,p

23、-birthday ,p-degree ,p-business ,p-ph one ,p-place );p-con0=0;if(head=NULL) head=p;elsewhile(q-next !=NULL)q=q-next ;q-next =p;q=p;if(!strcmp(p-number ,#)free(p);break;return head;/排序函数void Sort(Stuff *head)char ch;Stuff *p,*q,*r;while(1)printf(请选择排序条件:1 .编号12 .姓名10.退出n);getchar();scanf(%c,&ch);if(c

24、h=0)break;if(ch2)printf(输入错误,请重新输入!n); continue;p=head;while(p-next!=NULL)q=p-next;r=p;while(q!=NULL)if(Sel(ch,r,q)r=q;q=q-next;if(r!=p)Scpy(r-number,p-number);Scpy(r-name,p-name); Scpy(r-sex,p-sex); Scpy(r-birthday,p-birthday); Scpy(r-degree,p-degree); Scpy(r-business,p-business); Scpy(r-phone,p-ph

25、one); Scpy(r-place,p-place);p=p-next;Show(head);/交换函数void Scpy(char *p,char *q)char c50;strcpy(c,p);strcpy(p,q);strcpy(q,c);/判断函数int Sel(char ch,Stuff *p,Stuff *q)switch(ch)case 1:return strcmp(q-number ,p-number )con ,p-number )=0 ; case 2: return strcmp(q-name ,p-name )con ,p-name )=0 ;default :ex

26、it(0);/查找函数Stuff *Search(Stuff *head)Stuff *p=NULL,*q,a=0,0,0,0,0,0,0,0;intflag;charch,sh;q=&a;while(1)printf(请输入要查找的条件:1.编号2姓名0退出n);scanf( %c,&ch);if(ch=0)break;if(ch2)printf(输入错误,请重新输入!n);continue;getchar();printf(请输入:”);gets(q-con);p=head;flag=0;while(p!=NULL)if(strcmp(q-con,p-number)=0|strcmp(q-

27、con,p-name)=0)printf(”员工信息如下:n);printf( 编号 | 姓名 | 性别 | 出生年月 | 学历 | 职务 | 电话 | 住址 n%st%st%st%st%st%st%st%sn,p-number ,p-name ,p-sex ,p-birthday ,p-degree ,p-business ,p-phone ,p-place )printf(”是否需要:1.更改2删除3继续n);scanf( %c,&sh);if(sh=1)Change(head,p-number);else if(sh=2)head=Del(head,p-number);flag=1;br

28、eak;p=p-next ;if(flag=0)printf(没有找到该员工信息!n);return head;/更改函数Stuff *Change(Stuff *head,char n10)Stuff *p=head;int flag=0;if(head=NULL)printf(信息表为空,请先建立信息表!n);elsewhile(p!=NULL)if(!strcmp(p-number,n)printf(”找到员工,请输入新的信息:n编号丨姓名丨性别丨出生年月I 学历 | 职务 | 电话 | 住址 n);scanf(%s%s%s%s%s%s%s%s,p-number ,p-name ,p-s

29、ex ,p-birthday ,p-degree ,p- business ,p-phone ,p-place );printf(”员工信息如下:n);flag=1;p=p-next;if(flag=0)printf(未找到该员工信息!n);Show(head);return head;/删除函数 Stuff *Del(Stuff *head,char n10)Stuff *p,*pr;int flag;flag=0;p=head,pr=head;if(head=NULL)printf(未找到员工信息!n);elsewhile(strcmp(p-number ,n)&p-next !=NULL

30、)pr=p; p=p-next ;if(!strcmp(p-number ,n)if(p=head)head=p-next ;elsepr-next=p-next ;free(p);printf(删除成功!n);n-;elseprintf(未找到员工信息!n);Show(head); return head;/输出函数void Show(Stuff *head)Stuff *p=head;int n=1;if(head!=NULL)printf(员工信息如下:n);printf( 编号 | 姓名 | 性别 | 出生年月 | 学历 | 职务 | 电话 | 住址 :n); while(p!=NUL

31、L)printf(%d. %s %s %s%s%s %s %s %sn,n+,p-number ,p-name ,p-sex ,p-birthday ,p-degree ,p-business ,p-phone ,p-plac e);p=p-next ;elseprintf(信息为空! n);/释放函数void Fre(Stuff *head)Stuff *p;while(head!=NULL)p=head;head=head-next ;free(p);void main()char Index10;Stuff *head=NULL;printf(欢迎使用员工信息管理系统Sleep(1000

32、);while(1)switch(Menu()/case 1:/ head=Cre(head);/ break;case 1:printf(”请输入员工信息,直接输入#结束n); head=App(head);break;case 2:Sort(head); break;case 3:head=Search(head); break;case 4:Show(head);break;case 5: printf(请输入员工编号:”); scanf(%s,Index); Change(head,Index); break;case 6: printf(请输入员工编号:”); scanf(%s,In

33、dex);head=Del(head,Index);break;case 0:printf(欢迎下次光临!Sleep(2000);exit(0); break;n);n);default: printf(输入错误,请重新输入!n);printf(按 Enter 键继续”);getchar();getchar();system(cls);Fre(head);/结束第七章 工作总结一周的数据结构课程设计结束了,在刚开学组织这次数据结构的课程设计 对我来说有很大帮助,让我把数据结构这门课课堂上学习的知识更实际地运用 到生活实践中,加深了对相关知识的理解,而且让我体会到了高级汇编语言的 强大之处,他能为我们的学习工作提供各种方便的功能,提醒我在大三的这学 期里认真学习自己的专业知识,能凭借自己的努力设计开发出自己想要的程序 或软件。通过这次课程设计,我锻炼了自己的动手能力,巩固了对面向对象程序设 计概念的理解和C+的运用,初步掌握了 C+开发应用程序的基本方法,对C+ 的编译环境更了解了,提高了自己综合运用所学知识的能力。第八章 参考文献1 .耿国华数据结构一C语言描述高等教育出版社.2005/067511.2 .谭浩强.C程序设计.清华大学出版社.2007/014674.3 .严蔚敏,吴伟民.数据结构:C语言版.清华大学出版社,2007.

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!