您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 人事档案/员工关系 > c语言程序设计--企业员工管理系统
一、课程设计目的通过本课程设计,强化上机动手能力,使学生在理论和实践的基础上进一步巩固《C语言程序设计》课程学习的内容,掌握工程软件设计的基本方法。学会将知识应用于实际的方法,提高分析和解决问题的能力,增加综合能力。为后续各门计算机课程的学习打下坚实基础。为毕业设计和以后工作打下必要基础。二、课程设计内容针对某企业的员工,对其信息进行系统的管理。三、需求分析对所开发系统功能、性能的描述,想要实现的目标。此系统可对该厂员工进行信息的录入,修改,删除,添加,查询,排序,统计,打印等功能。用户可通过提示选择进入某一功能界面,然后进行对员工的信息管理。每一功能模块都充分为用户考虑,编排详细。使用户可以方便快捷的了解员工信息,及时有效的对员工进行信息的管理。四、概要设计1.系统结构图(功能模块图)对系统进行分析,给出系统结构图;分析:此系统,为方便客户输入,以及使程序清晰化,因而本人采用模块法,将每一功能模块化,使程序中各函数间调用更加明了。以下为系统模块图。2.功能模块说明对各个模块进行功能的描述。录入模块:输入该厂现有员工信息并保存与文件中,方便日后进行排序,更新,统计,打印等操作。输出模块:将所有员工信息,或所需员工信息输出于屏幕上,用于打印或查询员工信息。更新模块:此模块又分为删除,添加,修改三个模块。删除模块:对已退休或离开该厂的员工进行删除操作。添加模块:添加新入厂的员工信息并保存起来。修改模块:找到该员工并,选择所要修改的选项。排序模块:本程序只对员工年龄进行从小到大排序。查询模块:此模块分为按姓名,年龄,工作查询。姓名查询模块:输入要查找的姓名,找到就输出其信息。找不到则输出无此人。年龄查询模块:输入要查找的年龄,找到就输出其信息。找不到则输出无此人。工作查询模块:输入要查找的工作,找到就输出其信息。找不到则输出无此人。统计模块:此模块分为,统计年龄,性别和工作。统计年龄:输入要统计的年龄,查找并输出,若无此年龄则输出暂无此年龄员工。统计性别:输入要统计的性别,查找并输出,若无此性别则输出暂无此性别员工。统计工作:输入要统计的工作,查找并输出,若无此工作则输出暂无此工作员工。保存模块:将现有信息保存于文件中,以防丢失。系统模块图五、详细设计及运行结果录入模块输出模块更新模块查询模块退出系统添加员工信息删除员工信息修改员工信息按性别统计按姓名查询按年龄查寻按年龄统计王氏企业员工信息管理系统排序模块按年龄排序按工作查询统计模块按工作统计输入i的值,进入相应模块按任意键返回主界面保存模块流程图,函数之间相互调用的图示,程序设计及编码,运行结果。主函数:i=1i=6i=2i=3i=4i=5i=0输出模块:否录入模块:是否是否是判断i值录入模块输出模块更新模块查询模块排序模块统计模块退出系统开始i=0输入i保存模块结束开始i=0in输入员工信息i++关闭文件打开文件结束开始i=0in输出员工信息i++关闭文件打开文件结束排序模块:更新模块:否i=3i=1i=2i=0是否否是是否是开始i=0j=i+1i的年龄大于j的年龄交换i与j的信息j=j+1i=i+1jnin-1输出信息结束判断i值删除模块添加模块修改模块退出系统i=0返回主界面结束开始输入i查询模块:统计模块:i=1i=3i=2i=0i=1i=2i=3i=0否否是是六、调试情况,设计技巧及体会1、对自己设计进行评价,指出合理和不足之处,提出改进的方案。自我评价:本人自我觉得此系统还不错,程序简洁明了,功能齐全,而且充分从用户的角度进行编排,易于执行。经本人多次调试终于出现0个错误与警告,而且从未有过死循环,用户一旦输错,立即会有提示,此程序相当的健壮。因本人定义了全局变量,使操作更加简单易行,使用了结构体数组,避开链表那样的复杂操作。但不足之处便是没有链表那样节省内存。如有机会下次可能会用链表。2、在设计过程中的感受。在把字符一个个敲上屏幕时,坐在那一动不动相当的枯燥,一想到过会儿就能看到自己亲自编的程序,就只能忍吧。当看到模块一个个运行后与预料中的完全一样时,郁闷的心情立马被一种成就感替代。就想赶紧编完看看自己的杰作。然而也会遇到自己解决不了的问题,就只能去求老师了。判断i值年龄查询姓名查询工作查询退出系统i=0返回主界面结束开始输入i判断i值统计工作统计年龄统计性别退出系统i=0返回主界面结束开始输入i这次最大的感受就是当你竭尽全力的干一件事时,就没有能挡住你的困难。七、参考文献C语言课本。八、附录:源代码#includestdio.h#includestring.h#defineMAX100charfilename[20];/*文件名*/FILE*fp;intn;/*当前该厂人数*/structdate/*时间结构体*/{intyear;intmouth;intday;};structperson/*员工信息结构体*/{charname[10];/*姓名*/intage;/*年龄*/charjob[10];/*工作*/charsex[10];/*性别*/charaddress[20];/*地址*/charphone[10];/*电话*/structdatein_time;/*入厂时间*/}t,worker[MAX];/*录入模块*/voidinput(){inti;clrscr();printf(\n\n请输入文件名\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++){printf(第%d个人的信息:\n,i+1);printf(姓名\n);scanf(%s,worker[i].name);printf(年龄\n);scanf(%d,&worker[i].age);printf(工作\n);scanf(%s,worker[i].job);printf(性别\n);scanf(%s,worker[i].sex);printf(地址\n);scanf(%s,worker[i].address);printf(电话\n);scanf(%s,worker[i].phone);printf(入厂年\n);scanf(%d,&worker[i].in_time.year);printf(入厂月\n);scanf(%d,&worker[i].in_time.mouth);printf(入厂日\n);scanf(%d,&worker[i].in_time.day);}printf(录入完毕,按任意键返回主菜单\n);getch();for(i=0;in;i++)fprintf(fp,%s%d%s%s%s%s%d-%d-%d\n,worker[i].name,worker[i].age,worker[i].job,worker[i].sex,worker[i].address,worker[i].phone,worker[i].in_time.year,worker[i].in_time.mouth,worker[i].in_time.day);fclose(fp);}/*输出模块*/voidoutput(){inti;if((fp=fopen(filename,r))==NULL){printf(暂时未有任何信息,请按任意键返回主菜单进行信息录入\n);getch();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,worker[i].name,&worker[i].age,worker[i].job,worker[i].sex,worker[i].address,worker[i].phone,&worker[i].in_time.year,&worker[i].in_time.mouth,&worker[i].in_time.day);printf(%s\t%d\t%s\t%s\t%s\t%s\t%d-%d-%d\n,worker[i].name,worker[i].age,worker[i].job,worker[i].sex,worker[i].address,worker[i].phone,worker[i].in_time.year,worker[i].in_time.mouth,worker[i].in_time.day);}fclose(fp);printf(输出完毕,按任意键返回主菜单\n);getch();}/*保存模块*/voidsave(){inti;if((fp=fopen(filename,w))==NULL)/*打开文件*/{printf(\n不能打开该文件!);exit();}for(i=0;in;i++)fprintf(fp,%s%d%s%s%s%s%d-%d-%d\n,worker[i].name,worker[i].age,worker[i].job,worker[i].sex,worker[i].address,worker[i].phone,worker[i].in_time.year,worker[i].in_time.mouth,worker[i].in_time.day);fclose(fp);}/*读取信息*/voidread_message(){inti;printf(输入文件名\n);scanf(%s,filename);printf(\n请输入现有员工人数\n);scanf(%d,&n);if((fp=fopen(filename,r))==NULL){printf(暂时未有任何信息,请按任意键返回主菜单进行信息录入\n);getch();}for(i=0;in;i++)fscanf(fp,%s%d%s%s%s%s%d-%d-%d,worker[i].name,&worker[i].age,worker[i].job,worker[i].sex,worker[i].address,worker[i].phone,&worker[i].in_time.year,&worker[i].in_time.mouth,&worker[i].in_time.day);fclose(fp);}/*修改模块*/voidmodify(){inti,flag,choice;charch,namekey[10];flag=0;clrscr();printf(开始修改\n);do{printf(请输入要修改的员工姓名\n);scanf(%s,namekey);for(i=0;in;i++){if(strcmp(worker[i].name,namekey)==0){printf(是否修改此人(y/n)\n);printf(姓名\t年龄\t工作\t性别\t地址\t电话\t入厂时间\n);printf(%s\t%d\t%s\t%s\t%s\t%s\t%d-%d-%d\n,worker[i].name,worker[i].age,worker[i].job,worker[i].sex,worker[i].address,worker[i].phone,worker[i].in_time.year,worker[i].in_time.mouth,worker[i].in_time.day);getchar();/*接收回车*/ch=getchar();if(ch=='y'){printf(****您要修改那一项?***\n\n);printf(***1,姓名***\n\n);printf(***2,年龄***\n\n);printf(***3,工作***\n\n);printf(*
本文标题:c语言程序设计--企业员工管理系统
链接地址:https://www.777doc.com/doc-2542669 .html