【C语言】企业员工信息管理
//全部源代码:#include<stdio.h>#include<string.h>#include<conio.h>#include<stdlib.h>#defineMAX100charfilename[20];/*文件名*/FILE*fp;intn;/*当前该厂人数*/structdate/*时间结构体*/{intyear;intmouth;intday;};structperson/*员工信息结构体*/{charname[10];/*姓名*/intage;/*年龄*/charjob[10];/*工作*/charsex[10];/*性别*/charaddress[20];/*地址*/charphone[10];/*电话*/structdatein_time;/*入厂时间*/}t,worker[MAX];/*录入模块*/voidinput(){inti;system("cls");//system("cls");printf("\n\n请输入文件名\n");scanf("%s",filename);printf("开始输入员工的信息\n");printf("\n请输入现有员工人数\n");scanf("%d",&n);if((fp=fopen(filename,"w"))==NULL){printf("不能建立!\n");exit(0);}for(i=0;i<n;i++){printf("第%d个人的信息:\n",i+1);printf("姓名\n");scanf("%s",worker[i].name);printf("年龄\n");scanf("%d",&worker[i].age);printf("工作\n");scanf("%s",worker[i].job);printf("性别\n");scanf("%s",worker[i].sex);printf("地址\n");scanf("%s",worker[i].address);printf("电话\n");scanf("%s",worker[i].phone);printf("入厂年\n");scanf("%d",&worker[i].in_time.year);printf("入厂月\n");scanf("%d",&worker[i].in_time.mouth);printf("入厂日\n");scanf("%d",&worker[i].in_time.day);}printf("录入完毕,按任意键返回主菜单\n");getch();for(i=0;i<n;i++)fprintf(fp,"%s%d%s%s%s%s%d-%d-%d\n",worker[i].name,worker[i].age,worker[i].job,worker[i].sex,worker[i].address,worker[i].phone,worker[i].in_time.year,worker[i].in_time.mouth,worker[i].in_time.day);fclose(fp);}/*输出模块*/voidoutput(){inti;if((fp=fopen(filename,"r"))==NULL){printf("暂时未有任何信息,请按任意键返回主菜单进行信息录入\n");getch();exit(0);}system("cls");printf("该厂的员工信息:\n");printf("姓名\t年龄\t工作\t性别\t地址\t电话\t入厂时间\n");for(i=0;i<n;i++){fscanf(fp,"%s%d%s%s%s%s%d-%d-%d",worker[i].name,&worker[i].age,worker[i].job,worker[i].sex,worker[i].address,worker[i].phone,&worker[i].in_time.year,&worker[i].in_time.mouth,&worker[i].in_time.day);printf("%s\t%d\t%s\t%s\t%s\t%s\t%d-%d-%d\n",worker[i].name,worker[i].age,worker[i].job,worker[i].sex,worker[i].address,worker[i].phone,worker[i].in_time.year,worker[i].in_time.mouth,worker[i].in_time.day);}fclose(fp);printf("输出完毕,按任意键返回主菜单\n");getch();}/*保存模块*/voidsave(){inti;if((fp=fopen(filename,"w"))==NULL)/*打开文件*/{printf("\n不能打开该文件!");exit(0);}for(i=0;i<n;i++)fprintf(fp,"%s%d%s%s%s%s%d-%d-%d\n",worker[i].name,worker[i].age,worker[i].job,worker[i].sex,worker[i].address,worker[i].phone,worker[i].in_time.year,worker[i].in_time.mouth,worker[i].in_time.day);fclose(fp);}/*读取信息*/voidread_message(){inti;printf("输入文件名\n");scanf("%s",filename);printf("\n请输入现有员工人数\n");scanf("%d",&n);if((fp=fopen(filename,"r"))==NULL){printf("暂时未有任何信息,请按任意键返回主菜单进行信息录入\n");getch();}for(i=0;i<n;i++)fscanf(fp,"%s%d%s%s%s%s%d-%d-%d",worker[i].name,&worker[i].age,worker[i].job,worker[i].sex,worker[i].address,worker[i].phone,&worker[i].in_time.year,&worker[i].in_time.mouth,&worker[i].in_time.day);fclose(fp);}/*修改模块*/voidmodify(){inti,flag,choice;charch,namekey[10];flag=0;system("cls");printf("开始修改\n");do{printf("请输入要修改的员工姓名\n");scanf("%s",namekey);for(i=0;i<n;i++){if(strcmp(worker[i].name,namekey)==0){printf("是否修改此人(y/n)\n");printf("姓名\t年龄\t工作\t性别\t地址\t电话\t入厂时间\n");printf("%s\t%d\t%s\t%s\t%s\t%s\t%d-%d-%d\n",worker[i].name,worker[i].age,worker[i].job,worker[i].sex,worker[i].address,worker[i].phone,worker[i].in_time.year,worker[i].in_time.mouth,worker[i].in_time.day);getchar();/*接收回车*/ch=getchar();if(ch=='y'){printf("****您要修改那一项?***\n\n");printf("***1,姓名***\n\n");printf("***2,年龄***\n\n");printf("***3,工作***\n\n");printf("***4,性别***\n\n");printf("***5,地址***\n\n");printf("***6,电话***\n\n");printf("***7,入厂年***\n\n");printf("***8,入厂月***\n\n");printf("***9,入厂日***\n\n");printf("请选择(1-9)\n");scanf("%d",&choice);switch(choice){case1:printf("输入修改后的姓名\n");scanf("%s",worker[i].name);break;case2:printf("输入修改后的年龄\n");scanf("%d",&worker[i].age);break;case3:printf("输入修改后的工作\n");scanf("%s",worker[i].job);break;case4:printf("输入修改后的性别\n");scanf("%s",worker[i].sex);break;case5:printf("输入修改后的地址\n");scanf("%s",worker[i].address);break;case6:printf("输入修改后的电话\n");scanf("%s",worker[i].phone);break;case7:printf("输入修改后的入厂年\n");scanf("%d",&worker[i].in_time.year);break;case8:printf("输入修改后的入厂月\n");scanf("%d",&worker[i].in_time.mouth);break;case9:printf("输入修改后的入厂日\n");scanf("%d",&worker[i].in_time.day);break;}printf("修改后的信息\n");printf("姓名\t年龄\t工作\t性别\t地址\t电话\t入厂时间\n");printf("%s\t%d\t%s\t%s\t%s\t%s\t%d-%d-%d\n",worker[i].name,worker[i].age,worker[i].job,worker[i].sex,worker[i].address,worker[i].phone,worker[i].in_time.year,worker[i].in_time.mouth,worker[i].in_time.day);}elsebreak;}elseif(i==n)printf("此人不存在\n");}printf("\n是否继续输入(y/n)\n");getchar();/*接收回车*/ch=getchar();if(ch=='y'){printf("继续\n");flag=1;}elseflag=0;}while(flag==1);printf("修改完毕,按任意键返回主菜单\n");getch();}/*添加模块*/voidadd(){inti,flag=0;charch;system("cls");printf("\n开始添加新员工\n");printf("*----------------------------------*\n\n");do{i=n;printf("\n请输入添加职工的信息(姓名,年龄,工作,性别,地址,电话,入厂时间)\n");printf("姓名\n");scanf("%s",worker[i].name);printf("年龄\n");scanf("%d",&worker[i].age);printf("工作\n");scanf("%s",worker[i].job);printf("性别\n");scanf("%s",worker[i].sex);printf("地址\n");scanf("%s",worker[i].address);printf("电话\n");scanf("%s",worker[i].phone);printf("入厂年\n");scanf("%d",&worker[i].in_time.year);printf("入厂月\n");scanf("%d",&worker[i].in_time.mouth);printf("入厂日\n");scanf("%d",&worker[i].in_time.day);n++;printf("\n添加成功!是否继续输入(y/n)\n");getchar();/*接收回车*/ch=getchar();if(ch=='y'){printf("继续\n");flag=1;}elseflag=0;}while(flag==1);printf("添加完毕,按任意键返回主菜单\n");getch();}/*删除模块*/voiddel(){inti,flag;charch,namekey[10];flag=0;system("cls");printf("开始删除\n");do{printf("请输入要删除员工的名字\n");scanf("%s",namekey);for(i=0;i<n;i++)if(strcmp(worker[i].name,namekey)==0)/*查找此人*/{printf("是否删除此人(y/n)\n");printf("姓名\t年龄\t工作\t性别\t地址\t电话\t入厂时间\n");printf("%s\t%d\t%s\t%s\t%s\t%s\t%d-%d-%d\n",worker[i].name,worker[i].age,worker[i].job,worker[i].sex,worker[i].address,worker[i].phone,worker[i].in_time.year,worker[i].in_time.mouth,worker[i].in_time.day);getchar();/*接收回车*/ch=getchar();if(ch=='y'){for(;i<n;i++)worker[i]=worker[i+1];n--;}elsebreak;}elseif(i==n)printf("此人不存在\n");printf("\n是否继续输入(y/n)\n");getchar();/*接收回车*/ch=getchar();if(ch=='y'){printf("继续\n");flag=1;}elseflag=0;}while(flag==1);printf("操作完毕,按任意键返回主菜单\n");getch();}/*更新模块*/voidrenew(){inti;do{system("cls");printf("\n\n\n****更新员工信息****\n\n");printf("按1,添加员工信息\n\n");printf("按2,删除员工信息\n\n");printf("按3,修改员工信息\n\n");printf("按0,返回主菜单\n");printf("请选择(0-3)\n");scanf("%d",&i);switch(i){case1:add();break;case2:del();break;case3:modify();break;case0:break;}}while(i!=0);save();}/*按姓名查找*/voidname_cha(){inti,j;charnamekey[10];j=0;system("cls");printf("输入要查询的员工姓名\n");scanf("%s",namekey);for(i=0;i<n;i++)if(strcmp(worker[i].name,namekey)==0)/*查找此人*/{printf("---------员工信息------\n");printf("姓名\t年龄\t工作\t性别\t地址\t电话\t入厂时间\n");printf("%s\t%d\t%s\t%s\t%s\t%s\t%d-%d-%d\n",worker[i].name,worker[i].age,worker[i].job,worker[i].sex,worker[i].address,worker[i].phone,worker[i].in_time.year,worker[i].in_time.mouth,worker[i].in_time.day);}elsej++;if(j==n)printf("此人不存在\n");printf("按任意键返回主菜单\n");getch();}/*按年龄查找*/voidage_cha(){inti,j;intagekey;j=0;system("cls");printf("输入要查询员工的年龄\n");scanf("%d",&agekey);for(i=0;i<n;i++)if(worker[i].age==agekey){printf("-------员工信息------\n");printf("姓名\t年龄\t工作\t性别\t地址\t电话\t入厂时间\n");printf("%s\t%d\t%s\t%s\t%s\t%s\t%d-%d-%d\n",worker[i].name,worker[i].age,worker[i].job,worker[i].sex,worker[i].address,worker[i].phone,worker[i].in_time.year,worker[i].in_time.mouth,worker[i].in_time.day);}elsej++;if(j==n)printf("此人不存在\n");printf("按任意键返回主菜单\n");getch();}/*按工作查找*/voidjob_cha(){inti,j;charjobkey[10];j=0;system("cls");printf("输入要查询的员工职务\n");scanf("%s",jobkey);for(i=0;i<n;i++)if(strcmp(worker[i].job,jobkey)==0){printf("-------员工信息------\n");printf("姓名\t年龄\t工作\t性别\t地址\t电话\t入厂时间\n");printf("%s\t%d\t%s\t%s\t%s\t%s\t%d-%d-%d\n",worker[i].name,worker[i].age,worker[i].job,worker[i].sex,worker[i].address,worker[i].phone,worker[i].in_time.year,worker[i].in_time.mouth,worker[i].in_time.day);}elsej++;if(j==n)printf("此人不存在\n");printf("按任意键返回主菜单\n");getch();}/*查询模块*/voidinquire(){inti;do{system("cls");printf("\n\n\n****查询员工信息*****\n\n");printf("****1,按姓名查询*****\n\n");printf("****2,按年龄查询*****\n\n");printf("****3,按工作查询*****\n\n");printf("****0,返回主菜单\n");printf("请选择(0-3)\n");scanf("%d",&i);switch(i){case1:name_cha();break;case2:age_cha();break;case3:job_cha();break;case0:break;}}while(i!=0);}/*排列模块*/voidline(){inti,j;system("cls");printf("-------按年龄排序-------\n\n");for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)if(worker[i].age>worker[j].age){t=worker[i];worker[i]=worker[j];worker[j]=t;}printf("姓名\t年龄\t工作\t性别\t地址\t电话\t入厂时间\n");for(i=0;i<n;i++)printf("%s\t%d\t%s\t%s\t%s\t%s\t%d-%d-%d\n",worker[i].name,worker[i].age,worker[i].job,worker[i].sex,worker[i].address,worker[i].phone,worker[i].in_time.year,worker[i].in_time.mouth,worker[i].in_time.day);printf("按任意键返回主菜单\n");getch();}/*按年龄统计*/voidcount_age(){inti,j;intagekey;j=0;system("cls");printf("输入要统计员工的年龄\n");scanf("%d",&agekey);for(i=0;i<n;i++)if(worker[i].age==agekey){printf("-------员工信息------\n");printf("姓名\t年龄\t工作\t性别\t地址\t电话\t入厂时间\n");printf("%s\t%d\t%s\t%s\t%s\t%s\t%d-%d-%d\n",worker[i].name,worker[i].age,worker[i].job,worker[i].sex,worker[i].address,worker[i].phone,worker[i].in_time.year,worker[i].in_time.mouth,worker[i].in_time.day);}elsej++;if(j==n)printf("暂无该年龄段员工\n");printf("按任意键返回主菜单\n");getch();}/*按职务统计*/voidcount_job(){inti,j;charjobkey[10];j=0;system("cls");printf("输入要统计的员工职务\n");scanf("%s",jobkey);for(i=0;i<n;i++)if(strcmp(worker[i].job,jobkey)==0){printf("-------员工信息------\n");printf("姓名\t年龄\t工作\t性别\t地址\t电话\t入厂时间\n");printf("%s\t%d\t%s\t%s\t%s\t%s\t%d-%d-%d\n",worker[i].name,worker[i].age,worker[i].job,worker[i].sex,worker[i].address,worker[i].phone,worker[i].in_time.year,worker[i].in_time.mouth,worker[i].in_time.day);}elsej++;if(j==n)printf("暂无该职务或该职务暂时无人\n");printf("按任意键返回主菜单\n");getch();}/*按性别统计*/voidcount_sex(){inti,j;charsexkey[10];j=0;system("cls");printf("输入要统计的员工性别\n");scanf("%s",sexkey);for(i=0;i<n;i++)if(strcmp(worker[i].sex,sexkey)==0){printf("-------员工信息------\n");printf("姓名\t年龄\t工作\t性别\t地址\t电话\t入厂时间\n");printf("%s\t%d\t%s\t%s\t%s\t%s\t%d-%d-%d\n",worker[i].name,worker[i].age,worker[i].job,worker[i].sex,worker[i].address,worker[i].phone,worker[i].in_time.year,worker[i].in_time.mouth,worker[i].in_time.day);}elsej++;if(j==n)printf("暂无该性别员工\n");printf("按任意键返回主菜单\n");getch();}/*统计模块*/voidcount(){inti;do{system("cls");printf("\n\n\n****统计员工信息****\n\n");printf("按1,统计某年龄职工\n\n");printf("按2,统计某职务员工\n\n");printf("按3,统计某性别职工\n\n");printf("按0,返回主菜单\n\n");printf("请选择(0-3):\n");scanf("%d",&i);switch(i){case1:count_age();break;case2:count_job();break;case3:count_sex();break;case0:break;}}while(i!=0);}/*主函数*/main(){intchoice;read_message();do{system("cls");printf("\n\n*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*\n");printf("**\n");printf("#----------------欢迎进入XXX企业员工管理系统-----------------#\n");printf("**\n");printf("#----------------------按1,录入员工信息----------------------#\n");printf("**\n");printf("#----------------------按2,更新员工信息----------------------#\n");printf("**\n");printf("#----------------------按3,查询员工信息----------------------#\n");printf("**\n");printf("#----------------------按4,排列员工信息----------------------#\n");printf("**\n");printf("#----------------------按5,统计员工信息----------------------#\n");printf("**\n");printf("#----------------------按6,输出员工信息----------------------#\n");printf("**\n");printf("#-----------------------按0,退出系统-------------------------#\n");printf("**\n");printf("#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#\n");scanf("%d",&choice);switch(choice){case1:input();break;case2:renew();break;case3:inquire();break;case4:line();break;case5:count();break;case6:output();break;case0:break;}}while(choice!=0);save();printf("现有员工数:%d\n",n);printf("\n以上信息已保存!文件名为:%s\n",filename);}
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。