资源描述
莎多匸术止写以分仔山扌忧Xian Technological University North Institute of Information Engineering算法与数据结构课程设计题目企业员工信息管理系统设计与实现院、系:计算机信息与技术系 学科专业:计算机科学与技术 学 号: B学生姓名:指导教师:2012年9月16日目录第一章 设计要求问题描述近年来,随着企业彼此间的竞争日趋激烈,信息管理技术在企业的发展中 占据着越来越重要的地位。在企业的经营生产中,员工信息已成为企业经营管 理中不可缺少的一部分,为管理者进行管理决和进行各种人事调配活动提供了 重要的依据,在生产分配安排中发挥了越来越重要的作用。此次课程设计应该 具有的功能是能够查看员工的个人信息,每个员工的信息包括:编号、姓名、 性别、部门、工资;系统能够完成员工信息的查询、更新、插入、删除、排序 等功能。需求分析(1)在相应的每条记录中,应该包括该员工的所有信息,譬如:编号、姓名、性别、 出生年月、学历、职务、电话、住址等;(2)根据不同关键字(如编号,姓名等),对所有员工的信息进行排序;(3)按照指定条件查找某个员工的所有信息;(4)按编号对某个员工的信息进行更改;(5)添加新员工的信息,并实现排序;(6)按编号删除已离职的员工的信息;(7)与此同时,除了以上基本的需求以外,该企业员工信息管理系统的程序源代码还应 具有良好的编程结构和适当的注释,运行界面清晰,提示内容明确,易于操作。第二章概要设计主界面设计当输入相应的操作字符(比如:0-6或者#),通过在主函数中选择并调用对应的子函 数程序以及其他函数(比如:菜单函数)中的辅助调用,实现并完成各自的功能操作(比 如:添加、查找、更改、排序、删除、显示等)。系统主界面如下:Fil esMiGrosoft Visual Studi QMyFrojec IsVgKgV:戏迎使用员工信息管理系统 欢迎充临-u畧容贝 加找常 J-s 13 5 0* * K ff自亠息LLIU=_J-.L=_J-丁信自:! 丄I 口LlT 屮员 氣删除虹息I24.存储结构设计依据给定的数据格式,个人信息由九个字段来组成,即编号、姓名、性别、生日、学 历、职务、电话和住址,外加一个判断关键字。如:编号|姓名|性别丨出生年月|学历|职务|电话丨住址01 fdf n 1991-10 b q 189 p本课程设计根据功能需求,使用线性结构来组织数据,由于要对表中某项数据进行插 入、删除操作,所以使用链表比较方便。系统功能设计依据程序的数据结构和功能,遵照“自顶向下”原则,描述该程序的层次结构,在总 体上包括数据的插入、添加、删除、查找、更改和数据的排序以及数据的显示等功能模块。(1)输入函数功能:通过输入各项数据给数据元素,来建立一个数据表。(2) 排序函数功能:按照指定关键字对员工信息进行排序。(3) 显示函数功能:输出表中所有节点的信息。(4) 查找函数功能:按照指定关键字,对相应员工信息进行查找。(5) 更改函数功能:输入员工编号,查找到员工信息,对其信息进行更新。(6) 删除函数功能:查找到要删除员工的相应信息,并将其从表中永久的删除。(7) 主函数功能:调用以上子函数,并用开关语句进行选择性的调用。(8) 其它函数功能:主要起辅助作用,比如:菜单函数,主要起到引导作用;释放空间函数,主要用于释放已经删除节点的信息,或者释放整个链表的节点信息。第三章 模块设计系统子程序及功能设计1. 创建成员表函数Stuff *Cre(Stuff *head)排序函数void Sort(Stuff *head)判断函数int Sel(char ch,Stuff *p,Stuff *q) 查找函数 Stuff *Search(Stuff *head)删除函数Stuff *Del(Stuff *head,char n10)工结构体定义struct Stuff char number10;char name10;char sex8;char borth10;char degree20;char business20;char phone15;char place50;char con50;struct Stuff *next;系统主要子程序详细设计1.输入函数:Stuff *App(Stuff *head)Stuff *p=NULL,*q=head; while(n)p=(Stuff *)malloc(sizeof(Stuff); 序函数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) 示函数:void Show(Stuff *head)Stuff *p=head;int n=1;if(head!=NULL)printf(员工信息如下:n);printf( 编号 | 姓名 | 性别 | 出生年月 | 学历 | 职务 | 电话 | 住址 :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;号 2.姓名 0.退出n);scanf( %c,&ch);if(ch=0)break;if(ch2)printf(输入错误,请重新输入!n);continue;getchar();printf(请输入:”);gets(q-con);p=head;改 2.删除 3.继续n);scanf( %c,&sh); if(sh=1)Change(head,p-number); 改函数:Stuff *Change(Stuff *head,char n10)Stuff *p=head;int flag=0;if(head=NULL)printf(信息表为空,请先建立信息表!n);else while(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(”员工信息如下:n);flag=1;p=p-next;if(flag=0)printf(未找到该员工信息!n);Show(head);return head;Del除函数:void Fre(Stuff *head)Stuff *p;while(head!=NULL)p=head; head=head-next ; free(p);7主函数:void main()char Index10;Del他函数:Stuff *head=NULL;charMenu();oaTPxog/E an Fileitt ITl su-al Si.u.Jec t B.g.gDeLug.figg.-二贝旦囚 亦話岀 一誓吏退 -13 5 0欢迎另I特 自一八一.一一口s信目口 jLu-h*H S-*itE择祢的?w: 1 工詹氤 直接输人肝结束 讣窮丄名员一:自I姓名性别;山生E月;学历!职务;屯姑:(11 =旦X白心白心自心 信信信 工工工 DB5BJ 贝 加找改出 H 丄3 5 0编号;2姓名苗退岀丄in元匸、災口 I编号!姓名I性别:岀注年月:学历:职务!电话:住址: 01yang xinjjnan1991(12henmeiouehanxitt議翳薜爲篇郭姓名:淞岀189234747Cr *C Progr FilocVlicrocoFt Vi suftl Studi oByProj actsK*c: C: ProgxtB FilesVlicresoft Visual StudioViyProiectsVccrcVDebucVzcc:. exe*欢迎光I息自3息 工工工 口容苕贝 加找改岀 添童貝退 13 5 0* * * *谊输入贪璟息如下:14 !姓名!性别!出主年月!学历!职务!电话!住址01yangxingnan 199102ben ne(shanxiUJal x是否需要汉更改2 删除3继续Cs *C * Profpr Fileclicr-ocoFt Vi KUftl Stu2)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-phone);Scpy(r-place,p-place);p=p-next;Show(head);号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%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;Del %s %s %s%s%s %s %s %s n,n+,p-number ,p-name ,p-sex ,p-birthday ,p-degree ,p-business ,p-phone ,p-plac e);p=p-next ;elseprintf(信息为空! n);1 .Del据结构一C语言描述高等教育出版社.2005/067511.2 .谭浩强.C程序设计.清华大学出版社.2007/014674.3 .严蔚敏,吴伟民.数据结构:C语言版.清华大学出版社,2007.
展开阅读全文