c语言程序设计企业员工管理系统.docx

上传人:牧羊曲112 文档编号:3060694 上传时间:2023-03-10 格式:DOCX 页数:25 大小:42.67KB
返回 下载 相关 举报
c语言程序设计企业员工管理系统.docx_第1页
第1页 / 共25页
c语言程序设计企业员工管理系统.docx_第2页
第2页 / 共25页
c语言程序设计企业员工管理系统.docx_第3页
第3页 / 共25页
c语言程序设计企业员工管理系统.docx_第4页
第4页 / 共25页
c语言程序设计企业员工管理系统.docx_第5页
第5页 / 共25页
亲,该文档总共25页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《c语言程序设计企业员工管理系统.docx》由会员分享,可在线阅读,更多相关《c语言程序设计企业员工管理系统.docx(25页珍藏版)》请在三一办公上搜索。

1、c语言程序设计 企业员工管理系统一、 课程设计目的 通过本课程设计,强化上机动手能力,使学生在理论和实践的基础上进一步巩固C语言程序设计课程学习的内容,掌握工程软件设计的基本方法。 学会将知识应用于实际的方法,提高分析和解决问题的能力,增加综合能力。 为后续各门计算机课程的学习打下坚实基础。 为毕业设计和以后工作打下必要基础。 二、课程设计内容 针对某企业的员工,对其信息进行系统的管理。 三、需求分析 对所开发系统功能、性能的描述,想要实现的目标。 此系统可对该厂员工进行信息的录入,修改,删除,添加,查询,排序,统计,打印等功能。用户可通过提示选择进入某一功能界面,然后进行对员工的信息管理。每

2、一功能模块都充分为用户考虑,编排详细。使用户可以方便快捷的了解员工信息,及时有效的对员工进行信息的管理。 四、概要设计 1系统结构图 对系统进行分析,给出系统结构图; 分析:此系统,为方便客户输入,以及使程序清晰化,因而本人采用模块法,将每一功能模块化,使程序中各函数间调用更加明了。以下为系统模块图。 2功能模块说明 对各个模块进行功能的描述。 录入模块:输入该厂现有员工信息并保存与文件中,方便日后进行排序,更新,统计,打印等操作。 输出模块:将所有员工信息,或所需员工信息输出于屏幕上,用于打印或查询员工信息。 更新模块:此模块又分为删除,添加,修改三个模块。 删除模块:对已退休或离开该厂的员

3、工进行删除操作。 添加模块:添加新入厂的员工信息并保存起来。 修改模块:找到该员工并,选择所要修改的选项。 排序模块:本程序只对员工年龄进行从小到大排序。 查询模块:此模块分为按姓名,年龄,工作查询。 姓名查询模块:输入要查找的姓名,找到就输出其信息。找不到则输出无此人。 年龄查询模块:输入要查找的年龄,找到就输出其信息。找不到则输出无此人。 工作查询模块:输入要查找的工作,找到就输出其信息。找不到则输出无此人。 统计模块:此模块分为,统计年龄,性别和工作。 统计年龄:输入要统计的年龄,查找并输出,若无此年龄则输出暂无此年龄员工。 统计性别:输入要统计的性别,查找并输出,若无此性别则输出暂无此

4、性别员工。 统计工作:输入要统计的工作,查找并输出,若无此工作则输出暂无此工作员工。 保存模块:将现有信息保存于文件中,以防丢失。 系统模块图 王氏企业员工 信息管理系统 输入i的值,进入相应模块 更查排统录输 新询序计出 入模模模模 模模块 块 块 块 块 块 保存模块 退出系统 添加员工信息 删除员工信息 修改员工 信息 按性别统计 按工作统计 按姓名查询 按年龄 查寻 按工作查询 按年龄排序 按年龄统计 按任意键返回主界面 五、详细设计及运行结果 流程图, 函数之间相互调用的图示 ,程序设计及编码, 运行结果。 主函数: 开始 输入i 判断i值 i=1 i=6 i=2 i=3 i=4 i

5、=5 i=0 退统排 录输更查出计序 入出新询系模 模模模模模统 块 块 块 块 块 块 输出模块: 开始 否 i=0 打开文件 录入模块: 开始 是 保存模块 i=0 打开文件 结束 i=0 否 in 是 否 输出员工信息 in 是 i=i+1 否 in-1 是 输出信息 结束 输入i 判断i值 i=3 i=1 i=2 i=0 添修删退加改除出模模系块 块 模块 统 否 i=0 是 返回主界面 结束 查询模块: 统计模块: 开始 开始 输入i 输入i 判断i值 判断i值 i=1 i=3 i=2 i=0 i=1 i=2 i=3 i=0 工退 姓年统作出统统 名龄计查系计计 查查性询 统 年工询

