c语言程序设计__企业员工管理系统_第1页
c语言程序设计__企业员工管理系统_第2页
c语言程序设计__企业员工管理系统_第3页
c语言程序设计__企业员工管理系统_第4页
免费预览已结束,剩余17页可下载查看

付费下载

下载本文档

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

文档简介

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

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

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

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

5、开文件i<ni=0否输出员工信息专业资料i<ni+是否是排序模块:开始更新模块:i=0j=i+1开始输入 i判断 i 值i 的年龄大于 j 的否i=3年龄i=1添修删i=2退i=0加改除出模系模模交换 i 与 j 的信息块统块块是j=j+1j>n否i=0i=i+1否是返回主界面i>n-1是结束否专业资料是输出信息结束查询模块:开始统计模块:开始i=1姓名查询专业资料输入 i输入 i判断 i 值判断 i 值i=3工i=2i=0退i=1i=2i=3i=0作年统统退出统出查龄计计系计系询查年性统工统询龄别作i=0i=0返回主界面返回主界面结束否否是是六、调试情况,设计技巧及体

6、会1、对自己设计进行评价,指出合理和不足之处,提出改进的方案。自我评价:本人自我觉得此系统还不错,程序简洁明了,功能齐全,而且充分从用户的角度进行编排, 易于执行。经本人多次调试终于出现 0 个错误与警告,而且从未有过死循环,用户一旦输错,立即会有提示,此程序相当的健壮。因本人定义了全局变量,使操作更加简单易行,使用了结构体数组,避开链表那样的复杂操作。但不足之处便是没有链表那样节省内存。如有机会下次可能会用链表。2、在设计过程中的感受。在把字符一个个敲上屏幕时,坐在那一动不动相当的枯燥,一想到过会儿就能看到自己亲自编的程序,就只能忍吧 。当看到模块一个个运行后与预料中的完全一样时,郁闷的心情

7、立马被一种成就感替代。就想赶紧编完看看自己的杰作。然而也会遇到自己解决不了的问题,就只能去求老师了。这次最大的感受就是当你竭尽全力的干一件事时,就没有能挡住你的困难。七、参考文献C 语言课本。八、附录: 源代码#include<stdio.h>#include<string.h>#define MAX 100charfilename20;/* 文件名 */FILE *fp;int n;/* 当前该厂人数 */struct date/* 时间结构体 */ int year;int mouth;int day; ;struct person/* 员工信息结构体 */ cha

8、r 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;i<n;i+) printf(" 第%d 个人的信息: n",i+1); printf(" 姓名 n"); scanf("%s",); printf(" 年龄 n"); scanf("%d&quo

10、t;,&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

11、("%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;i<n;i+)专业资料fprintf(fp,"%s%d%s%s%s%s%d-%d-%dn&q

12、uot;,,workeri.age,workeri.job,workeri.sex,workeri.address,workeri.phone,workeri.in_tim e.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();clrsc

13、r();printf("该厂的员工信息: n");printf(" 姓名 t 年龄 t 工作 t 性别 t 地址 t 电话 t 入厂时间 n"); for(i=0;i<n;i+) fscanf(fp,"%s %d %s %s %s %s %d-%d-%d",,&workeri.age,work eri.job,workeri.sex,workeri.address,workeri.phone,&workeri.in_time.year,& workeri.in_time.mouth

14、,&workeri.in_time.day);printf("%st%dt%st%st%st%st%d-%d-%d n",,workeri.age,workeri.job,workeri.sex,workeri.address,wor keri.phone,workeri.in_time.year,workeri.in_time.mouth,workeri.in_time.day);fclose(fp);printf("输出完毕,按任意键返回主菜单n");getch();/* 保存模块 */void save() int

15、i;if(fp=fopen(filename,"w")=NULL)/* 打开文件 */ printf("n不能打开该文件! "); exit();for(i=0;i<n;i+)fprintf(fp,"%s%d%s%s%s%s%d-%d-%dn",,workeri.age,workeri.job,workeri.sex,workeri.address,workeri.phone,workeri.in_tim e.year,workeri.in_time.mouth,workeri.in_time.day);

16、专业资料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();for(i=0;i<n;i+)fscanf(fp,

17、"%s %d %s %s %s %s %d-%d-%d",,&workeri.age,worke ri.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(

18、"开始修改 n");doprintf(" 请输入要修改的员工姓名n");scanf("%s",namekey);for(i=0;i<n;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",,worker

19、i.age,workeri.job,workeri.sex,workeri.address,workeri.phone,workeri.in_time.year,workeri.in_time.mouth,workeri.in_time.day);getchar();/* 接收回车 */ch=getchar();if(ch='y') printf("* 您要修改那一项? *nn");printf("*1, 姓名 *nn");专业资料printf("*2,年龄 *nn");printf("*3,工作 *nn&q

20、uot;);printf("*4,性别 *nn");printf("*5,地址 *nn");printf("*6,电话 *nn");printf("*7,入厂年 *nn");printf("*8,入厂月 *nn");printf("*9,入厂日 *nn");printf("请选择 (1-9)n");scanf("%d",&choice);switch(choice) case 1: printf("输入修改后的姓名 n

21、"); scanf("%s",); 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;ca

22、se 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&quo

23、t;);scanf("%d",&workeri.in_time.mouth); break; case 9: 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.

24、name,workeri.age,workeri.job,workeri.sex,workeri.address,wor keri.phone,workeri.in_time.year,workeri.in_time.mouth,workeri.in_time.day) ;else break;elseif(i=n)printf(" 此人不存在 n");printf("n 是否继续输入 (y/n)n");专业资料getchar();/* 接收回车 */ch=getchar();if(ch='y') printf(" 继续 n&q

25、uot;); 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");scan

26、f("%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&q

27、uot;);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);n+;printf("n 添加成功!是否继续输入(y/

28、n)n");getchar();/* 接收回车 */专业资料ch=getchar();if(ch='y') printf(" 继续 n"); flag=1;else flag=0;while(flag=1);printf(" 添加完毕,按任意键返回主菜单n") ;getch();/* 删除模块 */voiddel() int i,flag; char ch,namekey10; flag=0;clrscr();printf(" 开始删除 n");do printf(" 请输入要删除员工的名字 n&q

29、uot;); scanf("%s",namekey); for(i=0;i<n;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.

30、address,workeri.phone,workeri.in_time.year,workeri.in_time.mouth,workeri.in_time.day);getchar();/* 接收回车 */ch=getchar();if(ch='y') for(;i<n;i+) workeri=workeri+1;n-;else break;elseif(i=n)printf(" 此人不存在 n");printf("n是否继续输入 (y/n)n");getchar();/* 接收回车 */ch=getchar();专业资料if

