




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、一、课程设计目的通过本课程设计,强化上机动手能力,使学生在理论和实践的基础上进一 步巩固C语言程序设计课程学习的内容,掌握工程软件设计的基本方 学初将知识应用于实际的方法,提高分析和解决问题的能力,增加综合能 力。为后续各门计算机课程的学习打下坚实基础。为毕业设计和以后工作打下必要基础。二、课程设计内容针对某企业的员工,对其信息进行系统的管理。三、需求分析对所开发系统功能、性能的描述,想要实现的目标。此系统可对该厂员工进行信息的录入,修改,删除,添加,查询,排序, 统计,打印等功能。用户可通过提示选择进入某一功能界面,然后进行对 员工的信息管理。每一功能模块都充分为用户考虑,编排详细。使用户可
2、 以方便快捷的了解员工信息,及时有效的对员工进行信息的管理。四、概要设计1. 系统结构图(功能模块图)对系统进行分析,给出系统结构图;分析:此系统,为方便客户输入,以及使程序清晰化,因而本人釆用模 块法,将每一功能模块化,使程序中各函数间调用更加明了。以 下为系统模块图。2. 功能模块说明对各个模块进行功能的描述。录入模块:输入该厂现有员工信息并保存与文件中,方便日后进行排序, 更新,统计,打印等操作。输出模块:将所有员工信息,或所需员工信息输出于屏幕上,用于打印 或查询员丁彳言息、o更新模块:此模块文分为遍除,添加,修改三个模块。删除模块:对己退休或离开该厂的员工进行删除操作。 添加模块:添
3、加新入厂的员工信息并保存起来。修改模块:找到该员工并,选择所要修改的选项。排序模块:本程序只对员工年龄进行从小到大排序。 查询模块:此模块分为按姓名,年龄,工作查询。姓名查询模块:输入要查找的姓名,找到就输出其信息。找不到则 输出无此人。年龄查询模块:输入要查找的年龄,找到就输出其信息。找不到则 输出无此人。工作查询模块:输入要查找的工作,找到就输出其信息。找不到则输出无此人。统计模块:此模块分为,统计年龄,性别和工作。统计年龄:输入要统计的年龄,查找并输出,若无此年龄则输出暂 无此年龄员工。统计性别:输入要统计的性别,查找并输出,若无此性别则输出暂 无此性别员工。统计工作:输入要统计的工作,
4、查找并输出,若无此工作则输出暂无此 工作员工。保存模块:将现有信息保存于文件中,以防丢失。系统模块图五、详细设计及运行结果流程图,函数之间相互调用的图示,程序设计及编码,运行结果。 主函数:否妙击(A4士六、调试情况,设计技巧及体会1、对自己设计进行评价,指出合理和不足之处,提出改进的方案。自我评价:本人自我觉得此系统还不错,程序简洁明了,功能齐全,而 且充分从用户的角度进行编排,易于执行。经本人多次调试终于出现0 个错误与警告,而且从未有过死循环,用户一旦输错,立即会有提示, 此程序相当的健壮。因本人定义了全局变量,使操作更加简单易行,使用了结构体数组,避 开链表那样的复杂操作。但不足之处便
5、是没有链表那样节省内存。如有 机会下次可能会用链表。2、在设计过程中的感受。在把字符一个个敲上屏幕时,坐在那一动不动相当的枯燥,一想到过会 儿就能看到自己亲自编的程序,就只能忍吧。当看到模块一个个运行后 与预料中的完全一样时,郁闷的心情立马被一种成就感替代。就想赶紧 编完看看自己的杰作。然而也会遇到自己解决不了的问题,就只能去求 老师了。这次最大的感受就是当你竭尽全力的干一件事时,就没有能挡住你的困 难。七、参考文献C语言课本。八、附录:源代码ttincludeO ftincludeO/*文件名*/ttdefine MAX 100 char filename20;FILE *fp;int n;
6、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 ();printf Cnn请输入文件名n);scanffilename);p
7、rintf (开始输入员工的信息n);printf (,zn请输入现有员工人数n); scanf&n);if(fp=fopen(filename, w)二二NULL) printf C不能建立! n);exit ();for(i=0;in;i+) printf C第%d 个人的信息:n, i+1); printf (姓名n);scanfworker i. name);printf (年龄n);scanf&workeri. age);printf CT 作n);scanfworker i. job);printf C性别n);scanfworkeri. sex);printf (地址n);sca
8、nfworkeri. address);printf (电话n);scanfworker i. phone);printf C入厂年n);scanf,&workeri.;printf (入厂月 n);scanf(%d,&workeri.;printf (入厂 El n);scanf(%d,&workeri.;printf(录入完毕,按任意键返回主菜单n); getch();for(i=0;in;i+)fprintf(fp, %s %d %s %s %s %s %d-ddn, workeri. name, worke ri. age, workeri. job, workeri. sex, wo
9、rkeri. address, workeri. pho ne, workeri. , workeri. , workeri.;fclose (fp);/*输出模块*/void output () int i;if(fp=fopen(filename, r)二二NULL) printf(暂时未有任何信息,请按任意键返回主菜单进行信息录入);getch();exit ();clrscr ();printf C 该厂的员工信息:n);printf(姓名t年龄t工作t性别t地址t电话t入厂时间n0 ; for(i=0;in;i+) fscanf (fp, z,%s %d %s %s %s %swor
10、ker i. name,&worker i. age, workeri. job, workeri. sex, workeri. address, workeri.phone,&wo rkeri. , &workeri. , &workeri.;printf (z,%s t%dt%s t%st%st%st%d-%d-%dn, workeri. name, workeri. age, workeri. job, workeri. sex,worker i. address, workeri. phone, workeri. , workeri., workeri.;fclose (fp);pri
11、ntfC 输出完毕,按任意键返回主菜单n);getch();/*保存模块*/void save () int i;if (fp=fopen(filename, w)二二NULL)/*打开文件*/ printf (Xn不能打开该文件! );exit ();for(i=0;in;i+)fprintf (fp,,z%s %d %s %s %s %s %d-%d-%dn,/, worker i. name, worke ri. age, workeri. job, workeri. sex, workeri. address, workeri. pho ne, workeri. , workeri.
12、, workeri.;fclose(fp);/*读取信息*/void read_message() int i;printf(输入文件名n);scanffilename);printf (,zn请输入现有员工人数n);scanf&n);if(fp=fopen(filename, r)二二NULL) printf(暂时未有任何信息,请按任意键返回主菜单进行信息录入);getch();for(i=0;in;i+)f scanf (fp, %s %d %s %s %s %sworker i. name, &workeri. age,workeri. job, workeri. sex, worker
13、i. address, workeri. phone, &work er Li. , &worker Li. , &workeri.;fclose (fp);/*修改模块*/void modify () int i,flag,choice: char ch, namekey10;flag=0;clrscr ();printf(开始修改n);doprintf (请输入要修改的员工姓名n);scanfnamekey);for(i=0;in;i+) if (strcmp(workeri. name, namekey) =0) printfC是否修改此人(y/n)n);printf C姓名t年龄t工作
14、t性别t地址t电话t入厂时间nO ; printf (,z%s t%dt%s t%s t%s t%s t%d-%d%dn, worker i. name, worker i. age, worker i. job, worker i. sex, worker i. address, workeri. phone, workeri. , workeri. , workeri.;getchar () ;/*接收回车*/ch=getchar ();if (ch二二y) printf (,z*您要修改那一项*nrT);printf (“*1,姓名*nn);printf (“*2,年龄*nn);prin
15、tf (“*3,工作*nn);printf (“*4,性别*nn);printf (“*5,地址*nn);printf (”*6,电话*nn);printf (“*7,入丿年*nrT);printf (*& 入厂月 *nn);printf (“*9,入厂日 *nrT);printf C 请选择(1-9) W); scanf (z,%d,z, &choice);switch(choice) case 1: printf C输入修改后的姓名n);scanf (,z%sz,, worker ) ; break; case 2: printf (输入修改后的年龄n);scanf (z,%d
16、,z, &worke:ri age) ; break;case 3: printf C输入修改后的工作n);scanf (z,%sz,, worker i job) ; break; case 4: printf (输入修改后的性别n);scanf Cs, worker i sex) ; break;case 5: printf (输入修改后的地址n);scanfworker i address) ; break;case 6: printf C输入修改后的电话n);scanfworker i phone) ; break;case 7: printf (输入修改后的入丿年n);scanf&w
17、o:rkeri;break;case 8: printf (输入修改后的入厂月n);scanf (z/%dz,, &worker i;break;case 9: printf C输入修改后的入厂日n);scanf(“d, &workeri;break;printf C修改后的信息n);printf (,z姓名t年龄t工作t性别t地址t电话t入厂时间 n);printf (,z%s t%dt%s t%s t%s t%s t%d-%d%dn worker Li name, worker i age, worker i job, worker i sex, worker i address, wor
18、ker i phone, worker i,worker i,worker i;else break;else辻(i=n) printf (此人不存在n);printf (/zn 是否继续输入(y/n) nO ;getchar () ;/*接收回车*/ch=getchar ();if (ch二二y) printf C继续n);flag=l;else flag=O;while (flag=l);printf(,z修改完毕,按任意键返回主菜单n);getch();/*添加模块*/void add () int i, flag=0; char ch;clrscr ();printf (,zn开始添加
19、新员工n);printf (*nn);do i=n;printf (z/n请输入添加职工的信息(姓名,年龄,工作,性别,地址,电话,入厂时间);printf (姓名n);scanfworker i. name);printf (年龄n);scanf (”d, &workeri. age);printf CI 作 n);scanfworker i. job);printf (” 性别n);scanfworkeri. sex);printf (地址n);scanf(”s, workeri. address);printf C 电话n);scanf(” %s, workeri. phone);pri
20、ntf(入厂年n);scanf(%d,&workeri.;printf(入厂月 n);scanf(%d,&workeri.;printff 入厂日 n);scanf(%d,&workeri.;n+;printf (n添加成功!是否继续输入(y/n) n);getchar () ;/*接收回车*/ch=getchar ();if (ch二二y,) printff继续n); flag=l;else flag=0;while (flag=l);printff添加完毕,按任意键返回主菜单n);getch();/*删除模块*/void del () int i,flag; char ch, nameke
21、y10;flag=0;clrscr ();printff开始删除n);do printff请输入要删除员工的名字n);scanfnamekey);for(i=0;in;i+)if (strcmp(workeri. name, namekey) =0)/ * 查找此人*/ printfC是否删除此人(y/n)n);printff姓名t年龄t工作t性別t地址t电话t入厂时间printf (,/%st%dt%st%st%st%st%d-%d-%dnz,, worker Li name, worker i age, worker i job, worker i sex, worker i addres
22、s, worker i phone, worker i,worker i,worker i;getchar () ;/*接收回车*/ch=getchar ();if (ch二二y) for(:in;i+)workeri=worker L i+11;else break:elseif(i=n)printf C此人不存在n); printfCXn 是否继续输入(y/n) n,z); getchar () ;/*接收回车*/ch=getchar ();if (ch二二y) printf C继续n);flag=l;else flag=O;while (flag=l);printf(,z操作完毕,按任意
23、键返回主菜单n); getch();/*更新模块*/ void renew() int i; do*更新员工信息*nn); 按1,添加员工信息nn); 按2,删除员工信息nn); 按3,修改员工信息nn); 按0,返回主菜单n); 请选择(0-3) n): clrscr (); printf(nnn printf ( printf (” printf (“ printf ( printf (“scanf&i);switch (i) case 1: add() ; break; case 2: del(); break; case 3: modify(): break; case 0: brea
24、k;while(i!=0);save ();/*按姓名查找*/ void name_cha() int i, j; char namekey10;j 二0;clrscr ();printfC输入要查询的员工姓名);scanf (“s, namekey);for(i=0;in;i+)if (strcmp (worker name, namekey) =0)/* 查找此人*/ printf C员工信息n);printff姓名t年龄t工作t性别t地址t电话t入厂时间printf (/z%st%dt%st%st%st%st%d-%d%dn, worker Ei. name, worker i. age
25、, worker i. job, worker i. sex, worker i. address, workeri. phone, workeri. , workeri., workeri.;else j+;if(j=n)printf (/z此人不存在n);printf (z/按任意键返回主菜单n);getch();/*按年龄查找*/void age_cha () int i,j; int agekey;J=0;clrscr ();printf (z/输入要查询员工的年龄n);scanf&agekey);for(i=0;in;i+)if(workeri. age=agekey) printf
26、 C员工信息n);printf C姓名t年龄t工作t性别t地址t电话t入厂时间 n);printf(”%st%dt%st%st%st%st%d-%d-%dn, worker Ei. name, workeri. age, workeri. job, workeri. sex, worker i. address, workeri. phone, workeri. , workeri., workeri.;else j+;if (j=n)printf (/z此人不存在n);printf (z/按任意键返回主菜单n);getch();/*按工作查找*/void job_cha () int i,j
27、; char jobkey10_ ;j 二0;clrscr ();printf (输入要查询的员工职务n);scanfjobkey);for(i=0;in;i+)if(strcmp(workeri. job, jobkey)=0) printf (,z员工信息n);printf (姓名t年龄t工作t性别t地址t电话t入厂时间n);printf(”%st%dt%st%st%st%st%d-%d-%dn, workeri. name, workeri. age, workeri. job, workeri. sex, worker i. address, workeri. phone, worke
28、ri. , workeri. , workeri.;else j+;if (j=n)printf (/z此人不存在n);printf (z/按任意键返回主菜单n);getch();/*查询模块*/void inquire () int i;do clrscr ();printf (nnn*查询员工信息*nrT);printf (”*1,按姓名查询*nn);printf (”*2,按年龄查询*nn);printf (*3,按工作查询*nn);printf (”*0,返回主菜单n);printf C请选择(0-3) n/z);scanf&i);switch (i) case 1: name_cha
29、();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-l;i+)for(j=i+l;jworker j age) t二worker i;workeri=workerj;workerjj=t;printfr姓名t年龄t工作t性别t地址t电话t入厂时间for(i=0;in;i+)printf (,%st%dt%st%st%st%st%d%d-%dn,
30、 worker Li name, worker i age, worker i job, worker li sex, worker i address, worker i phone, worker i,worker i,worker i;printf (按任意键返回主菜单n); getch();/*按年龄统计*/void count_age() int i, j; int agekey;j 二0;clrscr ();printf (z/输入要统计员工的年龄n);scanf (,z%d,z, &agekey);for(i=0;in;i+)if (worker Li age二二agekey)
31、printf (z,员工信息n);printf C姓名t年龄t工作t性别t地址t电话t入厂时 间 n);printf (z,%st%dt%st%st%st%st%d-%d-%dnz,, worker Li name, worker i age, worker i job, worker i sex, worker i address, worker i phone, worker i,worker i,worker i;else j+;if (j=n)printf (z,暂无该年龄段员工n);printf(z/按任意键返回主菜单n); getch();/*按职务统计*/void count_j
32、ob () int i,j; char jobkey 10;j 二0;clrscr ();printf (输入要统计的员工职务n);scanfjobkey);for(i=0;in;i+)if (strcmp(workeri. job, jobkey)=0) printf(员工信息n);printf (“姓名t年龄t工作t性别t地址t电话t入厂时间printf (zz%s t%dt%s t%s t%s t%st%d-%d%dn, worker Ei. name, worker i. age, worker i. job, worker i. sex, worker i. address, wor
33、keri. phone, workeri. , workeri., workeri.;else j+;if (j=n)printf (z/暂无该职务或该职务暂时无人n);printf (z/按任意键返回主菜单n);getch();/*按性别统计*/void count_sex() int i,j; char sexkey10_;j 二0;clrscr ();printf (输入要统计的员工性别n);scanfsexkey);for(i=0;in;i+)if (strcnip(worke:r i. sex, sexkey) =0) printf C员工信息n);printf C姓名t年龄t工作t性别t地址t电话t入厂时间n);printf(”%st%dt%st%st%st%st%d-%d-%dn, workeri. name, workeri. age, workeri. job, workeri. sex, worker i. address, workeri. phone, workeri. , wor
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 冲刺2025年高考地理大题突破+限时集训(新高考)大题07工业(3大热点角度)(解析版)
- 2025年弃泡沫塑料再生装置合作协议书
- 2025企业借款合同范本(商业贷款)
- 2025年温室大棚租赁合同
- 2025年热力工程设备项目建议书
- 2025设备租赁终止合同模板
- 2025年血液体液诊断产品合作协议书
- 2025年钨板、棒、丝材项目合作计划书
- 2025年锌压延加工材项目建议书
- 2025年真空管太阳集热器项目建议书
- 员工职业晋升规划计划
- 第15课《青春之光》课件-2024-2025学年统编版语文七年级下册
- DB14-T 1737-2024 医疗护理员培训机构服务规范
- 尼康COOLPIXL120用户手册
- ICT测试设备简介
- 2024年中考模拟试卷生物(广东深圳卷)
- 精神类药物中毒护理查房
- 项目工期管理
- 【MOOC】英语语法与写作-暨南大学 中国大学慕课MOOC答案
- 2023年新高考天津卷历史高考真题(含答案)
- 部门发展规划
评论
0/150
提交评论