6、 询 别 龄 作 否 否 i=0 i=0 是 是 返回主界面 返回主界面 退出系统 结束 结束 六、调试情况,设计技巧及体会 1、对自己设计进行评价,指出合理和不足之处,提出改进的方案。 自我评价:本人自我觉得此系统还不错,程序简洁明了,功能齐全,而且充分从用户的角度进行编排,易于执行。经本人多次调试终于出现0个错误与警告,而且从未有过死循环,用户一旦输错,立即会有提示,此程序相当的健壮。 因本人定义了全局变量,使操作更加简单易行,使用了结构体数组,避开链表那样的复杂操作。但不足之处便是没有链表那样节省内存。如有机会下次可能会用链表。 2、在设计过程中的感受。 在把字符一个个敲上屏幕时,坐在那

7、一动不动相当的枯燥,一想到过会儿就能看到自己亲自编的程序,就只能忍吧 。当看到模块一个个运行后与预料中的完全一样时,郁闷的心情立马被一种成就感替代。就想赶紧编完看看自己的杰作。然而也会遇到自己解决不了的问题,就只能去求老师了。 这次最大的感受就是当你竭尽全力的干一件事时,就没有能挡住你的困难。 七、参考文献 C语言课本。 八、附录:源代码 #include #include #define MAX 100 char filename20; /*文件名*/ FILE *fp; int n; /*当前该厂人数*/ struct date /*时间结构体*/ int year; int mouth;

8、 int day; ; struct person /*员工信息结构体*/ char name10; /*姓名*/ int age; /*年龄*/ char job10; /*工作*/ char sex10; /*性别*/ char address20; /*地址*/ char phone10; /*电话*/ struct date in_time; /*入厂时间*/ t,workerMAX; /*录入模块*/ void input int i; clrscr; printf(nn请输入文件名n); scanf(%s,filename); printf(开始输入员工的信息n); printf(

9、n请输入现有员工人数n); scanf(%d,&n); if(fp=fopen(filename,w)=NULL) printf(不能建立!n); exit; for(i=0;in;i+) printf(第%d个人的信息:n,i+1); printf(姓名n); scanf(%s,workeri.name); printf(年龄n); scanf(%d,&workeri.age); printf(工作n); scanf(%s,workeri.job); printf(性别n); scanf(%s,workeri.sex); printf(地址n); scanf(%s,workeri.addre

10、ss); printf(电话n); scanf(%s,workeri.phone); printf(入厂年n); scanf(%d,&workeri.in_time.year); printf(入厂月n); scanf(%d,&workeri.in_time.mouth); printf(入厂日n); scanf(%d,&workeri.in_time.day); printf(录入完毕,按任意键返回主菜单n); getch; for(i=0;in;i+) fprintf(fp,%s %d %s %s %s %s %d-%d-%dn,workeri.name,workeri.age,worke

11、ri.job,workeri.sex,workeri.address,workeri.phone,workeri.in_time.year,workeri.in_time.mouth,workeri.in_time.day); fclose(fp); /*输出模块*/ void output int i; if(fp=fopen(filename,r)=NULL) printf( 暂时未有任何信息,请按任意键返回主菜单进行信息录入n); getch; exit; clrscr; printf( 该厂的员工信息:n); printf(姓名t年龄t工作t性别t地址t电话t入厂时间 n); for(

12、i=0;in;i+) fscanf(fp,%s %d %s %s %s %s %d-%d-%d,workeri.name,&workeri.age,workeri.job,workeri.sex,workeri.address,workeri.phone,&workeri.in_time.year,&workeri.in_time.mouth,&workeri.in_time.day); printf(%st%dt%st%st%st%st%d-%d-%d n,workeri.name,workeri.age,workeri.job,workeri.sex,workeri.address,wor

13、keri.phone,workeri.in_time.year,workeri.in_time.mouth,workeri.in_time.day); fclose(fp); printf( 输出完毕,按任意键返回主菜单n); getch; /*保存模块*/ void save int i; if(fp=fopen(filename,w)=NULL) /*打开文件*/ printf(n 不能打开该文件!); exit; for(i=0;in;i+) fprintf(fp,%s %d %s %s %s %s %d-%d-%dn,workeri.name,workeri.age,workeri.j

14、ob,workeri.sex,workeri.address,workeri.phone,workeri.in_time.year,workeri.in_time.mouth,workeri.in_time.day); fclose(fp); /*读取信息*/ void read_message int i; printf(输入文件名n); scanf(%s,filename); printf(n请输入现有员工人数n); scanf(%d,&n); if(fp=fopen(filename,r)=NULL) printf( 暂时未有任何信息,请按任意键返回主菜单进行信息录入n); getch;

