1、职工信息管理系统#include #include #include #include #define N 100struct employee/职工基本情况 int num;/工号 int position;/职位1为董事长2为总经理3为副总经理等 char name8;/姓名 char sex2;/性别f为女m为男 int age;/年龄 int cult;/文化程度1为专家2为博士3为硕士4为学士5为其他 int salary;/工资 int state;/健康情况分为good,general,bademN;struct communication/职工通讯录 char name8; c
2、har officetel13; char hometel13; char handtel13; char address13;empcN;struct empsalary/职工工资与姓名的文件 char name8; int salary;empsN;void manage();void query();void communicate();void input();void display();void change();void del();void add();void count();int changeposition();int changecult();int changesa
3、lary();int changestate();void querysalary();void creat();void inputcommunicate();void querycommunicate();void changecommunicate();void changetel1();void changetel2();void changetel3(); char password7=123456;void main() int choice; char s7; int flag=0; int n=3; do printf(请你输入密码:n); scanf(%s,s); if(!s
4、trcmp(s,password)/若密码正确 printf(恭喜你成功登陆了nnn); flag=1; break; else printf(输入有错误请重新输入:n); n-; while(n0); if(!flag) printf(你的输入次数已到再见n); do printf(tttn); printf(tt欢迎进入职工管理系统中文版n); printf(制作人:某某t班级:计0803班t学号:303011608217n); printf(联系地址:某某经济学院n); printf(%n); printf(tt请你选择操作类型:n); printf(=tt=n); printf(tt1
5、进入管理系统n); printf(tt2进入查询系统n); printf(tt3进入通讯录n); printf(tt0退出系统n); printf(=tt=n); scanf(%d,&choice); switch(choice) case 1: manage(); break; case 2: query(); break; case 3: communicate(); break; case 0: printf(谢谢使用再见n); exit(0); default: printf(输入有错误请重新输入:n); return; while(1); void manage() int choi
6、cemanage; char choice=y; while(choice=y|choice=Y) printf(tt欢迎进入管理系统n); printf(=n); printf(tt请你选择操作类型:n); printf(tt1输入职工信息n); printf(tt2显示职工信息n); printf(tt3修改职工信息n); printf(tt4追加一个职工信息n); printf(tt5删除一个职工信息n); printf(tt6统计职工信息n); printf(tt0返回n); printf(=n); scanf(%d,&choicemanage); switch(choicemanag
7、e) case 1: input();/输入职工信息 break; case 2: display();/显示职工信息 break; case 3: change();/修改职工信息 break; case 4: add();/追加一个职工信息 break; case 5: del();/删除一个职工信息 break; case 6: count();/统计职工信息 break; case 0: printf(谢谢你的使用再见n); return; default: printf(你的输入有错请重新输入n); printf(是否继续管理?(y/n); scanf(%s,&choice); if
8、(toupper(choice)=N|(choice)=n) printf(输入完毕,任意键返回n); getch(); return; void input() FILE *fp; int i=0; char choiceinput=y; if(fp=fopen(employee.txt,w)=NULL) return; while(choiceinput=y|choiceinput=Y) i+; printf(第%d个职工n,i); printf(n); printf(请你输入工号:n);/输入工号 scanf(%d,&emi.num); printf(n); printf(请你输入职位:
9、n);/输入职位 printf(1为董事长2为总经理3为副总经理n); printf(4为经理5为副经理6为秘书n); printf(7为技术员8为领班9为员工n); scanf(%d,&emi.position); printf(n); printf(请你输入姓名:n);/输入姓名 scanf(%s,emi.name); printf(n); printf(请你输入性别以m为男f为女:n);/输入性别 scanf(%s,emi.sex); printf(n); printf(请你输入文化程度:n);/输入文化程度 printf(1为专家2为博士3为硕士4为学士5为其他n); scanf(%d
10、,&emi.cult); printf(n); printf(请你输入工资:n);/输入工资 scanf(%d,&emi.salary); printf(n); printf(请你输入身体情况:n);/身体情况 printf(1好2为一般3为差n); scanf(%d,&emi.state); printf(n); printf(是否继续输入?(y/n)n); scanf(%s,&choiceinput); fwrite(&emi,sizeof(struct employee),1,fp); if(toupper(choiceinput)=N) fclose(fp); printf(输入完毕,
11、任意键返回n); getch(); return; void display()/显示职工信息 FILE *fp; int i; if(fp=fopen(employee.txt,r)=NULL) return; printf(输出结果:n); printf(工号 职位 姓名 性别 文化程度 工资 身体情况n); for(i=0;fread(&emi,sizeof(struct employee),1,fp)!=0;i+) printf(工号%dn,emi.num); printf(职位为%dn,emi.position); printf(1为董事长2为总经理3为副总经理n); printf(
12、4为经理5为副经理6为秘书n); printf(7为技术员8为领班9为员工n); printf(姓名为%sn,emi.name); printf(性别为%sn,emi.sex); printf(其中m为男f为女n); printf(文化程度为%dn,emi.cult); printf(1为专家2为博士3为硕士4为学士5为其他n); printf(工资为%dn,emi.salary); printf(身体情况为%dn,emi.state); printf(1好2为一般3为差n); printf(完毕按任意键返回n); getch(); fclose(fp); return;void change
13、() FILE *fp; int i; char chname8; int choicechange; printf(请你输入要修改的人的姓名:n); scanf(%s,&chname); if(fp=fopen(employee.txt,w+)=NULL) printf(不能够打开这个文件n); return; for(i=0;iN;i+) if(strcmp(chname,emi.name)=0) printf(这是你要修改的人的信息n); printf(工号为%d职位为%d姓名为%s性别为%s文化程度为%d工资为%d身体为%dn,emi.num,emi.position,emi.name
14、,emi.sex,emi.cult,emi.salary,emi.state); printf(-n); printf(请你输入要修改的部分:n); printf(=n); printf(1修改职位n); printf(2修改文化程度n); printf(3修改工资n); printf(4修改身体情况n); printf(0退出系统n); printf(=n); printf(请选择n); scanf(%d,&choicechange); switch(choicechange) case 1: emi.position=changeposition(); break; case 2: emi
15、.cult=changecult(); break; case 3: emi.salary=changesalary(); break; case 4: emi.state=changestate(); break; case 0: return; default : printf(输入有错误); fwrite(&emi,sizeof(struct employee),1,fp); fclose(fp); printf(操作完成按任意键返回n); getch(); return;int changeposition() int newposition; printf(请你输入新职位:n); p
16、rintf(1为董事长2为总经理3为副总经理n); printf(4为经理5为副经理6为秘书n); printf(7为技术员8为领班9为员工n); scanf(%d,&newposition); return(newposition);int changecult() int newcult; printf(请你输入新的文凭:n); printf(1为专家2为博士3为硕士4为学士5为其他n); scanf(%d,&newcult); return(newcult);int changesalary() int newsalary; printf(请你输入新的工资:n); scanf(%d,&n
17、ewsalary); return(newsalary);int changestate() int newstate; printf(请你输入现在的身体情况:n); printf(1好2为一般3为差n); scanf(%d,&newstate); return(newstate);void add()/追加一个职工信息 struct employee emp; FILE *fp; int i=0; if(fp=fopen(employee.txt,ab+)=NULL) printf(不能够打开这个文件n); getch(); return; printf(请你输入新人的内容:n); prin
18、tf(请你输入工号:n);/输入工号 scanf(%d,&emp.num); printf(请你输入职位:n);/输入职位 printf(1为董事长2为总经理3为副总经理n); printf(4为经理5为副经理6为秘书n); printf(7为技术员8为领班9为员工n); scanf(%d,&emp.position); printf(请你输入姓名:n);/输入姓名 scanf(%s,emp.name); printf(请你输入性别以m为男f为女:n);/输入性别 scanf(%s,emp.sex); printf(请你输入文化程度:n);/输入文化程度 printf(1为专家2为博士3为硕士
19、4为学士5为其他n); scanf(%d,&emp.cult); printf(请你输入工资:n);/输入工资 scanf(%d,&emp.salary); printf(请你输入身体情况:n);/身体情况 printf(1好2为一般3为差n); scanf(%d,&emp.state); fwrite(&emp,sizeof(struct employee),1,fp); rewind(fp); printf(插入完毕,按任意键返回n); getch(); fclose(fp); return;void del()/删除一个职工信息 int i=0; char delname8; FILE
20、*fp; if(fp=fopen(employee.txt,w)=NULL) printf(文件为空,不能够打开n); printf(按任意键返回n); getch(); return; printf(请你输入要删除的人的姓名:n);/删除的职工的信息 scanf(%s,delname); for(i=0;fread(&emi,sizeof(struct employee),1,fp)!=0;i+) if(strcmp(emi.name,delname)!=0) fwrite(&emi,sizeof(struct employee),1,fp); fclose(fp); if(fp=fopen
21、(employee.txt,r)=NULL)/显示新的职工的信息 return; printf(新的职工的信息为:n); for(i=0;fread(&emi,sizeof(struct employee),1,fp)!=0;i+) printf(工号%d,emi.num); printf(职位为%d,emi.position); printf(1为董事长2为总经理3为副总经理n); printf(4为经理5为副经理6为秘书n); printf(7为技术员8为领班9为员工n); printf(姓名为%s,emi.name8); printf(性别为%s,emi.sex2); printf(其中
22、m为男f为女); printf(文化程度为%d,emi.cult); printf(1为专家2为博士3为硕士4为学士5为其他n); printf(工资为%d,emi.salary); printf(身体情况为%d,emi.state); printf(1好2为一般3为差n); fclose(fp); void count() FILE *fp; int i=0; int num=0;/总人数统计 int mnum=0,fnum=0;/性别人数统计 int expernum=0,doctornum=0,masternum=0,bechelornum=0,othernum=0;/学位人数统计 in
23、t dsznum=0,zglnum=0,fzglnum=0,glnum=0,fglnum=0;/职位人数统计 int mishunum=0,jsynum=0,lbnum=0,ygnum=0; if(fp=fopen(employee.txt,r)=NULL) printf(不能够打开这个文件n); printf(按任意键继续n); getch(); return; do fread(&emi,sizeof(struct employee),1,fp); if(feof(fp) break; num+; if(strcmp(emi.sex,m)=0) mnum+; if(strcmp(emi.s
24、ex,f)=0) fnum+; if(emi.cult=1) expernum+; if(emi.cult=2) doctornum+; if(emi.cult=3) masternum+; if(emi.cult=4) bechelornum+; if(emi.cult=5) othernum+; if(emi.position=1)/职位统计 dsznum+; if(emi.position=2) zglnum+; if(emi.position=3) fzglnum+; if(emi.position=4) glnum+; if(emi.position=5) fglnum+; if(e
25、mi.position=6) mishunum+; if(emi.position=7) jsynum+; if(emi.position=8) lbnum+; if(emi.position=9) ygnum+; i+; while(1); printf(总人数为%dn,num); printf(=性别分类=n); printf(男人数为%dn,mnum); printf(女人数为%dn,fnum); printf(=文凭分类=n); printf(专家数为%dn,expernum); printf(博士数为%dn,doctornum); printf(硕士数为%dn,masternum); printf(学士数为%dn,bechelornum); printf(其他的数为%dn,othernum); printf(=职位分类=n); printf(董事长数为%dn,dsznum); printf(总经理数为%dn,zglnum); printf(副总经理数为%d,fzglnum); printf(经理数为%d,glnum); printf(副经理数为%d,fglnum); printf(秘书数为%d,mishunum); printf
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1