31、(ch='y') printf(" 继续 n");flag=1;else flag=0;while(flag=1);printf(" 操作完毕,按任意键返回主菜单n") ;getch();/* 更新模块 */void renew() int i;doclrscr();printf("nnn* 更新员工信息 *nn");printf("按 1,添加员工信息 nn");printf("按 2,删除员工信息 nn");printf("按 3,修改员工信息 nn");

32、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("输入要查询的员工姓名 n")

33、;scanf("%s",namekey);for(i=0;i<n;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,workeri.job,workeri.sex,workeri.address,wor专业

34、资料keri.phone,workeri.in_time.year,workeri.in_time.mouth,workeri.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;i&l

35、t;n;i+)if(workeri.age=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.address,workeri.phone,workeri.in_time.year,workeri.in_time.mouth,workeri.in_tim

36、e.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);for(i=0;i<n;i+)if(strcmp(workeri.job,jobkey)=0) printf("- 员工信息 -n");p

37、rintf(" 姓名 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.address,wor keri.phone,workeri.in_time.year,workeri.in_time.mouth,workeri.in_time.day);else j+;if(j=n)printf(" 此人不存在 n");pri

38、ntf(" 按任意键返回主菜单 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",

39、&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;i<n-1;i+)for(j=i+1;j<n;j+)if(workeri.age>workerj.age) t=workeri; workeri=workerj;workerj=t;p

40、rintf(" 姓名 t 年龄 t 工作 t 性别 t 地址 t 电话 t 入厂时间n");专业资料for(i=0;i<n;i+)printf("%st%dt%st%st%st%st%d-%d-%dn",,workeri.age,workeri.job,workeri.sex,workeri.address,wor keri.phone,workeri.in_time.year,workeri.in_time.mouth,workeri.in_time.day) ;printf(" 按任意键返回主菜单 n"

41、;);getch();/* 按年龄统计 */void count_age() int i,j; int agekey; j=0;clrscr();printf(" 输入要统计员工的年龄 n"); scanf("%d",&agekey);for(i=0;i<n;i+)if(workeri.age=agekey) printf("- 员工信息 -n");printf(" 姓名 t 年龄 t 工作 t 性别 t 地址 t 电话 t 入厂时间 n"); printf("%st%dt%st%st%st

42、%st%d-%d-%dn",,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 count_job() int i,j; char jobkey10

43、;j=0;clrscr();printf(" 输入要统计的员工职务 n");scanf("%s",jobkey);for(i=0;i<n;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

44、,workeri.sex,workeri.address,wor专业资料keri.phone,workeri.in_time.year,workeri.in_time.mouth,workeri.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"

45、);scanf("%s",sexkey);for(i=0;i<n;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.address,workeri.phone,worke

46、ri.in_time.year,workeri.in_time.mouth,workeri.in_time.day);else j+;if(j=n)printf(" 暂无该性别员工 n");printf(" 按任意键返回主菜单 n");getch();/* 统计模块 */void count() int i;doclrscr();printf("nnn* 统计员工信息 *nn");printf("按 1,统计某年龄职工 nn");printf("按 2,统计某职务员工 nn");printf("按 3,统计某性别职工 nn");printf("按 0,返回主菜单 nn");printf("请选择 (0-3):n");scanf("%d",&i);专业资料switch(i) case 1: count_age(); break; case 2: count_job(); break; case 3: count_sex(); break; case 0: break;while(i!=0);/* 主函数 */main() int

温馨提示

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

评论

0/150

提交评论