1、学院:材料与化学学院专业:材料科学与工程 学号: 姓 名: 指导老师:/*头文件*/#include#include#include#include#define MAX 2000/*定义结构体*/struct staffchar num20; char type20; char name20; char sex10; int age; char time120; char time220; char pos20; char techpos20; char party20; char study30; staMAX;/*函数声明*/void Search();void modify();int
2、 load();void menu();void printf_all();/*系统登录界面*/void Interface() puts(n); /*版本信息*/ puts(tt*n); puts(tt 欢迎进入高校人员信息管理系统 n); puts(tt*n); puts(tt 制 作:chen chao n); puts(tt 学 号:20111003049 n); puts(tt 指导老师:zhao dan n); puts(tt 制作时间:2013-01-11 n);puts(tt 编译环境: VC+6.0 n);puts(tt 运行环境:Windows 2000以上 n); put
3、s(tt*n); puts(nttt请按任意键进入高校人员管理系统.n); getch(); menu();/*退出系统*/void Withdraw() system(cls);/*TurboC中用clrscr()清屏,VC中用system(cls)*/ puts(nn); /*版本信息*/ puts(tt*n); puts(tt 退出高校人员信息管理系统 n); puts(tt*n); puts(tt 制作:chen chao n); puts(tt 邮箱:645097223 n); puts(tt 电话:15002778629 n); puts(tt*n); puts(tt*谢谢您的使用
4、!*n); puts(nn); puts(请按任意键退出高校人员管理系统.); memset(&sta,0,sizeof(struct staff)*MAX);/*清空结构数组*/ getch(); exit(0); /*主函数*/int main()Interface();/*系统登录界面*/return 0;/*保存函数*/int save(int n) /*保存函数,保存n个记录*/FILE *fp;int i;if(fp=fopen(College.txt,w+)=NULL) /*以输出打开方式,在此前的记录被覆盖*/printf(n无法打开文件!n);return 0;for(i=0
5、;i=n;i+) if(stai.age!=0) /*stai.age=0表示此记录已删除*/ fprintf(fp,%-5s,stai.num); fprintf(fp,%-9s,stai.type); fprintf(fp,%-7s,stai.name); fprintf(fp,%-3s,stai.sex); fprintf(fp,%-3d,stai.age); fprintf(fp,%-3s,stai.time1); fprintf(fp,%-3s,stai.time2); fprintf(fp,%-5s,stai.pos); fprintf(fp,%-5s,stai.techpos);
6、 fprintf(fp,%-9s,stai.party); fprintf(fp,%-4s,stai.study); fprintf(fp,n); fclose(fp); puts(保存数据已完成!); puts(t请按任意键返回!.);getch();return 0;/*增加人员资料函数*/int Add() int n;printf(您需要添加多少名员工的信息:);scanf(%d,&n);int nage,i; char nnum10,ntype20,nname20,nsex10,ntime120,ntime220; char npos20,ntechpos20,nparty20,ns
7、tudy20;for(i=0;i12|c12|c1);doswitch(c) case 1:printf(请输入新编号:);scanf(%s,stai.num);break; case 2:printf(请输入新职工分类:);scanf(%s,stai.type);break; case 3:printf(请输入新姓名:);scanf(%s,stai.name);break; case 4:printf(请输入新性别:);scanf(%s,stai.sex);break; case 5:printf(请输入新年龄:);scanf(%d,&stai.age);break; case 6:prin
8、tf(请输入新工作时间:);scanf(%s,stai.time1);break; case 7:printf(请输入新来院时间:);scanf(%s,stai.time2);break; case 8:printf(请输入新职务:);scanf(%s,stai.pos);break; case 9:printf(请输入新职称:);scanf(%s,stai.techpos);break; case 10:printf(请输入新党派:);scanf(%s,stai.party);break; case 11:printf(请输入新学历:);scanf(%s,stai.study);break;
9、 case 12:menu();break; puts(n修改后的数据应为:n);printf_face();printf_one(i); printf(确认此次修改?nn);printf(t1).确认! 2).否,重新修改! 3).返回,不保存此次修改!n);printf(请选择: bb);scanf(%d,&w1);while(w1=2);return(w1);/*修改模块*/void modify() /*修改模块*/ struct staff s; int i,n,k,w0=1,w1,w2=0; n=load(); do k=-1; printf_all();/*给用户看全部记录以便确
10、认要修改的记录*/ do printf(nn请输入需要修改员工的编号:); scanf(%s,s.num); for(i=0;in;i+) if(strcmp(s.num,stai.num)=0) k=i; s=stai; if(k=-1) printf(nn该员工不存在!请重试!); while(k=-1); printf_face(); printf_one(k); w1=modify_data(k,n); if(w1=1) printf(n修改成功!nn 您需要修改另一条记录吗?nn); printf(t-1).是 -2).否,返回并保存!t bb); scanf(%d,&w0); w2
11、=1; else w0=0; if(w2=1) stak=s; if(w0!=1&w2=1) save(n); while(w0=1); menu();/*流览(全部)模块*/void printf_all()int t=0,i,n=load(); printf_face(); /*调用显示数据结构项目函数*/ memset(&sta,0,sizeof(struct staff)*MAX);/*清空结构数组*/ load(); for(i=0;i=n;i+)if(stai.age!=0)printf_one(i);/*调用显示一个记录的函数*/printf(n); t+;puts(*); pr
12、intf(t共有 %d 个人员的资料记录.n,t);void browse() /*流览(全部)模块*/ printf_all(); puts(按任意键返回菜单.n); getch(); /*按任意键*/ menu();/*按编号查找*/void find1()int i,n,k,w1=1,w2,w3;struct staff s;load();n=load();do k=-1;printf(nn 请输入您要查找人员的编号!);printf(n编号:); scanf(%s,s.num); /*输入要修改的数据的编号*/ printf_face(); /*调用显示数据结构项目函数*/ for(i
13、=0;in;i+)/*查找要修改的数据*/ if(strcmp(s.num,stai.num)=0) k=i; /*找到要修改的数据*/ printf_one(k); /*调用显示一个记录的函数*/w3=1; break; if(k=-1) printf(nn该员工不存在!请重试!); printf(nn继续查找?n);printf(t-1).确认 -2).修改 -3).返回主菜单); printf(请选择: bb); scanf(%d,&w2); switch(w2) case 1:Search();break; case 2:w3=modify_data(k,n);break; case
14、3:menu();break; if(w3=1) printf(nn 按编号查找成功!); printf(nn您需要进行哪项操作?n);printf(t-1).继续查找 -2).返回主菜单n); printf(请选择: bb); scanf(%d,&w2); while(w2=1); /*按姓名查找*/void find2() int i,n,k,w1=1,w2,w3;struct staff s;n=load();do k=-1;printf(nn请输入您要查找人员的姓名!);printf(n姓名:); scanf(%s,s.name); /*输入要修改的数据的学号*/ printf_fac
15、e(); /*调用显示数据结构项目函数*/ for(i=0;in;i+) /*查找要修改的数据*/ if(strcmp(s.name,stai.name)=0) k=i; /*找到要修改的数据*/ printf_one(k);/*调用显示一个记录的函数*/ w3=1; break; if(k=-1) printf(nn该员工不存在!请重试!); printf(nn继续查找?n);printf(t-1).确认 -2).修改 -3).返回主菜单); printf(请选择: bb); scanf(%d,&w2); switch(w2) case 1:Search();break; case 2:w3
16、=modify_data(k,n);break; case 3:menu();break; if(w3=1) printf(nn按姓名查找成功!); printf(nn您需要进行哪项操作?n);printf(t-1).继续查找 -2).返回主菜单n); printf(请选择: bb); scanf(%d,&w2); while(w2=1);/*查找模块*/void Search()int m;puts(请您选择查找方式:);puts(-1).按编号查找 -2).按姓名查找);printf(请选择操作 :bb);scanf(%d,&m);switch(m)case 1:find1();break
17、;case 2:find2();break;default :puts(ttt !警告!操作错误!); puts(ttt 按任意键返回查询人员信息菜单.n); getch(); system(cls);/*TurboC中用clrscr()清屏,VC中用system(cls)*/ Search();puts(请按任意键返回!);getch();system(cls);menu(); /*统计模块*/void Statistics() int i,xx,sz=0; int n=load(); puts(请您选择统计对象: ); puts(-1).在职人数行政人员,教师,一般员工); puts(-2
18、).党员人数中共党员); puts(-3).女工人数); puts(-4).高学历高职称人数博士,硕士,高级职称); printf(n请选择: bb); scanf(%d,&xx); printf_face(); switch(xx) case 1: for(i=0;in;i+) if(strcmp(stai.type,行政人员)=0|strcmp(stai.type,教师)=0|strcmp(stai.type,一般员工)=0) sz+; printf_one(i); printf(n); printf(-在职人数共:%d人,sz); ;break; case 2: for(i=0;in;i
19、+) if(strcmp(stai.party,中共党员)=0) sz+; printf_one(i); printf(n); printf(-中共党员人数共:%d人,sz); ;break; case 3: for(i=0;in;i+) if(strcmp(stai.sex,女)=0) sz+; printf_one(i); printf(n); printf(-女职工人数共:%d人,sz); ; break; case 4: for(i=0;in;i+) if(strcmp(stai.study,博士)=0|strcmp(stai.study,硕士)=0&strcmp(stai.techpos,高级)=0) sz+; printf_one(i); printf(n); printf(-高学历高职称人数共:%d人,sz); ;br