人事管理系统C语言完整源代码_第1页
人事管理系统C语言完整源代码_第2页
人事管理系统C语言完整源代码_第3页
人事管理系统C语言完整源代码_第4页
人事管理系统C语言完整源代码_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

学院:材料与化学学院专业:材料科学与工程学号:姓名:指导老师:

/**************头文件****************************************/#include<stdio.h>#include<conio.h>#include<stdlib.h>#include<string.h>#defineMAX2000/**************定义结构体************************************/structstaff{ charnum[20];chartype[20];charname[20];charsex[10];intage;chartime1[20];chartime2[20];charpos[20];chartechpos[20];charparty[20];charstudy[30];}sta[MAX];/**************函数声明*****************************************/voidSearch();voidmodify();intload();voidmenu();voidprintf_all();/**************系统登录界面*************************************/voidInterface(){ puts("\n");/*版本信息*/puts("\t\t****************************************************\n");puts("\t\t欢迎进入高校人员信息管理系统\n");puts("\t\t****************************************************\n");puts("\t\t制作:chenchao\n");puts("\t\t学号:20111003049\n");puts("\t\t指导老师:zhaodan\n");puts("\t\t制作时间:2013-01-11\n"); puts("\t\t编译环境:VC++6.0\n"); puts("\t\t运行环境:Windows2000以上\n");puts("\t\t****************************************************\n");puts("\n\t\t\t请按任意键进入高校人员管理系统....\n");getch();menu();}/****************退出系统**************************************/voidWithdraw(){system("cls");/*TurboC中用clrscr()清屏,VC中用system(cls)*/puts("\n\n");/*版本信息*/puts("\t\t****************************************************\n");puts("\t\t退出高校人员信息管理系统\n");puts("\t\t****************************************************\n");puts("\t\t制作:chenchao\n");puts("\t\t邮箱:645097223@\n");puts("\t\t电话n");puts("\t\t****************************************************\n");puts("\t\t*******************谢谢您的使用!********************\n");puts("\n\n");puts("请按任意键退出高校人员管理系统....");memset(&sta,0,sizeof(structstaff)*MAX);/*清空结构数组*/getch();exit(0); }/***************主函数******************************************/intmain(){ Interface();/*系统登录界面*/ return0;}/******************保存函数*************************************/intsave(intn)/*保存函数,保存n个记录*/{ FILE*fp; inti; if((fp=fopen("College.txt","w+"))==NULL)/*以输出打开方式,在此前的记录被覆盖 */ { printf("\n无法打开文件!\n"); return0; } for(i=0;i<=n;i++) if(sta[i].age!=0)/*sta[i].age=0表示此记录已删除*/ { fprintf(fp,"%-5s",sta[i].num);fprintf(fp,"%-9s",sta[i].type);fprintf(fp,"%-7s",sta[i].name);fprintf(fp,"%-3s",sta[i].sex);fprintf(fp,"%-3d",sta[i].age);fprintf(fp,"%-3s",sta[i].time1);fprintf(fp,"%-3s",sta[i].time2);fprintf(fp,"%-5s",sta[i].pos);fprintf(fp,"%-5s",sta[i].techpos);fprintf(fp,"%-9s",sta[i].party);fprintf(fp,"%-4s",sta[i].study); fprintf(fp,"\n"); }fclose(fp);puts("保存数据已完成!"); puts("\t请按任意键返回!......"); getch(); return0;}/****************增加人员资料函数*************************************/intAdd(){ intn; printf("您需要添加多少名员工的信息:"); scanf("%d",&n); intnage,i;charnnum[10],ntype[20],nname[20],nsex[10],ntime1[20],ntime2[20];charnpos[20],ntechpos[20],nparty[20],nstudy[20]; for(i=0;i<n;i++) { system("cls");/*TurboC中用clrscr()清屏,VC中用system(cls)*/printf("这是您输入的第%d个员工!\n",i+1); printf("请为该员工编号:");scanf("%s",nnum);printf("请输入编号为%s的员工的其它信息!\n",nnum);printf("输入类别[行政人员,教师,一般员工,退休人员,返聘人员,临时工]:\n");scanf("%s",ntype);printf("输入姓名:\n");scanf("%s",nname);printf("输入性别:\n");scanf("%s",nsex);printf("输入年龄:\n");scanf("%d",&nage);printf("参加工作时间:\n");scanf("%s",ntime1);printf("输入来院时间:\n");scanf("%s",ntime2);printf("输入职务[无,科级,处级,地级]:\n");scanf("%s",npos);printf("输入职称[无,初级,中级,高级]:\n");scanf("%s",ntechpos);printf("输入加入党派[群众,中共党员,国民党,其他党派]:\n");scanf("%s",nparty);printf("输入学历[小学,初中,中专,高中,大专,大学,硕士,博士]:\n");scanf("%s",nstudy); strcpy(sta[i].num,nnum);strcpy(sta[i].type,ntype);strcpy(sta[i].name,nname);strcpy(sta[i].sex,nsex); sta[i].age=nage;strcpy(sta[i].time1,ntime1);strcpy(sta[i].time2,ntime2);strcpy(sta[i].pos,npos);strcpy(sta[i].techpos,ntechpos);strcpy(sta[i].party,nparty);strcpy(sta[i].study,nstudy); }save(n);/*system("cls");*/ returnn; }/******************加载函数***************************************/intload()/*加载记录或可以记录个数的函数*/{ FILE*fp; inti; /*以输出打开方式,在此前的记录被覆盖 */ if((fp=fopen("College.txt","r"))==NULL) { printf("\n无法识别文件College.txt\n"); return0; } for(i=0;!feof(fp);i++) { fscanf(fp,"%s",sta[i].num);fscanf(fp,"%s",sta[i].type);fscanf(fp,"%s",sta[i].name);fscanf(fp,"%s",sta[i].sex);fscanf(fp,"%d",&sta[i].age);fscanf(fp,"%s",sta[i].time1);fscanf(fp,"%s",sta[i].time2);fscanf(fp,"%s",sta[i].pos);fscanf(fp,"%s",sta[i].techpos);fscanf(fp,"%s",sta[i].party);fscanf(fp,"%s",sta[i].study);}fclose(fp);return(i);/*返回记录个数*/ printf("载入数据已完成!"); printf("请按任意键返回!"); save(i); getch(); menu();} /******************显示数据结构项目函数***************************/voidprintf_face()/*显示数据结构项目*/{puts("*************************************************************************"); puts("编号员工类别姓名性别年龄工作时间来院时间职务职称政治背景学历"); puts("*************************************************************************");} /******************显示一个记录的函数****************************/voidprintf_one(inti)/*显示一个记录的函数*/{ printf("%-5s%-9s%-7s%-5s%-5d%-9s%-9s%-5s%-5s%-9s%-4s",sta[i].num,sta[i].type,sta[i].name,sta[i].sex,sta[i].age,sta[i].time1,sta[i].time2,sta[i].pos,sta[i].techpos,sta[i].party,sta[i].study); } /******************修改整条记录函数*******************************/intmodify_data(inti,intn)/*修改数据函数,修改第i个记录*/{ intc,w1; do { puts("\n请选择修改类型:\n\n"); printf("1).编号2).职工分类3).姓名");printf("4).性别5).年龄6).工作时间"); printf("7).来院时间8).职务9).职称"); printf("10).党派11).学历12).取消并返回"); printf("您需要修改哪条记录?:[]\b\b"); scanf("%d",&c); if(c>12||c<1) { puts("操作错误!请重试!"); getchar(); } }while(c>12||c<1); do { switch(c) { case1:printf("请输入'新'编号:");scanf("%s",sta[i].num); break; case2:printf("请输入'新'职工分类:");scanf("%s",sta[i].type); break; case3:printf("请输入'新'姓名:");scanf("%s",sta[i].name); break; case4:printf("请输入'新'性别:");scanf("%s",sta[i].sex); break; case5:printf("请输入'新'年龄:");scanf("%d",&sta[i].age); break; case6:printf("请输入'新'工作时间:");scanf("%s",sta[i].time1); break;case7:printf("请输入'新'来院时间:");scanf("%s",sta[i].time2); break;case8:printf("请输入'新'职务:");scanf("%s",sta[i].pos); break;case9:printf("请输入'新'职称:");scanf("%s",sta[i].techpos); break;case10:printf("请输入'新'党派:");scanf("%s",sta[i].party); break;case11:printf("请输入'新'学历:");scanf("%s",sta[i].study); break; case12:menu(); break; } puts("\n修改后的数据应为:\n"); printf_face(); printf_one(i); printf("确认此次修改?\n\n"); printf("\t1).确认!2).否,重新修改!3).返回,不保存此次修改!\n"); printf("请选择:[]\b\b"); scanf("%d",&w1); }while(w1==2); return(w1);} /**********************修改模块***********************************/voidmodify()/*修改模块*/{structstaffs;inti,n,k,w0=1,w1,w2=0;n=load();do{k=-1;printf_all();/*给用户看全部记录以便确认要修改的记录*/do{printf("\n\n请输入需要修改员工的编号:");scanf("%s",s.num);for(i=0;i<n;i++)if(strcmp(s.num,sta[i].num)==0){k=i;s=sta[i];}if(k==-1)printf("\n\n该员工不存在!请重试!");}while(k==-1);printf_face();printf_one(k);w1=modify_data(k,n);if(w1==1){printf("\n修改成功!\n\n您需要修改另一条记录吗?\n\n");printf("\t----1).是----2).否,返回并保存!\t[]\b\b");scanf("%d",&w0);w2=1;}else{w0=0;if(w2==1)sta[k]=s;}if(w0!=1&&w2==1)save(n);}while(w0==1);menu();}/**********************流览(全部)模块*****************************/voidprintf_all(){ intt=0,i,n=load();printf_face();/*调用显示数据结构项目函数*/memset(&sta,0,sizeof(structstaff)*MAX);/*清空结构数组*/load(); for(i=0;i<=n;i++) { if(sta[i].age!=0) { printf_one(i);/*调用显示一个记录的函数*/ printf("\n"); t++; } } puts("*************************************************************************");printf("\t共有%d个人员的资料记录.\n",t);}voidbrowse()/*流览(全部)模块*/{printf_all();puts("按任意键返回菜单.............\n");getch();/*按任意键*/menu();}/***********************按编号查找**********************************/voidfind1(){ inti,n,k,w1=1,w2,w3; structstaffs; load(); n=load(); do { k=-1; printf("\n\n请输入您要查找人员的编号!"); printf("\n编号:"); scanf("%s",s.num);/*输入要修改的数据的编号*/ printf_face();/*调用显示数据结构项目函数*/ for(i=0;i<n;i++)/*查找要修改的数据*/ if(strcmp(s.num,sta[i].num)==0) { k=i;/*找到要修改的数据*/ printf_one(k);/*调用显示一个记录的函数*/w3=1; break; } if(k==-1){ printf("\n\n该员工不存在!请重试!"); printf("\n\n继续查找?\n"); printf("\t---1).确认---2).修改---3).返回主菜单");printf("请选择:[]\b\b");scanf("%d",&w2);switch(w2){case1:Search();break;case2:w3=modify_data(k,n);break;case3:menu();break;}}if(w3==1){ printf("\n\n按编号查找成功!");printf("\n\n您需要进行哪项操作?\n"); printf("\t----1).继续查找----2).返回主菜单\n"); printf("请选择:[]\b\b");scanf("%d",&w2);} }while(w2==1);} /***********************按姓名查找**********************************/voidfind2(){ inti,n,k,w1=1,w2,w3; structstaffs; n=load(); do { k=-1; printf("\n\n请输入您要查找人员的姓名!"); printf("\n姓名:"); scanf("%s",);/*输入要修改的数据的学号*/ printf_face();/*调用显示数据结构项目函数*/ for(i=0;i<n;i++)/*查找要修改的数据*/ if(strcmp(,sta[i].name)==0) { k=i;/*找到要修改的数据*/ printf_one(k);/*调用显示一个记录的函数*/ w3=1; break; } if(k==-1){ printf("\n\n该员工不存在!请重试!"); printf("\n\n继续查找?\n"); printf("\t---1).确认---2).修改---3).返回主菜单");printf("请选择:[]\b\b");scanf("%d",&w2);switch(w2){case1:Search();break;case2:w3=modify_data(k,n);break;case3:menu();break;}}if(w3==1){printf("\n\n按姓名查找成功!");printf("\n\n您需要进行哪项操作?\n"); printf("\t---1).继续查找---2).返回主菜单\n"); printf("请选择:[]\b\b");scanf("%d",&w2);} }while(w2==1);} /***********************查找模块***********************************/voidSearch(){ intm; puts("请您选择查找方式:"); puts("----1).按编号查找----2).按姓名查找"); printf("请选择操作[]:\b\b"); scanf("%d",&m); switch(m) { case1:find1();break; case2:find2();break; default:{puts("\t\t\t!警告!操作错误!");puts("\t\t\t按任意键返回查询人员信息菜单...\n");getch(); system("cls");/*TurboC中用clrscr()清屏,VC中用system(cls)*/ Search();} } puts("请按任意键返回!"); getch(); system("cls"); menu();}/***********************统计模块***********************************/voidStatistics(){inti,xx,sz=0;intn=load();puts("请您选择统计对象:");puts("----1).在职人数[行政人员,教师,一般员工]");puts("----2).党员人数[中共党员]");puts("----3).女工人数");puts("----4).高学历高职称人数[博士,硕士,高级职称]");printf("\n请选择:[]\b\b");scanf("%d",&xx);printf_face();switch(xx){case1:{for(i=0;i<n;i++)if(strcmp(sta[i].type,"行政人员")==0||strcmp(sta[i].type,"教师")==0||strcmp(sta[i].type,"一般员工")==0){sz++;printf_one(i);printf("\n");}printf("----在职人数共:%d人",sz); };break;case2:{for(i=0;i<n;i++)if(strcmp(sta[i].party,"中共党员")==0){sz++;printf_one(i);printf("\n");}printf("----中共党员人数共:%d人",sz); };break;case3:{for(i=0;i<n;i++)if(strcmp(sta[i].sex,"女")==0){sz++;printf_one(i);printf("\n");}printf("----女职工人数共:%d人",sz); };break;case4:{for(i=0;i<n;i++)if(strcmp(sta[i].study,"博士")==0||strcmp(sta[i].study,"硕士")==0&&strcmp(sta[i].techpos,"高级")==0){sz++;printf_one(i);printf("\n");}printf("----高学历高职称人数共:%d人",sz);};break;}puts("\n*************************************************************************");printf("----统计结果:%d",sz);printf("\n请按任意键返回!");getch();menu();} /***********************删除模块**********************************/voiddelete_data()/*删除数据函数*/{ inti=0,w1,k=-1,n,m,l; charp[10];chars[10];n=load();/*加载数据函数*/ printf_all();/*显示数据函数*/ puts("请您选择删除方式!\n"); do { puts("----1).通过编号删除?\t----2).通过姓名删除?");printf("请选择:[]\b\b"); scanf("%d",&w1); }while(w1<1||w1>2); if(w1==2) { printf("\n请输入姓名:"); scanf("%s",s);for(i=0;i<n;i++) { if(strcmp(s,sta[i].name)==0) { k=i;printf_face(); printf_one(k);/*显示单个数据函数*/ puts("\n确认删除该数据?");puts("\t----1).是\t----2).否");printf("请选择:[]\b\b"); scanf("%d",&m); if(m==1) { sta[i].age=0;/*如果年龄为0就不保存,即删除*/ save(n); load(); puts("\n删除数据成功!......\n"); } elsemenu(); } }if(k==-1) { printf("该员工不存在或已被删除!\n"); getch(); menu(); } } k=0; if(w1==1) { printf("请输入编号:"); scanf("%s",p); for(i=0;i<n;i++) { if(strcmp(p,sta[i].num)==0) { k=i; printf_face(); printf_one(k);puts("\n确认删除该数据?");puts("\t----1).是\t----2).否");printf("请选择:[]\b\b"); scanf("%d",&l); if(l==1) { sta[k].age=0; save(n); load(); puts("\n删除数据成功!\n"); } elsemenu(); } } if(k==-1) { printf("\n该员工不存在或已被删除!\n"); getch(); menu(); } }}/**********************交换函数**********************************/voidexchage_1(inti,structstaffs){ strcpy(s.num,sta[i].num);strcpy(s.type,sta[i].type);strcpy(,sta[i].name);strcpy(s.sex,sta[i].sex); s.age=sta[i].age;strcpy(s.time1,sta[i].time1);strcpy(s.time2,sta[i].time2);strcpy(s.pos,sta[i].pos);strcpy(s.techpos,sta[i].techpos);strcpy(s.party,sta[i].party);strcpy(s.study,sta[i].study);}voidexchage_2(inti,intj){ strcpy(sta[i].num,sta[j].num);strcpy(sta[i].type,sta[j].type);strcpy(sta[i].name,sta[j].name);strcpy(sta[i].sex,sta[j].sex); sta[i].age=sta[j].age;strcpy(sta[i].time1,sta[j].time1);strcpy(sta[i].time2,sta[j].time2);strcpy(sta[i].pos,sta[j].pos);strcpy(sta[i].techpos,sta[j].techpos);strcpy(sta[i].party,sta[j].party);strcpy(sta[i].study,sta[j].study);}voidexchage_3(intj,structstaffs){ strcpy(sta[j].num,s.num);strcpy(sta[j].type,s.type);strcpy(sta[j].name,);strcpy(sta[j].sex,s.sex); sta[j].age=s.age;strcpy(sta[j].time1,s.time1);strcpy(sta[j].time2,s.time2);strcpy(sta[j].pos,s.pos);strcpy(sta[j].techpos,s.techpos);strcpy(sta[j].party,s.party);strcpy(sta[j].study,s.study);}/**********************按年龄排序***********************************/voidorder_age(){ inti,j,n; structstaffs;memset(&s,0,sizeof(structstaff)); n=load(); for(i=0;i<n;i++) for(j=0;j<n-i;j++) if(sta[j].age<sta[j+1].age){ exchage_1(j+1,s); exchage_2(j,j+1);exchage_3(j+1,s); } puts("\n\n");}/**********************按来院时间排序**********************/voidorder_time2(){ inti,j,n; structstaffs;memset(&s,0,sizeof(structstaff)); n=load(); for(i=0;i<n;i++) for(j=0;j<n-i;j++) if(strcmp(sta[j].time2,sta[i].time2)<0){ exchage_1(i,s); exchage_2(i,j);exchage_3(j,s);

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论