15、 for(i=0;in;i+) fscanf(fp,%s %d %s %s %s %s %d-%d-%d,workeri.name,&workeri.age,workeri.job,workeri.sex,workeri.address,workeri.phone,&workeri.in_time.year,&workeri.in_time.mouth,&workeri.in_time.day); fclose(fp); /*修改模块*/ void modify int i,flag,choice; char ch,namekey10; flag=0; clrscr; printf( 开始修改

16、n); do printf(请输入要修改的员工姓名n); scanf(%s,namekey); for(i=0;in;i+) if(strcmp(workeri.name,namekey)=0) printf(是否修改此人(y/n)n); printf(姓名t年龄t工作t性别t地址t电话t入厂时间 n); printf(%st%dt%st%st%st%st%d-%d-%d n,workeri.name,workeri.age,workeri.job,workeri.sex,workeri.address,workeri.phone,workeri.in_time.year,workeri.in

17、_time.mouth,workeri.in_time.day); getchar; /*接收回车*/ ch=getchar; if(ch=y) printf( *您要修改那一项?*nn); printf( *1,姓名*nn); printf( *2,年龄*nn); printf( *3,工作*nn); printf( *4,性别*nn); printf( *5,地址*nn); printf( *6,电话*nn); printf( *7,入厂年*nn); printf( *8,入厂月*nn); printf( *9,入厂日*nn); printf( 请选择(1-9)n); scanf(%d,&

18、choice); switch(choice) case 1: printf(输入修改后的姓名n); scanf(%s,workeri.name); break; case 2: printf(输入修改后的年龄n); scanf(%d,&workeri.age); break; case 3: printf(输入修改后的工作n); scanf(%s,workeri.job); break; case 4: printf(输入修改后的性别n); scanf(%s,workeri.sex); break; case 5: printf(输入修改后的地址n); scanf(%s,workeri.ad

19、dress); break; case 6: printf(输入修改后的电话n); scanf(%s,workeri.phone); break; case 7: printf(输入修改后的入厂年n); scanf(%d,&workeri.in_time.year); break; case 8: printf(输入修改后的入厂月n); scanf(%d,&workeri.in_time.mouth); break; case 9: printf(输入修改后的入厂日n); scanf(%d,&workeri.in_time.day); break; printf(修改后的信息n); print

20、f(姓名t年龄t工作t性别t地址t电话t入厂时间 n); printf(%st%dt%st%st%st%st%d-%d-%d n,workeri.name,workeri.age,workeri.job,workeri.sex,workeri.address,workeri.phone,workeri.in_time.year,workeri.in_time.mouth,workeri.in_time.day); else break; else if(i=n) printf(此人不存在n); printf(n是否继续输入(y/n)n); getchar; /*接收回车*/ ch=getcha

21、r; if(ch=y) printf(继续n); flag=1; else flag=0; while(flag=1); printf(修改完毕,按任意键返回主菜单n) ; getch; /*添加模块*/ void add int i,flag=0; char ch; clrscr; printf(n 开始添加新员工n); printf( *-*nn); do i=n; printf(n 请输入添加职工的信息(姓名,年龄,工作,性别,地址,电话,入厂时间)n); printf(姓名n); scanf(%s,workeri.name); printf(年龄n); scanf(%d, &worke

22、ri.age); printf(工作n); scanf(%s,workeri.job); printf( 性别n); scanf(%s,workeri.sex); printf(地址n); scanf(%s,workeri.address); printf(电话n); scanf( %s,workeri.phone); printf(入厂年n); scanf(%d,&workeri.in_time.year); printf(入厂月n); scanf(%d,&workeri.in_time.mouth); printf(入厂日n); scanf(%d,&workeri.in_time.day)

23、; n+; printf(n添加成功!是否继续输入(y/n)n); getchar; /*接收回车*/ ch=getchar; if(ch=y) printf(继续n); flag=1; else flag=0; while(flag=1); printf(添加完毕,按任意键返回主菜单n) ; getch; /*删除模块*/ void del int i,flag; char ch,namekey10; flag=0; clrscr; printf(开始删除n); do printf(请输入要删除员工的名字n); scanf(%s,namekey); for(i=0;in;i+) if(str

24、cmp(workeri.name,namekey)=0) /*查找此人*/ printf(是否删除此人(y/n)n); printf(姓名t年龄t工作t性别t地址t电话t入厂时间 n); printf(%st%dt%st%st%st%st%d-%d-%d n,workeri.name,workeri.age,workeri.job,workeri.sex,workeri.address,workeri.phone,workeri.in_time.year,workeri.in_time.mouth,workeri.in_time.day); getchar; /*接收回车*/ ch=getch

