




已阅读5页,还剩29页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本 科 生 C 语 言 课 程 设 计 论 文课 程 名 称 C 语言课程设计 教 师 姓 名 朱莉 本科生姓名 李百蝉 本科生学号 20111002986 本科生专业 地质学 所 在 院 系 地球科学学院 日 期: 2013 年 12 月 26 日 目 录目 录 .21.课程论文题目 .32.程序设计思路 .33.功能模块图 .44.程序代码 .45.程序运行结果 .306.课程设计总结 .327.致谢 .328.参考文献 .32一 课程论文题目某高校主要人员有:在职人员(行政人员、教师、一般员工) 、退休人员和临时工。现在,需要存储这些人员的人事档案信息:编号、姓名、性别、年龄、职务、职称、政治面貌、最高学历、任职时间、来院时间、人员类别。其中,人员编号唯一,不能重复。(1) 添加删除功能:能根据学院人事的变动情况,添加删除记录;(2) 查询功能:能根据编号和姓名进行查询;(3) 编辑功能(高级):根据查询对相应的记录进行修改,并存储;(4) 统计功能:能根据多种参数进行人员的统计(在职人数、党员人数、女工人数、高学历高职称人数(硕士学位以上或者副教授以上) ) ,统计要求同时显示被统计者的信息;(5) 排序功能:按照年龄、来院时间进行排序;(6) 保存功能:能对输入的数据进行相应的存储;二 程序设计思路根据题目要求,人事信息是存放在文件中的,所以应该提供相应的文件的输入输出的功能,在程序中应该有添加删除,查询,编辑,统计,排序,保存等程序实现相应的操作,另外菜单式的选择方式选择程序的功能也是必须需的。另外程序中要求存储的模块,采用的方式均为将原文件中的所有数据读入内存,在内存中处理之后以覆盖的方式写入文件中重新储存,这样的方法容易理解、容易编写,但当文件中的数据量很大时,这种方法也存在一定的难度,在本程序中将 M 定为 2000,也即最多可储存的职工人数为 2000;根据以上需求分析,将程序分成以下几个模块:1.添加和删除*添加人员信息并保存(1)*按名称和编号查询与删除记录并保存(2)2.查询与编辑*按名称和编号查询*重新编辑信息并保存3. 统计*统计在职人数*统计党员人数*统计女工人数*统计硕士以上学历和副教授以上职称人数*将统计得到的信息保存在 worker3.txt 文件中4. 排序*按年龄进行排序(1)*按来院时间进行排序(2)三 功能模块图四 程序代码1、 主函数:主函数设计的比较简单,只提供输入、处理和输出部分的函数调用。其中各功能模块用菜单方式选择。其流程图如下程序开始显示一系列功能根据 n 的值调用个功能模块函数结束输入 n,判断是否是04NYmain()int n,w;doputs(“tt*高校人事管理*nnn“);puts(“tttt 1.添加或删除n“); puts(“tttt 2.查询与编辑n“);puts(“tttt 3.统计n“);puts(“tttt 4.排序n“);puts(“tttt 5.退出n“);puts(“tt*n“);printf(“选择你要的服务(1-5): bb“);scanf(“%d“,if(n5)w=1;getchar();else w=0;while(w=1);switch(n)case 1:retify();main();break;case 2:sear_edit();main();break;case 3:stat();main();break;case 4:row();main();break;case 5:exit(0);break;struct workerint num;char name20;char sex10;int old;char zhicheng20;char zhiwei20;char mianmao20;char xueli20;int come_time;int work_time;int leibie;worN;1.添加与删除模块,此模块有(1) , (2)两个模块构成。void retify()int n,w;doputs(“tt*删除或添加人员的信息*nnnnn“);puts(“tttt 1.添加“); puts(“tttt 2.删除“);printf(“请选择服务(1-2): bb“);scanf(“%d“,if(n2)w=1;getchar();else w=0;while(w=1);switch(n)case 1:tianjia();break;case 2:shanchu();break;(1).添加模块:开始输入你要添加人的信息并且显示在屏幕中对原文件进行添加并保存void tianjia()FILE *fp;int i,number;struct worker wor_tN;printf(“您要添加的人的人数:“);scanf(“%d“,printf(“输入添加人的信息:n“);for(i=0;inumber;i+)printf(“编号:n“);scanf(“%d“,printf(“姓名:n“); scanf(“%s“,wor_);printf(“性别:n“);scanf(“%s“,wor_ti.sex);printf(“年龄:n“);scanf(“%d“,printf(“职称:n“);scanf(“%s“,wor_ti.zhicheng);printf(“职位:n“);scanf(“%s“,wor_ti.zhiwei);printf(“政治面貌:n“);scanf(“%s“,wor_ti.mianmao);printf(“学历:n“);scanf(“%s“,wor_ti.xueli);printf(“来院时间:n“);scanf(“%d“,printf(“在院工作时间:n“);scanf(“%d“,printf(“在职与否:在职请按 1,不在职请按 2n“);scanf(“%d“,printf(“您刚才输入的人的信息n“);printf(“%d %s %s %d %s %s %s %s %d %d %d n“,wor_ti.num,wor_,wor_ti.sex,wor_ti.old,wor_ti.zhicheng,wor_ti.zhiwei,wor_ti.mianmao,wor_ti.xueli,wor_e_time,wor_ti.work_time,wor_ti.leibie);if(fp=fopen(“D:txtworker.txt“,“a+“)=NULL) printf(“nCannot open filen“); exit(0);for(i=0;inumber;i+)fprintf(fp,“n%d %s %s %d %s %s %s %s %d %d %d“,wor_ti.num,wor_,wor_ti.sex,wor_ti.old,wor_ti.zhicheng,wor_ti.zhiwei,wor_ti.mianmao,wor_ti.xueli,wor_e_time,wor_ti.work_time,wor_ti.leibie);fclose(fp);(2).删除模块该模块的功能是根据编号和姓名先查询出该人的信息,然后从原文件中删除该人的信息。流程图如下,开始输入要删除记录的编号和姓名该人存在与否?显示:该人在?删除原文件中该人的信息并且保存Y N程序void shanchu()FILE *fp,*fp1;int i,number,k,j,m;struct worker worker1M,worker2M;int aN;char bN20;printf(“您要删除的人的人数:n“);scanf(“%d“,for(i=0;inumber;i+)printf(“输入删除人的信息的编号和姓名:n“);printf(“输入删除人的编号:n“);scanf(“%d“,printf(“输入删除人的姓名:n“);scanf(“%s“,bi);printf(“您刚才输入的人的信息的编号和姓名:n“);printf(“%d %sn“,ai,bi);if(fp=fopen(“worker.txt“,“r“)=NULL) printf(“nCannot open filen“);getch();exit(0);for(i=0;!feof(fp);i+)fscanf(fp,“%d %s %s %d %s %s %s %s %d %d %dn“,k=i;m=0;for(i=0;ik;i+)for(j=0;jnumber;j+)if(worker2i.num=aj|!strcmp(,bj)break; if(j=number)worker1m=worker2i,m+;printf(“输出公司更改后所有人员的信息:n 编号 姓名 性别 年龄 职称 职位 面貌 学历 来院时间 工作时间 在职与否n“);if(fp1=fopen(“worker.txt“,“w“)=NULL) printf(“nCannot open filen“);getch();exit(0);for(i=0;im;i+) printf(“ %d %s %s %d %s %s %s %s %d %d %dn“,worker1i.num,,worker1i.sex,worker1i.old,worker1i.zhicheng,worker1i.zhiwei,worker1i.mianmao,worker1i.xueli,e_time,worker1i.work_time,worker1i.leibie);fprintf(fp1,“ %d %s %s %d %s %s %s %s %d %d %dn“,worker1i.num,,worker1i.sex,worker1i.old,worker1i.zhicheng,worker1i.zhiwei,worker1i.mianmao,worker1i.xueli,e_time,worker1i.work_time,worker1i.leibie);fclose(fp1);getch();2,查询和编辑功能:首先,输入你要查询的人的编号和姓名,电脑将显示出该人的信息,并提问你是否要对该人的信息重新进行编辑,若选择了重新编辑的选项就重新输入该人的信息,此时将显示该人的信息并且对原文件进行修改和保存。开始输入你要查询人的编号和姓名显示该人的信息是否重新编辑该信息?该人是否存在?显示该人不存在重新输入该人的信息显示你刚才输入的信息,并且保存到原文件里void sear_edit()FILE *fp,*fp1;struct worker wor_people ,worker1M;int i,k,m,n;printf(“你想查询谁?n“);printf(“输入你想查询的人的编号和姓名 n“);printf(“输入你想查询的人的编号 n“);scanf(“%d“,printf(“输入你想查询的人的姓名 n“);scanf(“%s“,wor_);if(fp=fopen(“worker.txt“,“r“)=0) printf(“nCannot open
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年事业单位工勤技能-湖南-湖南保安员四级(中级工)历年参考题库典型考点含答案解析
- 城市轨道交通建设规划与新型运营管理技术应用研究报告2025
- 2025年事业单位工勤技能-湖北-湖北农机驾驶维修工一级(高级技师)历年参考题库典型考点含答案解析
- 2025年事业单位工勤技能-湖北-湖北中式面点师一级(高级技师)历年参考题库含答案解析
- 2025年事业单位工勤技能-海南-海南热力运行工三级(高级工)历年参考题库含答案解析
- 2025年事业单位工勤技能-河南-河南水工监测工五级(初级工)历年参考题库典型考点含答案解析
- 2025年事业单位工勤技能-河南-河南中式面点师五级(初级工)历年参考题库典型考点含答案解析
- 2025年事业单位工勤技能-江西-江西食品检验工一级(高级技师)历年参考题库含答案解析(5套)
- 2025年事业单位工勤技能-江苏-江苏工程测量工二级(技师)历年参考题库含答案解析(5套)
- 2025年事业单位工勤技能-江苏-江苏保健按摩师五级(初级工)历年参考题库含答案解析
- 派出所签订治安调解协议书范文
- 《冠心病病人的护理》课件
- 牧场物语-矿石镇的伙伴们-完全攻略
- 中建三局社招在线测评题
- 2024年甲醇合成及精馏操作理论试题题库
- 外科学-第三十六章-阑尾疾病
- 旅游规划行业旅游目的地规划方案
- A特种设备安全管理考试题库及答案
- TCNPA - 景区玻璃栈道建设规范
- 股权估值协议书模板
- 顺丰快递合同
评论
0/150
提交评论