c语言程序设计企业员工管理系统_第1页
c语言程序设计企业员工管理系统_第2页
c语言程序设计企业员工管理系统_第3页
c语言程序设计企业员工管理系统_第4页
c语言程序设计企业员工管理系统_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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

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

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

4、入要统计的工作,查找并输出,若无此工作则输出暂无此工作 员工。保存模块:将现有信息保存于文件中,以防丢失。系统模块图五、详细设计及运行结果流程图,函数之间相互调用的图示,程序设计及编码,运行结果 主函数:是是J输出信息/* 文件名 */当前该厂人数 */时间结构体 */员工信息结构体 */ 姓名*/ 年龄*/ 工作*/ 性别*/ 地址*/ 电话*/入厂时间 */六、调试情况,设计技巧及体会1、对自己设计进行评价,指出合理和不足之处,提出改进的方案。自我评价 :本人自我觉得此系统还不错,程序简洁明了,功能齐全,而且充分 从用户的角度进行编排, 易于执行。经本人多次调试终于出现 0 个错误与警告

5、而且从未有过死循环,用户一旦输错,立即会有提示,此程序相当的健壮。 因本人定义了全局变量,使操作更加简单易行,使用了结构体数组,避开链表 那样的复杂操作。但不足之处便是没有链表那样节省内存。如有机会下次可能 会用链表。2、在设计过程中的感受。 在把字符一个个敲上屏幕时,坐在那一动不动相当的枯燥,一想到过会儿就能 看到自己亲自编的程序,就只能忍吧 。当看到模块一个个运行后与预料中的 完全一样时,郁闷的心情立马被一种成就感替代。就想赶紧编完看看自己的杰 作。然而也会遇到自己解决不了的问题,就只能去求老师了。这次最大的感受就是当你竭尽全力的干一件事时,就没有能挡住你的困难。七、参考文献C语言课本。八

6、、附录: 源代码 #include #include #define MAX 100 char filename20; FILE *fp;int n;/*struct date /* int year;int mouth;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(

7、);printf(nn 请输入文件名 n);scanf(%s,filename);printf( 开始输入员工的信息 n);printf(n 请输入现有员工人数 n);scanf(%d,&n);if(fp=fopen(filename,w)=NULL) printf( 不能建立! n);exit();for(i=0;in;i+) prin tf(第(:个人的信息:n,i+1);prin tf(姓名 n);scanf(%s,);prin tf(年龄 n);scanf(%d,&workeri.age);prin tf(工作 n);scanf(%s,workeri.job);

8、prin tf(性别 n);scanf(%s,workeri.sex);prin tf(地址 n);scanf(%s,workeri.address);prin tf(电话 n);scanf(%s,workeri.phone);prin tf(入厂年 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+

9、)fprintf(fp,%s %d %s %s %s %s %d-%d-%dn,,workeri.age,workeri.job,workeri.sex,workeri.address,workeri.phone,worker i.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()

10、;exit();clrscr();printf( 该厂的员工信息: n);printf(姓名t年龄t工作t性别t地址t电话t入厂时间n);for(i=0;in;i+) fscanf(fp,%s %d %s %s %s %s %d-%d-%d,,&workeri.age,wo rkeri.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

11、-%d n,,workeri.age,workeri.job,workeri.sex,workeri.ad dress,workeri.phone,workeri.in_time.year,workeri.in_time.mouth,work eri.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;

12、i+)fprintf(fp,%s %d %s %s %s %s %d-%d-%dn,,workeri. age,workeri.job,workeri.sex,workeri.address,workeri.phone,worker i.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(%

13、d,&n);if(fp=fopen(filename,r)=NULL)n); printf( 暂时未有任何信息,请按任意键返回主菜单进行信息录入 getch();for(i=0;in;i+)fscanf(fp,%s %d %s %s %s %s %d-%d-%d,,&workeri.age,workeri.job,workeri.sex,workeri.address,workeri.phone,&workeri.in_t ime.year,&workeri.in_time.mouth,&workeri.in_time.day);fclose(fp);/* 修改模块 *

14、/void modify() int i,flag,choice; char ch,namekey10;flag=0;clrscr();printf( 开始修改 n);doprintf( 请输入要修改的员工姓名 n);scanf(%s,namekey);for(i=0;in;i+) if(strcmp(,namekey)=0) printf( 是否修改此人 (y/n)n);printf(姓名t年龄t工作t性别t地址t电话t入厂时间n)printf(%st%dt%st%st%st%st%d-%d-%dn,,workeri.age,workeri.j

15、ob,workeri.sex,workeri.address,workeri.phone,workeri.in_time.year,workeri.in_time.mouth,work printf( 请选择 (1-9)n);eri.in_time.day); getchar(); /* ch=getchar(); if(ch=y) printf( * printf( *1, printf( *2, printf( *3, printf( *4, printf( *5, printf( *6, printf( *7, printf( *8, printf( *9,接收回车 */您要修改那一项?

16、 *nn)姓名 *nn);年龄 *nn);工作 *nn);性别 *nn);地址 *nn);电话 *nn);入厂年 *nn);入厂月 *nn);入厂日 *nn);scanf(%d,&choice);switch(choice) case 1: printf( 输入修改后的姓名 n);scanf(%s,); break;case 2: printf(输入修改后的年龄 n);scanf(%d,&workeri.age); break;case 3: printf(输入修改后的工作 n);scanf(%s,workeri.job); break;case 4: printf(输

17、入修改后的性别 n);scanf(%s,workeri.sex); break;case 5: printf(输入修改后的地址 n);scanf(%s,workeri.address); 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:

