欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOCX文档下载  

    c语言课程设计之人事管理系统.docx

    • 资源ID:1893775       资源大小:665.96KB        全文页数:34页
    • 资源格式: DOCX        下载积分:16金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要16金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    c语言课程设计之人事管理系统.docx

    本科生C语言课程设计论文课程名称 C语言课程设计 教师姓名 朱莉 本科生姓名 李百蝉 本科生学号 20111002986 本科生专业 地质学 所在院系 地球科学学院 日 期: 20一三年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",&n);if(n<1|n>5)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",&n);if(n<1|n>2)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",&number); printf("输入添加人的信息:n");for(i=0;i<number;i+)printf("编号:n");scanf("%d",&wor_ti.num);printf("姓名:n");scanf("%s",wor_ti.name);printf("性别:n");scanf("%s",wor_ti.sex);printf("年龄:n");scanf("%d",&wor_ti.old);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",&wor_tixe_time); printf("在院工作时间:n");scanf("%d",&wor_ti.work_time);printf("在职与否:在职请按1,不在职请按2n");scanf("%d",&wor_ti.leibie);printf("您刚才输入的人的信息n");printf("%d %s %s %d %s %s %s %s %d %d %d n",wor_ti.num,wor_ti.name,wor_ti.sex,wor_ti.old,wor_ti.zhicheng,wor_ti.zhiwei,wor_ti.mianmao,wor_ti.xueli,wor_tixe_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;i<number;i+)fprintf(fp,"n%d %s %s %d %s %s %s %s %d %d %d",wor_ti.num,wor_ti.name,wor_ti.sex,wor_ti.old,wor_ti.zhicheng,wor_ti.zhiwei,wor_ti.mianmao,wor_ti.xueli,wor_tixe_time,wor_ti.work_time,wor_ti.leibie);fclose(fp);(2).删除模块该模块的功能是根据编号和姓名先查询出该人的信息,然后从原文件中删除该人的信息。流程图如下,开始输入要删除记录的编号和姓名该人存在与否?显示:该人在?删除原文件中该人的信息并且保存YN程序void shanchu()FILE *fp,*fp1;int i,number,k,j,m;struct worker worker1M,worker2M;int aN;char bN20;printf("您要删除的人的人数:n");scanf("%d",&number);for(i=0;i<number;i+)printf("输入删除人的信息的编号和姓名:n");printf("输入删除人的编号:n");scanf("%d",&ai);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",&worker2i.num,worker2i.name,worker2i.sex,&worker2i.old,worker2i.zhicheng,worker2i.zhiwei,worker2i.mianmao,worker2i.xueli,&worker2ixe_time,&worker2i.work_time,&worker2i.leibie);k=i;m=0;for(i=0;i<k;i+)for(j=0;j<number;j+)if(worker2i.num=aj|!strcmp(worker2i.name,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;i<m;i+) printf(" %d %s %s %d %s %s %s %s %d %d %dn",worker1i.num,worker1i.name,worker1i.sex,worker1i.old,worker1i.zhicheng,worker1i.zhiwei,worker1i.mianmao,worker1i.xueli,worker1ixe_time,worker1i.work_time,worker1i.leibie);fprintf(fp1," %d %s %s %d %s %s %s %s %d %d %dn",worker1i.num,worker1i.name,worker1i.sex,worker1i.old,worker1i.zhicheng,worker1i.zhiwei,worker1i.mianmao,worker1i.xueli,worker1ixe_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",&wor_people.num);printf("输入你想查询的人的姓名 n");scanf("%s",wor_people.name);if(fp=fopen("worker.txt","r")=0) 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 %d",&worker1i.num,worker1i.name,worker1i.sex,&worker1i.old,worker1i.zhicheng,worker1i.zhiwei,worker1i.mianmao,worker1i.xueli,&worker1ixe_time,&worker1i.work_time,&worker1i.leibie);k=i;m=-1;for(i=0;i<k;i+)if(wor_people.num=worker1i.num|!(strcmp(wor_people.name,worker1i.name)printf("%d %s %s %d %s %s %s %s %d %d %d",worker1i.num,worker1i.name,worker1i.sex,worker1i.old,worker1i.zhicheng,worker1i.zhiwei,worker1i.mianmao,worker1i.xueli,worker1ixe_time,worker1i.work_time,worker1i.leibie);m=i;fclose(fp);if(m=-1) printf("n这个人不存在?");exit(0);getch();printf("n你想重新编辑这个人的信息吗?n ");printf("如果你想,请按 1n如果不想请按 2n");scanf("%d",&n);if(n=1)printf("这个人的初始信息:n");printf("n%d %s %s %d %s %s %s %s %d %d %dn",worker1m.num,worker1m.name,worker1m.sex,worker1m.old,worker1m.zhicheng,worker1m.zhiwei,worker1m.mianmao,worker1m.xueli,worker1mxe_time,worker1m.work_time,worker1m.leibie);printf(" 输入新的信息n");printf("编号:n");scanf("%d",&worker1m.num);printf("姓名:n");scanf("%s",worker1m.name);printf("性别:n");scanf("%s",worker1m.sex);printf("年龄:n");scanf("%d",&worker1m.old);printf("职称:n");scanf("%s",worker1m.zhicheng);printf("职位:n");scanf("%s",worker1m.zhiwei);printf("政治面貌:n");scanf("%s",worker1m.mianmao);printf("学历:n");scanf("%s",worker1m.xueli);printf("来院时间:n");scanf("%d",&worker1mxe_time);printf("在院工作时间:n");scanf("%d",&worker1m.work_time);printf("在职与否:在职请按1,不在职请按2n");scanf("%d",&worker1i.leibie);printf("您刚才输入的人的信息n");printf("n%d %s %s %d %s %s %s %s %d %d %dn",worker1m.num,worker1m.name,worker1m.sex,worker1m.old,worker1m.zhicheng,worker1m.zhiwei,worker1m.mianmao,worker1m.xueli,worker1mxe_time,worker1m.work_time,worker1m.leibie);if(fp1=fopen("worker.txt","w")=0) printf("nCannot open filen");exit(0);for(i=0;i<k;i+)fprintf(fp1,"%d %s %s %d %s %s %s %s %d %d %dn",worker1i.num,worker1i.name,worker1i.sex,worker1i.old,worker1i.zhicheng,worker1i.zhiwei,worker1i.mianmao,worker1i.xueli,worker1ixe_time,worker1i.work_time,worker1i.leibie);fclose(fp1);3,根据各个参数进行统计:*统计在职人数*统计党员人数*统计女工人数*统计硕士以上学历和副教授以上职称人数*将统计得到的信息保存在worker3.txt文件中void stat() FILE *fp,*fp1;int w_num,d_num,wo_num,x_c_num,i,k;struct worker worker1M;puts("tt*统计人数菜单*nn");printf("tttt 各种人员的人数"); puts("nntt*n");if(fp=fopen("worker.txt","r")=0) printf("nCannot open filen");exit(0);for(i=0;!feof(fp);i+)fscanf(fp,"%d %s %s %d %s %s %s %s %d %d %d",&worker1i.num,worker1i.name,worker1i.sex,&worker1i.old,worker1i.zhicheng,worker1i.zhiwei,worker1i.mianmao,worker1i.xueli,&worker1ixe_time,&worker1i.work_time,&worker1i.leibie);k=i;fclose(fp);w_num=0,d_num=0,wo_num=0,x_c_num=0;printf("女职工人数n");for(i=0;i<k;i+)if(!(strcmp(worker1i.sex,"w") w_num+, printf("%d %s %s %d %s %s %s %s %d %d %dn",worker1i.num,worker1i.name,worker1i.sex,worker1i.old,worker1i.zhicheng,worker1i.zhiwei,worker1i.mianmao,worker1i.xueli,worker1ixe_time,worker1i.work_time,worker1i.leibie);printf("女职工人数有%d人n",w_num); printf("党员人数n"); for(i=0;i<k;i+) if(!(strcmp(worker1i.mianmao,"dang") d_num+, printf("%d %s %s %d %s %s %s %s %d %d %dn",worker1i.num,worker1i.name,worker1i.sex,worker1i.old,worker1i.zhicheng,worker1i.zhiwei,worker1i.mianmao,worker1i.xueli,worker1ixe_time,worker1i.work_time,worker1i.leibie);printf("党员人数有%d人n",d_num); printf("在职人员n");for(i=0;i<k;i+)if(worker1i.leibie=1) wo_num+, printf("%d %s %s %d %s %s %s %s %d %d %dn",worker1i.num,worker1i.name,worker1i.sex,worker1i.old,worker1i.zhicheng,worker1i.zhiwei,worker1i.mianmao,worker1i.xueli,worker1ixe_time,worker1i.work_time,worker1i.leibie);printf("在职人员有%d人n",wo_num); printf("高职称高学历人数n");for(i=0;i<k;i+) if(!(strcmp(worker1i.xueli,"doc") x_c_num+; printf("%d %s %s %d %s %s %s %s %d %d %dn",worker1i.num,worker1i.name,worker1i.sex,worker1i.old,worker1i.zhicheng,worker1i.zhiwei,worker1i.mianmao,worker1i.xueli,worker1ixe_time,worker1i.work_time,worker1i.leibie); continue;if(!(strcmp(worker1i.xueli,"mas") x_c_num+; printf("%d %s %s %d %s %s %s %s %d %d %dn",worker1i.num,worker1i.name,worker1i.sex,worker1i.old,worker1i.zhicheng,worker1i.zhiwei,worker1i.mianmao,worker1i.xueli,worker1ixe_time,worker1i.work_time,worker1i.leibie); continue;if(!(strcmp(worker1i.zhicheng,"Professor") x_c_num+; printf("%d %s %s %d %s %s %s %s %d %d %dn",worker1i.num,worker1i.name,worker1i.sex,worker1i.old,worker1i.zhicheng,worker1i.zhiwei,worker1i.mianmao,worker1i.xueli,worker1ixe_time,worker1i.work_time,worker1i.leibie); continue;if(!(strcmp(worker1i.zhicheng,"a_professor") x_c_num+; printf("%d %s %s %d %s %s %s %s %d %d %dn",worker1i.num,worker1i.name,worker1i.sex,worker1i.old,worker1i.zhicheng,worker1i.zhiwei,worker1i.mianmao,worker1i.xueli,worker1ixe_time,worker1i.work_time,worker1i.leibie); continue; printf("高职称高学历人数有%d人n",x_c_num);if(fp1=fopen("worker3.txt","w")=NULL) printf("nCannot open filen");exit(0);fprintf(fp1,"%d %d %d %d ",w_num,d_num,wo_num,x_c_num);fclose(fp1);4.排序模块:该模块有两个子模块构成,按年龄和来源时间对原文件里的信息进行排序并且将排序分别保存在old_row.txt和comingtime_row.txt中。开始选择你要进行排序的参数选择1就按年龄进行排序选择2就按来院时间进行排序显示按相应参数进行排序的结果并且分别保存在相应的 文件夹里void row() int n, w;doputs("tt*按年龄和来院时间排序*nn");puts("tttt 1.按年龄排序n"); puts("tttt 2.按来院时间排序n");puts("nntt*n");printf(" 选择数字后就可排序(1-2): bb");scanf("%d",&n);if(n<1|n>2)w=1;getchar();else w=0;while(w=1);switch(n)case 1:old_row();break;case 2:comingtime_row();break;(1).按年龄对人员进行排序:void old_row()FILE *fp,*fp1;struct worker wor_people ,worker1M;int i,j,k;if(fp=fopen("worker.txt","r")=NULL) printf("nCannot open filen");exit(0);for(i=0;!feof(fp);i+)fscanf(fp,"%d %s %s %d %s %s %s %s %d %d %dn",&worker1i.num,worker1i.name,worker1i.sex,&worker1i.old,worker1i.zhicheng,worker1i.zhiwei,worker1i.mianmao,worker1i.xueli,&worker1ixe_time,&worker1i.work_time,&worker1i.leibie);k=i;for(i=0;i<k;i+)for(j=i+1;j<k;j+)if(worker1i.old>worker1j.old)wor_people=worker1i;worker1i=worker1j;worker1j=wor_people;if(fp1=fopen("old_row.txt","w")=0) printf("nCannot open filen");for(i=0;i<k;i+)printf("%d %s %s %d %s %s %s %s %d %d %dn",worker1i.num,worker1i.name,worker1i.sex,worker1i.old,worker1i.zhicheng,worker1i.zhiwei,worker1i.mianmao,worker1i.xueli,worker1ixe_time,worker1i.work_time,worker1i.leibie); fprintf(fp1,"%d %s %s %d %s %s %s %s %d %d %dn",worker1i.num,worker1i.name,worker1i.sex,worker1i.old,worker1i.zhicheng,worker1i.zhiwei,worker1i.mianmao,worker1i.xueli,worker1ixe_time,worker1i.work_time,worker1i.leibie);fclose(fp1);(2).按来院时间对人员进行排序void comingtime_row()FILE *fp,*fp1;struct worker wor_people ,worker1M;int i,j,k;if(fp=fopen("worker.txt","r")=NULL) printf("nCannot open filen");exit(0);for(i=0;!feof(fp);i+)fscanf(fp,"%d %s %s %d %s %s %s %s %d %d %dn",&worker1i.num,worker1i.name,worker1i.sex,&worker1i.old,worker1i.zhicheng,worker1i.zhiwei,worker1i.mianmao,worker1i.xueli,&worker1ixe_time,&worker1i.work_time,&worker1i.leibie);k=i;for(i=0;i<k;i+)f

    注意事项

    本文(c语言课程设计之人事管理系统.docx)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开