您好,登錄后才能下訂單哦!
//全部源代碼: #include<stdio.h> #include<string.h> #include<conio.h> #include <stdlib.h> #define MAX 100 char filename[20]; /*文件名*/ FILE *fp; int n; /*當(dāng)前該廠人數(shù)*/ struct date /*時(shí)間結(jié)構(gòu)體*/ { int year; int mouth; int day; } ; struct person /*員工信息結(jié)構(gòu)體*/ { char name[10]; /*姓名*/ int age; /*年齡*/ char job[10]; /*工作*/ char sex[10]; /*性別*/ char address[20]; /*地址*/ char phone[10]; /*電話*/ struct date in_time; /*入廠時(shí)間*/ }t,worker[MAX]; /*錄入模塊*/ void input() {int i; system("cls");//system("cls"); printf("\n\n請輸入文件名\n"); scanf("%s",filename); printf("開始輸入員工的信息\n"); printf("\n請輸入現(xiàn)有員工人數(shù)\n"); scanf("%d",&n); if((fp=fopen(filename,"w"))==NULL) { printf("不能建立!\n"); exit(0); } for(i=0;i<n;i++) { printf("第%d個(gè)人的信息:\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); } /*輸出模塊*/ void output() { int i; if((fp=fopen(filename,"r"))==NULL) { printf(" 暫時(shí)未有任何信息,請按任意鍵返回主菜單進(jìn)行信息錄入\n"); getch(); exit(0); } system("cls"); printf(" 該廠的員工信息:\n"); printf("姓名\t年齡\t工作\t性別\t地址\t電話\t入廠時(shí)間 \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(); } /*保存模塊*/ void save() { int i; 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); } /*讀取信息*/ void read_message() { int i; printf("輸入文件名\n"); scanf("%s",filename); printf("\n請輸入現(xiàn)有員工人數(shù)\n"); scanf("%d",&n); if((fp=fopen(filename,"r"))==NULL) { printf(" 暫時(shí)未有任何信息,請按任意鍵返回主菜單進(jìn)行信息錄入\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); } /*修改模塊*/ void modify() { int i,flag,choice; char ch,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入廠時(shí)間 \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(" ****您要修改那一項(xiàng)?***\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) { case 1: printf("輸入修改后的姓名\n"); scanf("%s",worker[i].name); break; case 2: printf("輸入修改后的年齡\n"); scanf("%d",&worker[i].age); break; case 3: printf("輸入修改后的工作\n"); scanf("%s",worker[i].job); break; case 4: printf("輸入修改后的性別\n"); scanf("%s",worker[i].sex); break; case 5: printf("輸入修改后的地址\n"); scanf("%s",worker[i].address); break; case 6: printf("輸入修改后的電話\n"); scanf("%s",worker[i].phone); break; case 7: printf("輸入修改后的入廠年\n"); scanf("%d",&worker[i].in_time.year); break; case 8: printf("輸入修改后的入廠月\n"); scanf("%d",&worker[i].in_time.mouth); break; case 9: printf("輸入修改后的入廠日\n"); scanf("%d",&worker[i].in_time.day); break; } printf("修改后的信息\n"); printf("姓名\t年齡\t工作\t性別\t地址\t電話\t入廠時(shí)間 \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); } else break; } else if(i==n) printf("此人不存在\n"); } printf("\n是否繼續(xù)輸入(y/n)\n"); getchar(); /*接收回車*/ ch=getchar(); if(ch=='y') { printf("繼續(xù)\n"); flag=1; } else flag=0; }while(flag==1); printf("修改完畢,按任意鍵返回主菜單\n") ; getch(); } /*添加模塊*/ void add() { int i,flag=0; char ch; system("cls"); printf("\n 開始添加新員工\n"); printf(" *----------------------------------*\n\n"); do { i=n; printf("\n 請輸入添加職工的信息(姓名,年齡,工作,性別,地址,電話,入廠時(shí)間)\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添加成功!是否繼續(xù)輸入(y/n)\n"); getchar(); /*接收回車*/ ch=getchar(); if(ch=='y') { printf("繼續(xù)\n"); flag=1; } else flag=0; }while(flag==1); printf("添加完畢,按任意鍵返回主菜單\n") ; getch(); } /*刪除模塊*/ void del() { int i,flag; char ch,namekey[10]; flag=0; system("cls"); printf("開始刪除\n"); do { printf("請輸入要?jiǎng)h除員工的名字\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入廠時(shí)間 \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--; } else break; } else if(i==n) printf("此人不存在\n"); printf("\n是否繼續(xù)輸入(y/n)\n"); getchar(); /*接收回車*/ ch=getchar(); if(ch=='y') { printf("繼續(xù)\n"); flag=1; } else flag=0; }while(flag==1); printf("操作完畢,按任意鍵返回主菜單\n") ; getch(); } /*更新模塊*/ void renew() { int i; 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) { case 1: add(); break; case 2: del(); break; case 3: modify(); break; case 0: break; } }while(i!=0); save(); } /*按姓名查找*/ void name_cha() { int i,j; char namekey[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入廠時(shí)間 \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); } else j++; if(j==n) printf("此人不存在\n"); printf("按任意鍵返回主菜單\n"); getch(); } /*按年齡查找*/ void age_cha() { int i,j; int agekey; 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入廠時(shí)間 \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); } else j++; if(j==n) printf("此人不存在\n"); printf("按任意鍵返回主菜單\n"); getch(); } /*按工作查找*/ void job_cha() { int i,j; char jobkey[10]; j=0; system("cls"); printf("輸入要查詢的員工職務(wù)\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入廠時(shí)間 \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); } else j++; if(j==n) printf("此人不存在\n"); printf("按任意鍵返回主菜單\n"); getch(); } /*查詢模塊*/ void inquire() { int i; 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) { case 1: name_cha();break; case 2: age_cha(); break; case 3: job_cha();break; case 0: break; } }while(i!=0); } /*排列模塊*/ void line() { int i,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入廠時(shí)間 \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(); } /*按年齡統(tǒng)計(jì)*/ void count_age() { int i,j; int agekey; j=0; system("cls"); printf(" 輸入要統(tǒng)計(jì)員工的年齡\n"); scanf("%d",&agekey); for(i=0;i<n;i++) if(worker[i].age==agekey) { printf("-------員工信息------\n"); printf("姓名\t年齡\t工作\t性別\t地址\t電話\t入廠時(shí)間 \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); } else j++; if(j==n) printf("暫無該年齡段員工\n"); printf("按任意鍵返回主菜單\n"); getch(); } /*按職務(wù)統(tǒng)計(jì)*/ void count_job() { int i,j; char jobkey[10]; j=0; system("cls"); printf("輸入要統(tǒng)計(jì)的員工職務(wù)\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入廠時(shí)間 \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); } else j++; if(j==n) printf("暫無該職務(wù)或該職務(wù)暫時(shí)無人\n"); printf("按任意鍵返回主菜單\n"); getch(); } /*按性別統(tǒng)計(jì)*/ void count_sex() { int i,j; char sexkey[10]; j=0; system("cls"); printf("輸入要統(tǒng)計(jì)的員工性別\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入廠時(shí)間 \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); } else j++; if(j==n) printf("暫無該性別員工\n"); printf("按任意鍵返回主菜單\n"); getch(); } /*統(tǒng)計(jì)模塊*/ void count() { int i; do { system("cls"); printf("\n\n\n ****統(tǒng)計(jì)員工信息****\n\n"); printf(" 按1,統(tǒng)計(jì)某年齡職工\n\n"); printf(" 按2,統(tǒng)計(jì)某職務(wù)員工\n\n"); printf(" 按3,統(tǒng)計(jì)某性別職工\n\n"); printf(" 按0,返回主菜單\n\n"); printf(" 請選擇(0-3):\n"); scanf("%d",&i); switch(i) { case 1: count_age(); break; case 2: count_job(); break; case 3: count_sex(); break; case 0: break; } }while(i!=0); } /*主函數(shù)*/ main() { int choice; read_message(); do { system("cls"); printf("\n\n *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*\n"); printf(" * *\n"); printf(" #----------------歡迎進(jìn)入XXX企業(yè)員工管理系統(tǒng)-----------------#\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,統(tǒng)計(jì)員工信息----------------------#\n"); printf(" * *\n"); printf(" #----------------------按6,輸出員工信息----------------------#\n"); printf(" * *\n"); printf(" #-----------------------按0,退出系統(tǒng)-------------------------#\n"); printf(" * *\n"); printf(" #*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#\n"); scanf("%d",&choice); switch(choice) { case 1: input(); break; case 2: renew(); break; case 3: inquire(); break; case 4: line(); break; case 5: count(); break; case 6: output(); break; case 0: break; } }while(choice!=0); save(); printf("現(xiàn)有員工數(shù):%d\n",n); printf("\n以上信息已保存!文件名為:%s\n",filename); }
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。