1、 *统计女工人数 *统计硕士以上学历和副教授以上职称人数 *将统计得到的信息保存在worker3.txt文件中 4. 排序 *按年龄进行排序(1) *按来院时间进行排序(2)三 详细设计;1、 主函数:主函数设计的比较简单,只提供输入、处理和输出部分的函数调用。其中各功能模块用菜单方式选择。其流程图如下程序main() int n,w; do puts(tt*高校人事管理*nnn);tttt 1.添加或删除ntttt 2.查询与编辑ntttt 3.统计n) ;tttt 4.排序ntt*n printf(选择你要的服务(1-4): bb scanf(%d,&n); if(n4) w=1; get
2、char(); else w=0; while(w=1); switch(n) case 1:retify();break; case 2:sear_edit(); case 3:stat(); case 4:row();1.添加与删除模块,此模块有(1),(2)两个模块构成。void retify()tt*删除或添加人员的信息*nnnnntttt 1.添加tttt 2.删除请选择服务(1-2):2) case 1:tianjia(); case 2:shanchu();(1).添加功能:void tianjia() FILE *fp; int i,number; struct worker
3、wor_tN; printf(您要添加的人的人数: scanf(number);输入添加人的信息:n for(i=0;inumber;i+)编号:scanf(wor_ti.num);姓名:%s,wor_ti.name);性别:,wor_ti.sex);年龄:wor_ti.old);职称:,wor_ti.zhicheng);职位:,wor_ti.zhiwei);政治面貌:,wor_ti.mianmao);学历:,wor_ti.xueli);来院时间:wor_tie_time);在院工作时间:wor_ti.work_time);在职与否:在职请按1,不在职请按2nwor_ti.leibie);您刚
4、才输入的人的信息n%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_tie_time,wor_ti.work_time,wor_ti.leibie); if(fp=fopen(D:txtworker.txt,a+)=NULL) nCannot open filen exit(0);i+) fprintf(fp,n%d %s %s %d %s %s %s %s %d
5、 %d %d fclose(fp);(2).删除模块该模块的功能是根据编号和姓名先查询出该人的信息,然后从原文件中删除该人的信息。流程图如下,void shanchu() FILE *fp,*fp1; int i,number,k,j,m; struct worker worker1M,worker2M; int aN; char bN20;您要删除的人的人数:输入删除人的信息的编号和姓名:输入添加人的编号:ai);输入添加人的姓名:,bi);您刚才输入的人的信息的编号和姓名:%d %sn,ai,bi); if(fp=fopen(r getch(); exit(0);输出公司更改前所有人员的信
6、息:n编号 姓名 性别 年龄 职称 职位 面貌 学历 来院时间 工作时间 在职与否n!feof(fp); fscanf(fp,%d %s %s %d %s %s %s %s %d %d %dworker2i.num,worker2i.name,worker2i.sex,&worker2i.old,worker2i.zhicheng,worker2i.zhiwei,worker2i.mianmao,worker2i.xueli,&worker2ie_time,&worker2i.work_time,&worker2i.leibi); k=i; m=0;k; for(j=0;jj+) if(wor
7、ker2i.num!=aj&strcmp(worker2i.name,bj) worker1m=worker2i; m+; %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,worker2ie_time,worker2i.work_time,worker2i.leibie); if(k=m) printf(n这个人不存在?exit(0);ge
8、tch();输出公司更改后所有人员的信息: if(fp1=fopen(wm;%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,worker1ie_time,worker1i.work_time,worker1i.leibie);fprintf(fp1, fclose(fp1); getch();2,查询和编辑功能:首先,输入你要查询的人的编号和姓名,电脑将显示出
9、该人的信息,并提问你是否要对该人的信息重新进行编辑,若选择了重新编辑的选项就重新输入该人的信息,此时将显示该人的信息并且对原文件进行修改和保存。void sear_edit() struct worker wor_people ,worker1M; int i,k,m,n;你想查询谁?输入你想查询的人的编号和姓名 n输入你想查询的人的编号 nwor_people.num);输入你想查询的人的姓名 n,wor_people.name);)=0)for(i=0; for(i=0;worker1i.num,worker1i.name,worker1i.sex,&worker1i.old,worker
10、1i.zhicheng,worker1i.zhiwei,worker1i.mianmao,worker1i.xueli,&worker1ie_time,&worker1i.work_time,&worker1i.leibie); m=-1; if(wor_people.num=worker1i.num|!(strcmp(wor_people.name,worker1i.name) printf( m=i; if(m=-1) n你想重新编辑这个人的信息吗?n 如果你想,请按 1n如果不想请按 2n if(n=1)这个人的初始信息:n%d %s %s %d %s %s %s %s %d %d %d
11、n,worker1m.num,worker1m.name,worker1m.sex,worker1m.old,worker1m.zhicheng,worker1m.zhiwei,worker1m.mianmao,worker1m.xueli,worker1me_time,worker1m.work_time,worker1m.leibie); 输入新的信息nworker1m.num);,worker1m.name);,worker1m.sex);worker1m.old);,worker1m.zhicheng);,worker1m.zhiwei);,worker1m.mianmao);,wor
12、ker1m.xueli);worker1me_time);worker1m.work_time); if(fp1=fopen( k-1; fprintf(fp1,%d %s %s %d %s %s %s %s %d %d %dn fclose(fp1); if(n=2) exit(0);3,根据各个参数进行统计:*统计在职人数*统计党员人数*统计女工人数*统计硕士以上学历和副教授以上职称人数 *将统计得到的信息保存在worker3.txt文件中void stat() int w_num,d_num,wo_num,x_c_num,i,k; struct worker worker1M; puts
13、(tt*统计人数菜单*nntttt 各种人员的人数nntt*n w_num=0,d_num=0,wo_num=0,x_c_num=0; if(!(strcmp(worker1i.sex,) wo_num+;(strcmp(worker1i.mianmao,dang) d_num+; if(worker1i.leibie=1) w_num+;(strcmp(worker1i.xueli,doc) x_c_num+;mas(strcmp(worker1i.zhicheng,Professora_professor在职人员数目:%dn,wo_num);党员人数:,d_num);女职工人数: 高职称高学历人数:,x_c_num);txtworker3.txt fprintf(fp1,%d %d %d %d ,w_num,d_num,wo_num,x_c_num);4.排序模块:该模块有两个子模块构成,按年龄和来源时间对原文件里的信息进行排序并且将排序分别保存在old_row.txt和ingtime_row.txt中。void row() int n, w;tt*按年龄和来院时间排序*nntttt 1.按年龄排序ntttt 2.按来院时间排序nnntt*n)
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1