25、ar; if(ch=y) for(;in;i+) workeri=workeri+1; n-; else break; else if(i=n) printf(此人不存在n); printf(n是否继续输入(y/n)n); getchar; /*接收回车*/ ch=getchar; if(ch=y) printf(继续n); flag=1; else flag=0; while(flag=1); printf(操作完毕,按任意键返回主菜单n) ; getch; /*更新模块*/ void renew int i; do clrscr; printf(nnn *更新员工信息*nn); print

26、f( 按1,添加员工信息nn); printf( 按2,删除员工信息nn); printf( 按3,修改员工信息nn); printf( 按0,返回主菜单n); printf( 请选择(0-3)n); scanf(%d,&i); switch(i) case 1: add; break; case 2: del; break; case 3: modify; break; case 0: break; while(i!=0); save; /*按姓名查找*/ void name_cha int i,j; char namekey10; j=0; clrscr; printf( 输入要查询的员工

27、姓名n); scanf(%s,namekey); for(i=0;in;i+) if(strcmp(workeri.name,namekey)=0) /*查找此人*/ printf(-员工信息-n); printf(姓名t年龄t工作t性别t地址t电话t入厂时间 n); printf(%st%dt%st%st%st%st%d-%d-%d n,workeri.name,workeri.age,workeri.job,workeri.sex,workeri.address,workeri.phone,workeri.in_time.year,workeri.in_time.mouth,workeri

28、.in_time.day); else j+; if(j=n) printf(此人不存在n); printf(按任意键返回主菜单n); getch; /*按年龄查找*/ void age_cha int i,j; int agekey; j=0; clrscr; printf( 输入要查询员工的年龄n); scanf(%d,&agekey); for(i=0;in;i+) if(workeri.age=agekey) printf(-员工信息-n); printf(姓名t年龄t工作t性别t地址t电话t入厂时间 n); printf(%st%dt%st%st%st%st%d-%d-%d n,wo

29、rkeri.name,workeri.age,workeri.job,workeri.sex,workeri.address,workeri.phone,workeri.in_time.year,workeri.in_time.mouth,workeri.in_time.day); else j+; if(j=n) printf(此人不存在n); printf(按任意键返回主菜单n); getch; /*按工作查找*/ void job_cha int i,j; char jobkey10; j=0; clrscr; printf(输入要查询的员工职务n); scanf(%s,jobkey);

30、 for(i=0;in;i+) if(strcmp(workeri.job,jobkey)=0) printf(-员工信息-n); printf(姓名t年龄t工作t性别t地址t电话t入厂时间 n); printf(%st%dt%st%st%st%st%d-%d-%d n,workeri.name,workeri.age,workeri.job,workeri.sex,workeri.address,workeri.phone,workeri.in_time.year,workeri.in_time.mouth,workeri.in_time.day); else j+; if(j=n) pri

31、ntf(此人不存在n); printf(按任意键返回主菜单n); getch; /*查询模块*/ void inquire int i; do clrscr; printf(nnn *查询员工信息*nn); printf( *1,按姓名查询*nn); printf( *2,按年龄查询*nn); printf( *3,按工作查询*nn); printf( *0,返回主菜单n); printf( 请选择(0-3)n); scanf(%d,&i); switch(i) case 1: name_cha;break; case 2: age_cha; break; case 3: job_cha;br

32、eak; case 0: break; while(i!=0); /*排列模块*/ void line int i,j; clrscr; printf(-按年龄排序-nn); for(i=0;in-1;i+) for(j=i+1;jworkerj.age) t=workeri; workeri=workerj; workerj=t; printf(姓名t年龄t工作t性别t地址t电话t入厂时间 n); for(i=0;in;i+) printf(%st%dt%st%st%st%st%d-%d-%d n,workeri.name,workeri.age,workeri.job,workeri.se

33、x,workeri.address,workeri.phone,workeri.in_time.year,workeri.in_time.mouth,workeri.in_time.day); printf(按任意键返回主菜单n); getch; /*按年龄统计*/ void count_age int i,j; int agekey; j=0; clrscr; printf( 输入要统计员工的年龄n); scanf(%d,&agekey); for(i=0;in;i+) if(workeri.age=agekey) printf(-员工信息-n); printf(姓名t年龄t工作t性别t地址t电话t入厂时间 n); printf(%st%dt%st%st%st%st%d-%d-%d n,workeri.name,workeri.age,workeri.job,workeri.sex,workeri.address,workeri.phone,workeri.in_time.year,workeri

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号