18、 printf(输入修改后的入厂日 n);scanf(%d,&workeri.in_time.day); break;printf( 修改后的信息 n);printf( 姓名t年龄t工作t性别t地址t电话t入厂时间n); printf(%st%dt%st%st%st%st%d-%d-%dn,,workeri.age,workeri.job,workeri.sex,workeri.ad dress,workeri.phone,workeri.in_time.year,workeri.in_time.mouth,work eri.in_time.day);else brea

19、k;elseif(i=n) printf(此人不存在 n);printf(n 是否继续输入 (y/n)n);getchar(); /*接收回车 */ch=getchar();if(ch=y) prin tf( 继续 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 请输入添加职工的信息 (姓名, 年龄,

20、工作,性别, 地址, 电话,入 厂时间 )n);printf(姓名 n);scanf(%s,);printf(年龄 n);scanf(%d, &workeri.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(入厂月

21、 n);scanf(%d,&workeri.in_time.mouth);printf(入厂日 n);scanf(%d,&workeri.in_time.day);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;cl

22、rscr();printf( 开始删除 n);do printf( 请输入要删除员工的名字 n); scanf(%s,namekey);for(i=0;in;i+)if(strcmp(,namekey)=0) /* 查找此人 */ printf( 是否删除此人 (y/n)n);printf( 姓名t年龄t工作t性别t地址t电话t入厂时间n); printf(%st%dt%st%st%st%st%d-%d-%dn,,workeri.age,workeri.job,workeri.sex,workeri.ad dress,workeri.phone,

23、workeri.in_time.year,workeri.in_time.mouth,work eri.in_time.day);getchar(); /*接收回车 */ch=getchar();if(ch=y) for(;in;i+)workeri=workeri+1;n-;else break;elseif(i=n)printf(此人不存在 n);printf(n是否继续输入 (y/n)n);getchar(); /*接收回车 */ch=getchar();if(ch=y) prin tf( 继续 n);flag=1;else flag=0;while(flag=1);printf( 操作

24、完毕,按任意键返回主菜单 n) ;getch();/* 更新模块 */void renew() 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: add(); break;case 2: del(); break;case 3: modify(); break;case 0: break

25、;while(i!=0);save();/* 按姓名查找 */void name_cha() int i,j; char namekey10;j=0;clrscr();printf( 输入要查询的员工姓名 n);scanf(%s,namekey);for(i=0;in;i+) if(strcmp(,namekey)=0) /* 查找此人 */ printf( 员工信息 n);printf( 姓名t年龄t工作t性别t地址t电话t入厂时间n); printf(%st%dt%st%st%st%st%d-%d-%dn,,workeri.age,worke

26、ri.job,workeri.sex,workeri.ad dress,workeri.phone,workeri.in_time.year,workeri.in_time.mouth,work eri.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.ag

27、e=agekey) printf( 员工信息 n);printf(姓名t年龄t工作t性别t地址t电话t入厂时间n);printf(%st%dt%st%st%st%st%d-%d-%dn,,workeri.age,workeri.job,workeri.sex,workeri.ad dress,workeri.phone,workeri.in_time.year,workeri.in_time.mouth,work eri.in_time.day);else j+;if(j=n)printf(此人不存在 n);printf(按任意键返回主菜单 n);getch();/*

28、按工作查找 */void job_cha() int i,j; char jobkey10;j=0;clrscr();printf( 输入要查询的员工职务 n);scanf(%s,jobkey);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-%dn,,workeri.age,workeri.job,workeri.sex,workeri.ad dress,workeri

29、.phone,workeri.in_time.year,workeri.in_time.mouth,work eri.in_time.day);else j+;if(j=n)printf(此人不存在 n);printf(按任意键返回主菜单 n);getch();/* 查询模块 */void inquire() int i;do查询员工信息 *nn);nn);nn);nn);printf(*1,按姓名查询 *printf(*2,按年龄查询 *printf(*3,按工作查询 *printf(*0,返回主菜单 n);请选择 (0-3)n); clrscr();printf(nnnprintf( sc

30、anf(%d,&i); switch(i) case 1: name_cha();break; case 2: age_cha(); break; case 3: job_cha();break; 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;

31、in;i+)printf(%st%dt%st%st%st%st%d-%d-%dn,,workeri.age,workeri.job,workeri.sex,workeri.ad dress,workeri.phone,workeri.in_time.year,workeri.in_time.mouth,work eri.in_time.day);printf( 按任意键返回主菜单 n);getch();/* 按年龄统计 */void count_age() int i,j; int agekey;j=0;输入要统计员工的年龄 n);clrscr();printf(sca

32、nf(%d,&agekey);for(i=0;in;i+)if(workeri.age=agekey) printf( 员工信息 n);prin tf(姓名t年龄t工作t性别t地址t电话t入厂时间n);printf(%st%dt%st%st%st%st%d-%d-%d n,,workeri.age,workeri.job,workeri.sex,workeri.ad dress,workeri.phone,workeri.in_time.year,workeri.in_time.mouth,work eri.in_time.day);else j+;if(j=n)pri

33、ntf(暂无该年龄段员工 n);printf(按任意键返回主菜单 n);getch();/* 按职务统计 */void count_job() int i,j; char jobkey10;j=0;clrscr();printf( 输入要统计的员工职务 n);scanf(%s,jobkey); 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-%dn,,workeri.ag

34、e,workeri.job,workeri.sex,workeri.ad dress,workeri.phone,workeri.in_time.year,workeri.in_time.mouth,work eri.in_time.day);else j+;if(j=n)printf(暂无该职务或该职务暂时无人 n);printf(按任意键返回主菜单 n);getch();/* 按性别统计 */void count_sex() int i,j; char sexkey10;j=0;clrscr();printf( 输入要统计的员工性别 n); scanf(%s,sexkey);for(i=0

35、;in;i+) if(strcmp(workeri.sex,sexkey)=0) printf( 员工信息 n);printf(姓名t年龄t工作t性别t地址t电话t入厂时间n);printf(%st%dt%st%st%st%st%d-%d-%dn,,workeri.age,workeri.job,workeri.sex,workeri.ad dress,workeri.phone,workeri.in_time.year,workeri.in_time.mouth,work eri.in_time.day);else j+;暂无该性别员工 n); 按任意键返回主菜单 n);if(j=n) printf( printf(getch();/* 统计模块 */ void count() int i;do统计员工信息 *nn); 按 1, 统计某年龄职工 nn); 按 2, 统计某职务员工 nn);

温馨提示

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

评论

0/150

提交评论