数据结构课程设计_员工信息管理系统方案

上传人:蜕变 文档编号:187464140 上传时间:2023-02-14 格式:DOC 页数:26 大小:924.50KB
返回 下载 相关 举报
数据结构课程设计_员工信息管理系统方案_第1页
第1页 / 共26页
数据结构课程设计_员工信息管理系统方案_第2页
第2页 / 共26页
数据结构课程设计_员工信息管理系统方案_第3页
第3页 / 共26页
点击查看更多>>
资源描述
成 绩12信计2013-2014(一)数 据 结 构 课 程 设 计设计题目员工信息管理系统设计时间2014.1.62014.1.10学生姓名葛考学生学号20120402127所在班级12 精算指导教师刘 风 华下载可编辑徐州工程学院数学与物理科学学院题目员工信息管理系统一、 需求分析员工信息管理系统设计,具体功能如下:1、系统以菜单方式工作,应为用户提供清晰的使用提示,依据用户的选择来进行各种处理,并且在此过程中能够尽可能的兼容用户使用过程中的输入异常情况。2、员工信息录入系统(员工信息用文件保存),注意员工按员工编号进行区分,即每个员工的员工编号都是唯一的,不允许出现两个员工或员工编号相同的情况。3、可对员工信息进行查询,具体分为:按姓名查询、按员工号查询、按生日查询;4、可对员工信息进行删除;5、可对员工信息进行修改,但应注意员工号不能修改,修改应逐个进行,一个员工记录的更改不应影响其他的员工记录;6、可对全部的员工信息进行显示v(员工信息浏览),注意员工信息的显示规范;员工信息应包括姓名、员工编号、性别、年龄、生日、学历、职务、联系电话、住址。二、概要设计2.1、抽象数据类型.专业.整理.下载可编辑ADT List数据对象:D=ai|aiElemSet,i=1,2,n,n=0 ,数据关系:R1=|ai-1,aiD,i=1,2,n,基本操作:Init List(&L);操作结果:构造一个空的线性表 L。DestroyList(&L);初始条件:线性表 L 存在。操作结果:销毁线性表 L。LocateElem(L,I,&e);初始条件:线性表 L 存在,1inext; printf(n 按回车键返回主菜单n);gets(lj);四、调试分析4.1、时间复杂度分析在源程序的各个模块,时间复杂读为O(n) ,并且随着输入信息量的增加,从而时间复杂度也逐渐增加。4.2、问题解决在程序设计过程中,本程序采用两种方式进行数据输入,一种是由用户手动输入数据,另一种是由文本文件数据导入1的方式。但在文本导入过程中,导入的是二进制文件,但由于复杂程度较高,从而根据所查资料进行修改,采用导入文本文件。在结果输出上,由于输出的是黑屏,所以经过查阅资料,运用system 函数对输出结果的页面进行修饰。4.3、设计收获在做实验前,一定要将课本上的知识吃透,因为这是做实验的基础,否则,在做设计程序实验时,这将使你做的难度加大,浪费宝贵的时间,使你事倍功半。做实验时,一定要亲力亲为,务必要将每个步骤,每个细节弄清楚,弄明白。实验后,还要复习,思考,这样,你的印象才深刻,记得才牢固,否则,过后不久你就会忘得一干二净,这还不如不做。通过这次程序设计的实验,使我们学到了不少实用的知识,更重要的是,做实验的过程,思考问题的方法,这与做其他的实验是通用的,真正使我们们受益匪浅。五、测试结果1、菜单函数的测试结果如图 2.专业.整理.下载可编辑图 22、信息查询函数的测试结果如图 3图 33、信息更新函数测试结果如图 4.专业.整理.下载可编辑图 4六、用户使用说明本程序实在 VB.6.0 环境下通过编译并执行。用户根据提示信息进行选择并操作。.专业.整理.下载可编辑七、附录源程序:#include #include #include #include /清屏函数头文件#include #include #include #define LEN sizeof(struct emp)#define DATA employee.txtstruct emplong int num;/编号char name20;/姓名int age;/年龄char sex4;/性别char birthday10;/生日char tel15;/电话char edu8;/学历char pos20;/职务char add30;/住址struct emp *next;.专业.整理.下载可编辑;struct emp *head=NULL;int t=0;void menu();void gengxin();void tianjia();void insert(struct emp *em);void display(struct emp *p);void liebiao();void chaxun();void bianhao();void shengri();void xingming();void readDate();void writeDate();void freeAll();void shanchu();void change();void devise(struct emp *p);void main()struct emp *head=NULL;head=(struct emp *)malloc(LEN);head-next=NULL;system(color F1);system(mode con: cols=500 lines=1000);readDate();menu(); system(cls);printf(nnnnnnnnnnnnnnnnnnn);printf(谢谢使用,再见n);void menu(void)char i,lj100;int flog;time_t T;struct tm * timenow;.专业.整理.下载可编辑time ( &T );timenow = localtime ( &T );flog=0;while(1)system(cls); printf(nnnnn);printf( 员工信息管理系统 n);printf(n);printf(n);printf(n);printf(1.员工信息查询n);printf(n);printf(n);printf(n);printf(2.员工信息更新n);printf(n);printf(n);printf(n);printf(3.员工信息列表n);printf(n);printf(n);printf(n);printf(0.退出管理系统n);printf(n);printf(n);printf(n);printf(n);printf(%s, asctime (timenow) );printf(请输入您的选择(数字 0-3):n);scanf(%c,&i);gets(lj);if(lj0)i=a;switch(i)case 1:chaxun();break;case 2:gengxin();break;.专业.整理.下载可编辑case 3:liebiao();break;case 0:flog=1;break;default:printf( 输入有误,请按回车键重新输入n);gets(lj);break; if(flog)break; void tianjia()struct emp *p,*p1; char lj100;p=NULL;p1=head;printf(请输入第%d 个员工的信息.n,t+1);p=(struct emp *)malloc(LEN);if(p=NULL)printf(分配空间失败); exit(0);printf(请输入员工的编号:n);scanf(%ld,&p-num);while(p1!=NULL)&(p-num!=p1-num)p1=p1-next;if(p1!=NULL)if(p-num=p1-num)printf(编号已经存在,请重新输入,按回车键继续:n);free(p);gets(lj);getchar();printf(请输入员工的姓名:n); scanf(%s,p-name);printf(请输入员工的年龄:n); scanf(%d,&p-age);printf(请输入员工的性别:n); scanf(%s,p-sex);printf(请输入员工的出生年月:n); scanf(%s,p-birthday);printf(请输入员工的电话:n); scanf(%s,p-tel);printf(请输入员工的学历:n); scanf(%s,p-edu);printf(请输入员工的职务:n); scanf(%s,p-pos);printf(请输入员工的住址:n); scanf(%s,p-add);insert(p);printf(输入的员工信息为:n);printf(-:n);printf(编号tt 姓名tt 年龄tt 性别tt 出生年月tt 电话tt 学历tt 职务tt 住址:n);display(p);printf( 按回车键继续 n);writeDate();.专业.整理.下载可编辑gets(lj);getchar();void insert(struct emp *em)struct emp *p0,*p1,*p2;p1=head; p0=em;if(head=NULL)head=p0;p0-next=NULL;elsewhile(p0-num p1-num)&(p1-next!=NULL)p2=p1;p1=p1-next; if(p0-numnum)if(head=p1)head=p0;elsep2-next=p0;p0-next=p1;elsep1-next=p0; p0-next=NULL;t+;void display(struct emp *p)printf(%ldtt%stt%dtt%stt%stt%stt%stt%stt%sn,p-num,p-name,p-age,p-sex,p-birthday,p-tel,p-edu,p-pos,p-add); void liebiao()char lj100;struct emp *p; p=head;system(cls);if(head=NULL)printf(查找不到信息n);menu();printf( 员工信息列表 n);printf(编号tt 姓名tt 年龄tt 性别tt 出生年月tt 电话tt 学历 tt 职务tt 住址 :n);if(head!=NULL)while(p!=NULL)display(p);p=p-next; printf(n 按回车键返回主菜单n);gets(lj);void chaxun()char i,lj100;.专业.整理.下载可编辑int flog;time_t T;struct tm * timenow;time ( &T );timenow = localtime ( &T );flog=0;while(1)system(cls); printf(nnnnn);printf(员工信息查询系统n);printf(n);printf(n);printf(n);printf(1.按照编号查询n);printf(n);printf(n);printf(n);printf(2.按照姓名查询n);printf(n);printf(n);printf(n);printf(3.按照生日查询n);printf(n);printf(n);printf(0.退出管理系统n);printf(n);printf(n);printf(n);printf(n); printf(%s, asctime (timenow) );printf(请输入您的选择(数字 0-3):n);scanf(%c,&i);gets(lj);if(lj0)i=a;switch(i).专业.整理.下载可编辑case 1:bianhao();break;case 2:xingming();break;case 3:shengri();break; case 0:flog=1;break;default:printf(输入有误,请重新输入n);gets(lj);break;if(flog)break;void bianhao()int number;char lj100;struct emp *p1;p1=head;printf(请输入要查询员工的编号:n);scanf(%d,&number);while(number!=p1-num)&(p1-next!=NULL)p1=p1-next; if(number=p1-num)printf(员工信息查询n); printf(要查询的员工信息:n);printf(编号tt 姓名tt 年龄tt 性别tt 出生年月tt 电话tt 学历 tt 职务tt 住址:n);printf(%ldtt%stt%dtt%stt%stt%stt%stt%stt%sn,p1-num,p1-name,p1-age,p1-sex,p1-birthday,p1-tel,p1-edu,p1-pos,p1-add );printf(按回车键继续n);gets(lj); getchar(); else if(p1-next=NULL) printf(要查询的员工信息不存在,按回车键返回:n); gets(lj);getchar();void xingming()char ch10;struct emp *p;char lj100;p=head;printf(请输入要查询的员工的名字:n);scanf(%s,ch);if(p=NULL)printf(不存在员工记录,按回车键返回.n);gets(lj); getchar(); return ;.专业.整理.下载可编辑while(strcmp(ch,p-name)&p-next!=NULL)p=p-next;if(!strcmp(ch,p-name) printf(员工信息查询n); printf(编号tt 姓名tt 年龄tt 性别tt 出生年月tt 电话tt 学历tt 职务tt 住址:n); display(p);printf(按回车键继续n);gets(lj);getchar();else if(p-next=NULL)printf(不存在员工记录.n);gets(lj);getchar(); return;void shengri()char bir20,lj100; struct emp *p;p=head; printf(请输入要查询的员工的出生日期:n); scanf(%s,bir);if(p=NULL)printf(不存在员工记录.按回车键返回n);gets(lj); getchar(); return ;while(strcmp(bir,p-birthday)&p-next!=NULL)p=p-next;if(!strcmp(bir,p-name)printf(员工信息查询n); printf(编号tt 姓名tt 年龄tt 性别tt 出生年月tt 电话tt 学历tt 职务tt 住址:n); display(p);printf(按回车键继续n);gets(lj);getchar(); else if(p-next=NULL)printf(不存在员工记录.按回车键返回n);gets(lj); getchar(); return;void readDate().专业.整理.下载可编辑FILE * fp;struct emp *p1,*p2;fp=fopen(DATA, r);if(!fp)printf(打开文件失败!按回车键继续n);getchar(); else fscanf(fp,%dn,&t);head=p1=p2=(struct emp *)malloc(LEN); fscanf(fp,%ldtt%stt%dtt%stt%stt%stt%stt%stt%sn, &p1-num,p1-name,&p1-age,p1-sex,p1-birthday,p1-tel,p1-edu,p1-po s,p1-add); while(!feof(fp)p1=(struct emp *)malloc(LEN); fscanf(fp,%ldtt%stt%dtt%stt%stt%stt%stt%stt%sn,&p1-num,p1-name,&p1-age,p1-sex,p1-birthday,p1-tel,p1-edu,p1-pos,p 1-add);p2-next=p1; p2=p1;p2-next=NULL;fclose(fp);void writeDate()FILE* fp; struct emp *p1;fp=fopen(DATA, w); if(!fp) printf(打开文件失败!n);getchar(); else fprintf(fp,%dn,t);for(p1=head;p1!=NULL;p1=p1-next) fprintf(fp,%ldtt%stt%dtt%stt%stt%stt%stt%stt%sn,p1-num,p1-name,p1-age,p1-sex,p1-birthday,p1-tel,p1-edu,p1-pos,p1-add);fclose(fp);void freeAll()struct emp *p1,*p2;p1=p2=head;while(p1) p2=p1-next;free(p1);p1=p2; void shanchu()struct emp *p1,*p2; long int number;char lj100; if(head=NULL).专业.整理.下载可编辑printf(无员工纪录!按回车键返回n);gets(lj);getchar();return; printf(请输入你要删除的员工的编号:n);scanf(%ld,&number); p1=head;while(number!=p1-num&p1-next!=NULL)p2=p1;p1=p1-next;if(number=p1-num)if(p1=head)head=p1-next;else p2-next=p1-next;free(p1);t-;writeDate();printf(删除成功,按回车键继续n); elseprintf(没有该员工的纪录,请核对.按回车键返回n);gets(lj); getchar();void xiugai()struct emp *p1,*p2;long int number;char lj100;if(head=NULL)printf(无员工纪录!按回车键返回n);gets(lj);getchar();return;printf(请输入你要修改的员工的编号:n);scanf(%ld,&number);gets(lj);p1=head;while(number!=p1-num&p1-next!=NULL)p2=p1;p1=p1-next;.专业.整理.下载可编辑if(number=p1-num)devise(p1);writeDate();printf(修改成功,按回车键继续n);elseprintf(没有该员工的纪录,请核对.按回车键返回n);gets(lj);getchar();void devise(struct emp *p)char i,lj100;int flog;time_t T;struct tm * timenow;time ( &T );timenow = localtime ( &T );flog=0;while(1)system(cls);printf(nnnnn);printf(员工信息修改n);printf(n);printf(n);printf(n);printf(1.修改员工姓名n);printf(n);printf(n);printf(n);printf(2.修改员工年龄n);.专业.整理.下载可编辑printf(n);printf(n);printf(n);printf(3.修改员工性别n);printf(n);printf(n);printf(n);printf(4.修改员工生日n);printf(n);printf(n);printf(n);printf(5.修改员工电话n);printf(n);printf(n);printf(n);printf(0.退出管理系统n);printf(n);printf(n);printf(n);printf(n); printf(%s, asctime (timenow) );printf(请输入您的选择(数字 0-5):n);scanf(%c,&i);gets(lj);if(lj0)i=a;switch(i)case 1:printf(请输入员工的姓名:n);scanf(%s,p-name);break; case 2:printf(请输入员工的年龄:n);scanf(%d,&p-age);break; case 3:printf(请输入员工的性别:n);scanf(%s,p-sex);break;case 4:printf( 请输入员工的出生年月 :n);scanf(%s,p-birthday);break;case 5:xiugai();printf(请输入员工的电话 :n);scanf(%s,p-tel);break;.专业.整理.下载可编辑case 0:flog=1;break;default:printf(输入有误,请重新输入n);gets(lj);break;if(flog)break;void gengxin()char i,lj100;time_t T;int flog;struct tm * timenow;time ( &T );timenow = localtime ( &T );flog=0;while(1)system(cls);printf(nnnnn);printf(员工信息更新系统n);printf(n);printf(n);printf(n);printf(1.员工信息添加n);printf(n);printf(n);printf(n);printf(2.员工信息删除n);printf(n);printf(n);printf(n);printf(3.员工信息修改n);printf(n);printf(n);.专业.整理.下载可编辑printf(n);printf(0.退出管理系统n);printf(n);printf(n);printf(n);printf(n);printf( %s,asctime (timenow) );printf(请输入您的选择(数字 0-3):n);scanf(%c,&i);gets(lj);if(lj0)i=a;switch(i)case 1:tianjia();break;case 2:shanchu();break;case 3:xiugai();break;case 0:flog=1;break;default:printf(输入有误,请重新输入n);gets(lj);break;if(flog)break;.专业.整理.
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 建筑环境 > 建筑资料


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

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


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