




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
本科生C語言課程設計論文課程名稱C語言課程設計教師姓名朱莉本科生姓名李百蟬本科生學號20111002986本科生專業地質學所在院系地球科學學院日期:2013年12月26日目錄TOC\o"1-1"\h\u目錄21.課程論文題目32.程序設計思路33.功能模塊圖44.程序代碼45.程序運行結果306.課程設計總結327.致謝328.參考文獻32一課程論文題目某高校主要人員有:在職人員(行政人員、教師、一般員工)、退休人員和臨時工。現在,需要存儲這些人員的人事檔案信息:編號、姓名、性別、年齡、職務、職稱、政治面貌、最高學歷、任職時間、來院時間、人員類別。其中,人員編號唯一,不能重復。添加刪除功能:能根據學院人事的變動情況,添加刪除記錄;查詢功能:能根據編號和姓名進行查詢;編輯功能(高級):根據查詢對相應的記錄進行修改,并存儲;統計功能:能根據多種參數進行人員的統計(在職人數、黨員人數、女工人數、高學歷高職稱人數(碩士學位以上或者副教授以上)),統計要求同時顯示被統計者的信息;排序功能:按照年齡、來院時間進行排序;保存功能:能對輸入的數據進行相應的存儲;二程序設計思路根據題目要求,人事信息是存放在文件中的,所以應該提供相應的文件的輸入輸出的功能,在程序中應該有添加刪除,查詢,編輯,統計,排序,保存等程序實現相應的操作,另外菜單式的選擇方式選擇程序的功能也是必須需的。另外程序中要求存儲的模塊,采用的方式均為將原文件中的所有數據讀入內存,在內存中處理之后以覆蓋的方式寫入文件中重新儲存,這樣的方法容易理解、容易編寫,但當文件中的數據量很大時,這種方法也存在一定的難度,在本程序中將M定為2000,也即最多可儲存的職工人數為2000;根據以上需求分析,將程序分成以下幾個模塊:1.添加和刪除****添加人員信息并保存(1)****按名稱和編號查詢與刪除記錄并保存(2)2.查詢與編輯****按名稱和編號查詢****重新編輯信息并保存3.統計****統計在職人數****統計黨員人數****統計女工人數****統計碩士以上學歷和副教授以上職稱人數 ****將統計得到的信息保存在worker3.txt文件中4.排序****按年齡進行排序(1)****按來院時間進行排序(2)三功能模塊圖四程序代碼主函數:主函數設計的比較簡單,只提供輸入、處理和輸出部分的函數調用。其中各功能模塊用菜單方式選擇。其流程圖如下程序開始開始顯示一系列功能根據n的值調用個功能模塊函數結束輸入n,判斷是否是0~4NYmain(){ intn,w; do { puts("\t\t***********************高校人事管理*************************\n\n\n"); puts("\t\t\t\t1.添加或刪除\n"); puts("\t\t\t\t2.查詢與編輯\n"); puts("\t\t\t\t3.統計\n"); puts("\t\t\t\t4.排序\n"); puts("\t\t\t\t5.退出\n"); puts("\t\t*************************************************************\n"); printf("選擇你要的服務(1-5):[]\b\b"); scanf("%d",&n); if(n<1||n>5) { w=1; getchar(); } elsew=0; } while(w==1); switch(n) { case1:retify();main();break; case2:sear_edit();main();break; case3:stat();main();break; case4:row();main();break;case5:exit(0);break; }}structworker{ intnum; charname[20]; charsex[10]; intold; charzhicheng[20]; charzhiwei[20]; charmianmao[20]; charxueli[20]; intcome_time; intwork_time; intleibie;}wor[N];1.添加與刪除模塊,此模塊有(1),(2)兩個模塊構成。voidretify(){ intn,w; do { puts("\t\t***************刪除或添加人員的信息****************\n\n\n\n\n"); puts("\t\t\t\t1.添加"); puts("\t\t\t\t2.刪除"); printf("請選擇服務(1-2):[]\b\b"); scanf("%d",&n); if(n<1||n>2) { w=1; getchar(); } elsew=0; } while(w==1); switch(n) { case1:tianjia();break; case2:shanchu();break; }}(1).添加模塊:開始開始輸入你要添加人的信息并且顯示在屏幕中對原文件進行添加并保存voidtianjia() { FILE*fp; inti,number; structworkerwor_t[N]; printf("您要添加的人的人數:"); scanf("%d",&number);printf("輸入添加人的信息:\n"); for(i=0;i<number;i++) { printf("編號:\n");scanf("%d",&wor_t[i].num); printf("姓名:\n"); scanf("%s",wor_t[i].name); printf("性別:\n");scanf("%s",wor_t[i].sex); printf("年齡:\n");scanf("%d",&wor_t[i].old); printf("職稱:\n");scanf("%s",wor_t[i].zhicheng); printf("職位:\n");scanf("%s",wor_t[i].zhiwei); printf("政治面貌:\n");scanf("%s",wor_t[i].mianmao); printf("學歷:\n");scanf("%s",wor_t[i].xueli); printf("來院時間:\n");scanf("%d",&wor_t[i].come_time);printf("在院工作時間:\n");scanf("%d",&wor_t[i].work_time); printf("在職與否:在職請按1,不在職請按2\n");scanf("%d",&wor_t[i].leibie); printf("您剛才輸入的人的信息\n"); printf("%d%s%s%d%s%s%s%s%d%d%d\n",wor_t[i].num,wor_t[i].name,wor_t[i].sex,wor_t[i].old,wor_t[i].zhicheng,wor_t[i].zhiwei,wor_t[i].mianmao,wor_t[i].xueli,wor_t[i].come_time,wor_t[i].work_time,wor_t[i].leibie); } if((fp=fopen("D:\\txt\\worker.txt","a+"))==NULL) { printf("\nCannotopenfile\n"); exit(0); } for(i=0;i<number;i++) { fprintf(fp,"\n%d%s%s%d%s%s%s%s%d%d%d",wor_t[i].num,wor_t[i].name,wor_t[i].sex,wor_t[i].old,wor_t[i].zhicheng,wor_t[i].zhiwei,wor_t[i].mianmao,wor_t[i].xueli,wor_t[i].come_time,wor_t[i].work_time,wor_t[i].leibie); } fclose(fp);}(2).刪除模塊該模塊的功能是根據編號和姓名先查詢出該人的信息,然后從原文件中刪除該人的信息。流程圖如下,開始開始輸入要刪除記錄的編號和姓名該人存在與否?顯示:該人在????刪除原文件中該人的信息并且保存YN程序voidshanchu(){ FILE*fp,*fp1; inti,number,k,j,m; structworkerworker1[M],worker2[M]; inta[N]; charb[N][20]; printf("您要刪除的人的人數:\n"); scanf("%d",&number); for(i=0;i<number;i++) { printf("輸入刪除人的信息的編號和姓名:\n"); printf("輸入刪除人的編號:\n");scanf("%d",&a[i]); printf("輸入刪除人的姓名:\n");scanf("%s",b[i]); printf("您剛才輸入的人的信息的編號和姓名:\n"); printf("%d%s\n",a[i],b[i]); } if((fp=fopen("worker.txt","r"))==NULL) { printf("\nCannotopenfile\n"); getch(); exit(0); } for(i=0;!feof(fp);i++) fscanf(fp,"%d%s%s%d%s%s%s%s%d%d%d\n",&worker2[i].num,worker2[i].name,worker2[i].sex,&worker2[i].old,worker2[i].zhicheng,worker2[i].zhiwei,worker2[i].mianmao,worker2[i].xueli,&worker2[i].come_time,&worker2[i].work_time,&worker2[i].leibie); k=i; m=0; for(i=0;i<k;i++) { for(j=0;j<number;j++) { if(worker2[i].num==a[j]||!strcmp(worker2[i].name,b[j]))break; } if(j==number)worker1[m]=worker2[i],m++; } printf("輸出公司更改后所有人員的信息:\n編號姓名性別年齡職稱職位面貌學歷來院時間工作時間在職與否\n"); if((fp1=fopen("worker.txt","w"))==NULL) { printf("\nCannotopenfile\n"); getch(); exit(0); } for(i=0;i<m;i++) { printf("%d%s%s%d%s%s%s%s%d%d%d\n",worker1[i].num,worker1[i].name,worker1[i].sex,worker1[i].old,worker1[i].zhicheng,worker1[i].zhiwei,worker1[i].mianmao,worker1[i].xueli,worker1[i].come_time,worker1[i].work_time,worker1[i].leibie); fprintf(fp1,"%d%s%s%d%s%s%s%s%d%d%d\n",worker1[i].num,worker1[i].name,worker1[i].sex,worker1[i].old,worker1[i].zhicheng,worker1[i].zhiwei,worker1[i].mianmao,worker1[i].xueli,worker1[i].come_time,worker1[i].work_time,worker1[i].leibie); } fclose(fp1); getch();}2,查詢和編輯功能:首先,輸入你要查詢的人的編號和姓名,電腦將顯示出該人的信息,并提問你是否要對該人的信息重新進行編輯,若選擇了重新編輯的選項就重新輸入該人的信息,此時將顯示該人的信息并且對原文件進行修改和保存。開始開始輸入你要查詢人的編號和姓名顯示該人的信息是否重新編輯該信息?該人是否存在?顯示該人不存在重新輸入該人的信息顯示你剛才輸入的信息,并且保存到原文件里voidsear_edit(){ FILE*fp,*fp1; structworkerwor_people,worker1[M]; inti,k,m,n; printf("你想查詢誰?\n"); printf("輸入你想查詢的人的編號和姓名\n"); printf("輸入你想查詢的人的編號\n");scanf("%d",&wor_people.num); printf("輸入你想查詢的人的姓名\n");scanf("%s",wor_); if((fp=fopen("worker.txt","r"))==0) { printf("\nCannotopenfile\n");getch(); exit(0); } for(i=0;!feof(fp);i++) fscanf(fp,"%d%s%s%d%s%s%s%s%d%d%d",&worker1[i].num,worker1[i].name,worker1[i].sex,&worker1[i].old,worker1[i].zhicheng,worker1[i].zhiwei,worker1[i].mianmao,worker1[i].xueli,&worker1[i].come_time,&worker1[i].work_time,&worker1[i].leibie); k=i;m=-1; for(i=0;i<k;i++) { if(wor_people.num==worker1[i].num||!(strcmp(wor_,worker1[i].name))) { printf("%d%s%s%d%s%s%s%s%d%d%d",worker1[i].num,worker1[i].name,worker1[i].sex,worker1[i].old,worker1[i].zhicheng,worker1[i].zhiwei,worker1[i].mianmao,worker1[i].xueli,worker1[i].come_time,worker1[i].work_time,worker1[i].leibie); m=i; } } fclose(fp); if(m==-1) { printf("\n這個人不存在???");exit(0);getch(); } printf("\n你想重新編輯這個人的信息嗎?\n"); printf("如果你想,請按1\n如果不想請按2\n"); scanf("%d",&n); if(n==1) { { printf("這個人的初始信息:\n"); printf("\n%d%s%s%d%s%s%s%s%d%d%d\n",worker1[m].num,worker1[m].name,worker1[m].sex,worker1[m].old,worker1[m].zhicheng,worker1[m].zhiwei,worker1[m].mianmao,worker1[m].xueli,worker1[m].come_time,worker1[m].work_time,worker1[m].leibie); printf("輸入新的信息\n"); printf("編號:\n");scanf("%d",&worker1[m].num); printf("姓名:\n"); scanf("%s",worker1[m].name); printf("性別:\n");scanf("%s",worker1[m].sex); printf("年齡:\n");scanf("%d",&worker1[m].old); printf("職稱:\n");scanf("%s",worker1[m].zhicheng); printf("職位:\n");scanf("%s",worker1[m].zhiwei); printf("政治面貌:\n");scanf("%s",worker1[m].mianmao); printf("學歷:\n");scanf("%s",worker1[m].xueli); printf("來院時間:\n");scanf("%d",&worker1[m].come_time); printf("在院工作時間:\n");scanf("%d",&worker1[m].work_time); printf("在職與否:在職請按1,不在職請按2\n");scanf("%d",&worker1[i].leibie); printf("您剛才輸入的人的信息\n"); printf("\n%d%s%s%d%s%s%s%s%d%d%d\n",worker1[m].num,worker1[m].name,worker1[m].sex,worker1[m].old,worker1[m].zhicheng,worker1[m].zhiwei,worker1[m].mianmao,worker1[m].xueli,worker1[m].come_time,worker1[m].work_time,worker1[m].leibie); } if((fp1=fopen("worker.txt","w"))==0) { printf("\nCannotopenfile\n"); exit(0); } for(i=0;i<k;i++) fprintf(fp1,"%d%s%s%d%s%s%s%s%d%d%d\n",worker1[i].num,worker1[i].name,worker1[i].sex,worker1[i].old,worker1[i].zhicheng,worker1[i].zhiwei,worker1[i].mianmao,worker1[i].xueli,worker1[i].come_time,worker1[i].work_time,worker1[i].leibie); fclose(fp1); }}3,根據各個參數進行統計:****統計在職人數****統計黨員人數****統計女工人數****統計碩士以上學歷和副教授以上職稱人數 ****將統計得到的信息保存在worker3.txt文件中voidstat(){ FILE*fp,*fp1; intw_num,d_num,wo_num,x_c_num,i,k; structworkerworker1[M]; puts("\t\t*******************統計人數菜單********************\n\n"); printf("\t\t\t\t各種人員的人數"); puts("\n\n\t\t**************************************************\n"); if((fp=fopen("worker.txt","r"))==0) { printf("\nCannotopenfile\n"); exit(0); } for(i=0;!feof(fp);i++) fscanf(fp,"%d%s%s%d%s%s%s%s%d%d%d",&worker1[i].num,worker1[i].name,worker1[i].sex,&worker1[i].old,worker1[i].zhicheng,worker1[i].zhiwei,worker1[i].mianmao,worker1[i].xueli,&worker1[i].come_time,&worker1[i].work_time,&worker1[i].leibie); k=i; fclose(fp); w_num=0,d_num=0,wo_num=0,x_c_num=0; printf("女職工人數\n"); for(i=0;i<k;i++) { if(!(strcmp(worker1[i].sex,"w"))) w_num++, printf("%d%s%s%d%s%s%s%s%d%d%d\n",worker1[i].num,worker1[i].name,worker1[i].sex,worker1[i].old,worker1[i].zhicheng,worker1[i].zhiwei,worker1[i].mianmao,worker1[i].xueli,worker1[i].come_time,worker1[i].work_time,worker1[i].leibie); } printf("女職工人數有%d人\n",w_num);printf("黨員人數\n");for(i=0;i<k;i++) { if(!(strcmp(worker1[i].mianmao,"dang"))) d_num++, printf("%d%s%s%d%s%s%s%s%d%d%d\n",worker1[i].num,worker1[i].name,worker1[i].sex,worker1[i].old,worker1[i].zhicheng,worker1[i].zhiwei,worker1[i].mianmao,worker1[i].xueli,worker1[i].come_time,worker1[i].work_time,worker1[i].leibie); } printf("黨員人數有%d人\n",d_num);printf("在職人員\n"); for(i=0;i<k;i++) { if(worker1[i].leibie==1) wo_num++,printf("%d%s%s%d%s%s%s%s%d%d%d\n",worker1[i].num,worker1[i].name,worker1[i].sex,worker1[i].old,worker1[i].zhicheng,worker1[i].zhiwei,worker1[i].mianmao,worker1[i].xueli,worker1[i].come_time,worker1[i].work_time,worker1[i].leibie); } printf("在職人員有%d人\n",wo_num);printf("高職稱高學歷人數\n"); for(i=0;i<k;i++) {if(!(strcmp(worker1[i].xueli,"doc"))){x_c_num++; printf("%d%s%s%d%s%s%s%s%d%d%d\n",worker1[i].num,worker1[i].name,worker1[i].sex,worker1[i].old,worker1[i].zhicheng,worker1[i].zhiwei,worker1[i].mianmao,worker1[i].xueli,worker1[i].come_time,worker1[i].work_time,worker1[i].leibie); continue;} if(!(strcmp(worker1[i].xueli,"mas"))){x_c_num++; printf("%d%s%s%d%s%s%s%s%d%d%d\n",worker1[i].num,worker1[i].name,worker1[i].sex,worker1[i].old,worker1[i].zhicheng,worker1[i].zhiwei,worker1[i].mianmao,worker1[i].xueli,worker1[i].come_time,worker1[i].work_time,worker1[i].leibie); continue;} if(!(strcmp(worker1[i].zhicheng,"Professor"))){x_c_num++; printf("%d%s%s%d%s%s%s%s%d%d%d\n",worker1[i].num,worker1[i].name,worker1[i].sex,worker1[i].old,worker1[i].zhicheng,worker1[i].zhiwei,worker1[i].mianmao,worker1[i].xueli,worker1[i].come_time,worker1[i].work_time,worker1[i].leibie);continue;} if(!(strcmp(worker1[i].zhicheng,"a_professor"))){x_c_num++; printf("%d%s%s%d%s%s%s%s%d%d%d\n",worker1[i].num,worker1[i].name,worker1[i].sex,worker1[i].old,worker1[i].zhicheng,worker1[i].zhiwei,worker1[i].mianmao,worker1[i].xueli,worker1[i].come_time,worker1[i].work_time,worker1[i].leibie);continue;} }printf("高職稱高學歷人數有%d人\n",x_c_num); if((fp1=fopen("worker3.txt","w"))==NULL) { printf("\nCannotopenfile\n"); exit(0); } fprintf(fp1,"%d%d%d%d",w_num,d_num,wo_num,x_c_num); fclose(fp1);}4.排序模塊:該模塊有兩個子模塊構成,按年齡和來源時間對原文件里的信息進行排序并且將排序分別保存在old_row.txt和comingtime_row.txt中。開始開始選擇你要進行排序的參數選擇1就按年齡進行排序選擇2就按來院時間進行排序顯示按相應參數進行排序的結果并且分別保存在相應的文件夾里voidrow(){ intn,w; do { puts("\t\t************按年齡和來院時間排序*****************\n\n"); puts("\t\t\t\t1.按年齡排序\n"); puts("\t\t\t\t2.按來院時間排序\n"); puts("\n\n\t\t**********************************************\n"); printf("選擇數字后就可排序(1-2):[]\b\b"); scanf("%d",&n); if(n<1||n>2) { w=1; getchar(); } elsew=0; } while(w==1); switch(n) { case1:old_row();break; case2:comingtime_row();break; } }(1).按年齡對人員進行排序:voidold_row(){ FILE*fp,*fp1; structworkerwor_people,worker1[M]; inti,j,k; if((fp=fopen("worker.txt","r"))==NULL) { printf("\nCannotopenfile\n"); exit(0); } for(i=0;!feof(fp);i++) fscanf(fp,"%d%s%s%d%s%s%s%s%d%d%d\n",&worker1[i].num,worker1[i].name,worker1[i].sex,&worker1[i].old,worker1[i].zhicheng,worker1[i].zhiwei,worker1[i].mianmao,worker1[i].xueli,&worker1[i].come_time,&worker1[i].work_time,&worker1[i].leibie); k=i; for(i=0;i<k;i++) { for(j=i+1;j<k;j++) { if(worker1[i].old>worker1[j].old) { wor_people=worker1[i];worker1[i]=worker1[j];worker1[j]=wor_people; } } } if((fp1=fopen("old_row.txt","w"))==0) { printf("\nCannotopenfile\n"); } for(i=0;i<k;i++) { printf("%d%s%s%d%s%s%s%s%d%d%d\n",worker1[i].num,worker1[i].name,worker1[i].sex,worker1[i].old,worker1[i].zhicheng,worker1[i].zhiwei,worker1[i].mianmao,worker1[i].xueli,worker1[i].come_time,worker1[i].work_time,worker1[i].leibie);fprintf(fp1,"%d%s%s%d%s%s%s%s%d%d%d\n",worker1[i].num,worker1[i].name,worker1[i].sex,worker1[i].old,worker1[i].zhicheng,worker1[i].zhiwei,worker1[i].mianmao,worker1[i].xueli,worker1[i].come_time,worker1[i].work_time,worker1[i].leibie); } fclose(fp1);}(2).按來院時間對人員進行排序voidcomingtime_row(){ FILE*fp,*fp1; structworkerwor_people,worker1[M]; inti,j,k; if((fp=fopen("worker.txt","r"))==NULL) { printf("\nCannotopenfile\n"); exit(0); } for(i=0;!feof(fp);i++) fscanf(fp,"%d%s%s%d%s%s%s%s%d%d%d\n",&worker1[i].num,worker1[i].name,worker1[i].sex,&worker1[i].old,worker1[i].zhicheng,worker1[i].zhiwei,worker1[i].mianmao,worker1[i].xueli,&worker1[i].come_time,&worker1[i].work_time,&worker1[i].leibie); k=i; for(i=0;i<k;i++) { for(j=i+1;j<k;j++) { if(worker1[i].work_time>worker1[j].work_time) { wor_people=worker1[i];worker1[i]=worker1[j];worker1[j]=wor_people; } } } if((fp1=fopen("comingtime_row.txt","w"))==0) { printf("\nCannotopenfile\n"); } for(i=0;i<k;i++) { fprintf(fp1,"%d%s%s%d%s%s%s%s%d%d%d\n",worker1[i].num,worker1[i].name,worker1[i].sex,worker1[i].old,worker1[i].zhicheng,worker1[i].zhiwei,worker1[i].mianmao,worker1[i].xueli,worker1[i].come_time,worker1[i].work_time,worker1[i].leibie); printf("%d%s%s%d%s%s%s%s%d%d%d\n",worker1[i].num,worker1[i].name,worker1[i].sex,worker1[i].old,worker1[i].zhicheng,worker1[i].zhiwei,worker1[i].mianmao,worker1[i].xueli,worker1[i].come_time,worker1[i].work_time,worker1[i].leibie); } fclose(fp1);}各模塊匯總構成總程序并且各功能運行過程如下:#include<stdio.h>#include<stdlib.h>#include<string.h>#include<conio.h>#defineM2000#defineN20voidretify();voidsear_edit();voidtianjia();voidshanchu();voidrow();voidstat();voidold_row();voidcomingtime_row();main(){ intn,w; do { puts("\t\t***********************高校人事管理*************************\n\n\n"); puts("\t\t\t\t1.添加或刪除\n"); puts("\t\t\t\t2.查詢與編輯\n"); puts("\t\t\t\t3.統計\n"); puts("\t\t\t\t4.排序\n"); puts("\t\t\t\t5.退出\n"); puts("\t\t*************************************************************\n"); printf("選擇你要的服務(1-5):[]\b\b"); scanf("%d",&n); if(n<1||n>5) { w=1; getchar(); } elsew=0; } while(w==1); switch(n) { case1:retify();main();break; case2:sear_edit();main();break; case3:stat();main();break; case4:row();main();break;case5:exit(0);break; }}structworker{ intnum; charname[20]; charsex[10]; intold; charzhicheng[20]; charzhiwei[20]; charmianmao[20]; charxueli[20]; intcome_time; intwork_time; intleibie;}wor[N];voidretify(){ intn,w; do { puts("\t\t***************刪除或添加人員的信息****************\n\n\n\n\n"); puts("\t\t\t\t1.添加"); puts("\t\t\t\t2.刪除"); printf("請選擇服務(1-2):[]\b\b"); scanf("%d",&n); if(n<1||n>2) { w=1; getchar(); } elsew=0; } while(w==1); switch(n) { case1:tianjia();break; case2:shanchu();break; }}voidtianjia() { FILE*fp; inti,number; structworkerwor_t[N]; printf("您要添加的人的人數:"); scanf("%d",&number);printf("輸入添加人的信息:\n"); for(i=0;i<number;i++) { printf("編號:\n");scanf("%d",&wor_t[i].num); printf("姓名:\n"); scanf("%s",wor_t[i].name); printf("性別:\n");scanf("%s",wor_t[i].sex); printf("年齡:\n");scanf("%d",&wor_t[i].old); printf("職稱:\n");scanf("%s",wor_t[i].zhicheng); printf("職位:\n");scanf("%s",wor_t[i].zhiwei); printf("政治面貌:\n");scanf("%s",wor_t[i].mianmao); printf("學歷:\n");scanf("%s",wor_t[i].xueli); printf("來院時間:\n");scanf("%d",&wor_t[i].come_time);printf("在院工作時間:\n");scanf("%d",&wor_t[i].work_time); printf("在職與否:在職請按1,不在職請按2\n");scanf("%d",&wor_t[i].leibie); printf("您剛才輸入的人的信息\n"); printf("%d%s%s%d%s%s%s%s%d%d%d\n",wor_t[i].num,wor_t[i].name, wor_t[i].sex,wor_t[i].old,wor_t[i].zhicheng,wor_t[i].zhiwei,wor_t[i].mianmao, wor_t[i].xueli,wor_t[i].come_time,wor_t[i].work_time,wor_t[i].leibie); } if((fp=fopen("worker.txt","a+"))==NULL) { printf("\nCannotopenfile\n"); exit(0); } for(i=0;i<number;i++) { fprintf(fp,"\n%d%s%s%d%s%s%s%s%d%d%d",wor_t[i].num,wor_t[i].name,wor_t[i].sex,wor_t[i].old,wor_t[i].zhicheng,wor_t[i].zhiwei,wor_t[i].mianmao,wor_t[i].xueli,wor_t[i].come_time,wor_t[i].work_time,wor_t[i].leibie); } fclose(fp);}voidshanchu(){ FILE*fp,*fp1; inti,number,k,j,m; structworkerworker1[M],worker2[M]; inta[N]; charb[N][20]; printf("您要刪除的人的人數:\n"); scanf("%d",&number); for(i=0;i<number;i++) { printf("輸入刪除人的信息的編號和姓名:\n"); printf("輸入刪除人的編號:\n");scanf("%d",&a[i]); printf("輸入刪除人的姓名:\n");scanf("%s",b[i]); printf("您剛才輸入的人的信息的編號和姓名:\n"); printf("%d%s\n",a[i],b[i]);} if((fp=fopen("worker.txt","r"))==NULL) { printf("\nCannotopenfile\n"); getch(); exit(0); } for(i=0;!feof(fp);i++) fscanf(fp,"%d%s%s%d%s%s%s%s%d%d%d\n",&worker2[i].num,worker2[i].name,worker2[i].sex,&worker2[i].old,worker2[i].zhicheng,worker2[i].zhiwei,worker2[i].mianmao,worker2[i].xueli,&worker2[i].come_time,&worker2[i].work_time,&worker2[i].leibie); k=i; m=0; for(i=0;i<k;i++) { for(j=0;j<number;j++) { if(worker2[i].num==a[j]||!strcmp(worker2[i].name,b[j]))break; } if(j==number)worker1[m]=worker2[i],m++; } printf("輸出公司更改后所有人員的信息:\n編號姓名性別年齡職稱職位面貌學歷來院時間工作時間在職與否\n"); if((fp1=fopen("worker.txt","w"))==NULL) { printf("\nCannotopenfile\n"); getch(); exit(0); } for(i=0;i<m;i++) { printf("%d%s%s%d%s%s%s%s%d%d%d\n",worker1[i].num,worker1[i].name,worker1[i].sex,worker1[i].old,worker1[i].zhicheng,worker1[i].zhiwei,worker1[i].mianmao,worker1[i].xueli,worker1[i].come_time,worker1[i].work_time,worker1[i].leibie); fprintf(fp1,"%d%s%s%d%s%s%s%s%d%d%d\n",worker1[i].num,worker1[i].name,worker1[i].sex,worker1[i].old,worker1[i].zhicheng,worker1[i].zhiwei,worker1[i].mianmao,worker1[i].xueli,worker1[i].come_time,worker1[i].work_time,worker1[i].leibie); } fclose(fp1); getch();}voidrow(){ intn,w; do { puts("\t\t************按年齡和來院時間排序*****************\n\n"); puts("\t\t\t\t1.按年齡排序\n"); puts("\t\t\t\t2.按來院時間排序\n"); puts("\n\n\t\t**********************************************\n"); printf("選擇數字后就可排序(1-2):[]\b\b"); scanf("%d",&n); if(n<1||n>2) { w=1; getchar(); } elsew=0; } while(w==1); switch(n) { case1:old_row();break; case2:comingtime_row();break; } }voidold_row(){ FILE*fp,*fp1; structworkerwor_people,worker1[M]; inti,j,k; if((fp=fopen("worker.txt","r"))==NULL) { printf("\nCannotopenfile\n"); exit(0); } for(i=0;!feof(fp);i++) fscanf(fp,"%d%s%s%d%s%s%s%s%d%d%d\n",&worker1[i].num,worker1[i].name,worker1[i].sex,&worker1[i].old,worker1[i].zhicheng,worker1[i].zhiwei,worker1[i].mianmao,worker1[i].xueli,&worker1[i].come_time,&worker1[i].work_time,&worker1[i].leibie); k=i; for(i=0;i<k;i++) { for(j=i+1;j<k;j++) { if(worker1[i].old>worker1[j].old) { wor_people=worker1[i];worker1[i]=worker1[j];worker1[j]=wor_people; } } } if((fp1=fopen("old_row.txt","w"))==0) { printf("\nCannotopenfile\n"); } for(i=0;i<k;i++) { printf("%d%s%s%d%s%s%s%s%d%d%d\n",worker1[i].num,worker1[i].name,worker1[i].sex,worker1[i].old,worker1[i].zhicheng,worker1[i].zhiwei,worker1[i].mianmao,worker1[i].xueli,worker1[i].come_time,worker1[i].work_time,worker1[i].leibie);fprintf(fp1,"%d%s%s%d%s%s%s%s%d%d%d\n",worker1[i].num,worker1[i].name,worker1[i].sex,worker1[i].old,worker1[i].zhicheng,worker1[i].zhiwei,worker1[i].mianmao,worker1[i].xueli,worker1[i].come_time,worker1[i].work_time,worker1[i].leibie); } fclose(fp1);}voidcomingtime_row(){ FILE*fp,*fp1; structworkerwor_people,worker1[M]; inti,j,k; if((fp=fopen("worker.txt","r"))==NULL) { printf("\nCannotopenfile\n"); exit(0); } for(i=0;!feof(fp);i++) fscanf(fp,"%d%s%s%d%s%s%s%s%d%d%d\n",&worker1[i].num,worker1[i].name,worker1[i].sex,&worker1[i].old,worker1[i].zhicheng,worker1[i].zhiwei,worker1[i].mianmao,worker1[i].xueli,&worker1[i].come_time,&worker1[i].work_time,&worker1[i].leibie); k=i; for(i=0;i<k;i++) { for(j=i+1;j<k;j++) { if(worker1[i].work_time>worker1[j].work_time) { wor_people=worker1[i];worker1[i]=worker1[j];worker1[j]=wor_people; } } } if((fp1=fopen("comingtime_row.txt","w"))==0) { printf("\nCannotopenfile\n"); } for(i=0;i<k;i++) { fprintf(fp1,"%d%s%s%d%s%s%s%s%d%d%d\n",worker1[i].num,worker1[i].name,worker1[i].sex,worker1[i].old,worker1[i].zhicheng,worker1[i].zhiwei,worker1[i].mianmao,worker1[i].xueli,worker1[i].come_time,worker1[i].work_time,worker1[i].leibie); printf("%d%s%s%d%s%s%s%s%d%d%d\n",worker1[i].num,worker1[i].name,worker1[i].sex,worker1[i].old,worker1[i].zhicheng,worker1[i].zhiwei,worker1[i].mianmao,worker1[i].xueli,worker1[i].come_time,worker1[i].work_time,worker1[i].leibie); } fclose(fp1);}voidsear_edit(){ FILE*fp,*fp1; structworkerwor_people,worker1[M]; inti,k,m,n; printf("你想查詢誰?\n"); printf("輸入你想查詢的人的編號和姓名\n"); printf("輸入你想查詢的人的編號\n");scanf("%d",&wor_people.num); printf("輸入你想查詢的人的姓名\n");scanf("%s",wor_); if((fp=fopen("worker.txt","r"))==0) { printf("\nCannotopenfile\n");getch(); exit(0); } for(i=0;!feof(fp);i++) fscanf(fp,"%d%s%s%d%s%s%s%s%d%d%d",&worker1[i].num,worker1[i].name,worker1[i].sex,&worker1[i].old,worker1[i].zhicheng,worker1[i].zhiwei,worker1[i].mianmao,worker1[i].xueli,&worker1[i].come_time,&worker1[i].work_time,&worker1[i].leibie); k=i;m=-1; for(i=0;i<k;i++) { if(wor_people.num==worker1[i].num||!(strcmp(wor_,worker1[i].name))) { printf("%d%s%s%d%s%s%s%s%d%d%d",worker1[i].num,worker1[i].name,worker1[i].sex,worker1[i].old,worker1[i].zhicheng,worker1[i].zhiwei,worker1[i].mianmao,worker1[i].xueli,worker1[i].come_time,worker1[i].work_time,worker1[i].leibie); m=i; } } fclose(fp); if(m==-1) { printf("\n這個人不存在???");exit(0);getch(); } printf("\n你想重新編輯這個人的信息嗎?\n"); printf("如果你想,請按1\n如果不想請按2\n"); scanf("%d",&n); if(n==1) { { printf("這個人的初始信息:\n"); printf("\n%d%s%s%d%s%s%s%s%d%d%d\n",worker1[m].num,worker1[m].name,worker1[m].sex,worker1[m].old,worker1[m].zhicheng,worker1[m].zhiwei,worker1[m].mianmao,worker1[m].xueli,worker1[m].come_time,worker1[m].work_time,worker1[m].leibie); printf("輸入新的信息\n"); printf("編號:\n");scanf("%d",&worker1[m].num); printf("姓名:\n"); scanf("%s",worker1[m].name); printf("性別:\n");scanf("%s",worker1[m].sex); printf("年齡:\n");scanf("%d",&worker1[m].old); printf("職稱:\n");scanf("%s",worker1[m].zhicheng); printf("職位:\n");scanf("%s",worker1[m].zhiwei); printf("政治面貌:\n");scanf("%s",worker1[m].mianmao); printf("學歷:\n");scanf("%s",worker1[m].xueli); printf("來院時間:\n");scanf("%d",&worker1[m].come_time); printf("在院工作時間:\n");scanf("%d",&worker1[m].work_time); printf("在職與否:在職請按1,不在職請按2\n");scanf("%d",&worker1[i].leibie); printf("您剛才輸入的人的信息\n"); printf("\n%d%s%s%d%s%s%s%s%d%d%d\n",worker1[m].num,worker1[m].name,worker1[m].sex,worker1[m].old,worker1[m].zhicheng,worker1[m].zhiwei,worker1[m].mianmao,worker1[m].xueli,worker1[m].come_time,worker1[m].work_time,worker1[m].leibie); } if((fp1=fopen("worker.txt","w"))==0) { printf("\nCannotopenfile\n"); exit(0); } for(i=0;i<k;i++) fprintf(fp1,"%d%s%s%d%s%s%s%s%d%d%d\n",worker1[i].num,worker1[i].name,worker1[i].sex,worker1[i].old,worker1[i].zhicheng,worker1[i].zhiwei,worker1[i].mianmao,worker1[i].xueli,worker1[i].come_time,worker1[i].work_time,worker1[i].leibie); fclose(fp1); }}voidstat(){ FILE*fp,*fp1; intw_num,d_num,wo_num,x_c_num,i,k; structworkerworker1[M]; puts("\t\t*******************統計人數菜單********************\n\n"); printf("\t\t\t\t各種人員的人數"); puts("\n\n\t\t**************************************************\n"); if((fp=fopen("worker.txt","r"))==0) { printf("\nCannotopenfile\n"); exit(0); } for(i=0;!feof(fp);i++) fscanf(fp,"%d%s%s%d%s%s%s%s%d%d%d",&worker1[i].num,worker1[i].name,worker1[i].sex,&worker1[i].old,worker1[i].zhicheng,worker1[i].zhiwei,worker1[i].mianmao,worker1[i].xueli,&worker1[i].come_time,&worker1[i].work_time,&worker1[i].leibie); k=i; fclose(fp); w_num=0,d_num=0,wo_num=0,x_c_num=0; printf("女職工人數\n"); for(i=0;i<k;i++) { if(!(strcmp(worker1[i].sex,"w"))) w_num++, printf("%d%s%s%d%s%s%s%s%d%d%d\n",worker1[i].num,worker1[i].name,worker1[i].sex,worker1[i].old,worker1[i].zhicheng,worker1[i].zhiwei,worker1[i].mianmao,worker1[i].xueli,worker1[i].come_time,worker1[i].work_time,worker1[i].leibie); } printf("女職工人數有%d人\n",w_num);printf("黨員人數\n");for(i=0;i<k;i+
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 產品市場占有率變化趨勢分析重點基礎知識點
- 2025年超高速切削機床合作協議書
- 九年級上冊古詩文重點語句
- 五年級科技與勞動結合教學計劃
- 2025年三聚氰胺合作協議書
- 軟件開發合同的風險及控制措施
- 浙美版二年級上冊美術評估計劃
- 母嬰健康服務培訓課件
- 航空貨運供貨周期協調措施
- 2025秋季小學班主任工作總結范文
- 綜藝節目贊助合同書
- 三級精神病醫院基本標準(2023版)
- 高爾夫球場澆灌施工方案
- 出納員工考核試題及答案
- 節假日期間醫療安全
- 智能交通系統在城市管理中的應用與前景
- 2024年第一次廣東省普通高中生物學業水平合格性考試含答案
- 居室空間設計 課件 項目四 起居室空間設計
- 企業文化對員工忠誠度的影響研究
- 第十一單元課題 2化學與可持續發展教學設計-2024-2025學年九年級化學人教版(2024)下冊
- 2025年安徽馬鞍山市江東控股集團有限責任公司招聘筆試參考題庫附帶答案詳解
評論
0/150
提交評論