C語言課程設計人事管理系統_第1頁
C語言課程設計人事管理系統_第2頁
C語言課程設計人事管理系統_第3頁
C語言課程設計人事管理系統_第4頁
C語言課程設計人事管理系統_第5頁
已閱讀5頁,還剩6頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

C語言課程設計實驗報告班級姓名學號實驗課程C實驗名稱人事管理系統實驗成績實驗日期任課教師一、目的(本次課程設計所涉及并要求掌握的知識點。)本次課程設計主要涉及c語言的基礎語法,以及指針、文件函數、結構體、函數調用等知識點。二、使用環境(本次上機實踐所使用的平臺和相關軟件。)主要采用windowsxp系統環境+visualc++6.0編譯環境三、內容與設計思想(1.設計思路2.主要數據結構3.主要代碼結構4.主要代碼段分析。)設計思路1、需求分析人事檔案信息采用文件存儲,因而要提供文件的輸入輸出操作;根據學院人事的變動情況,添加刪除記錄,因而要提供文件的添加刪除操作;根據編號和姓名進項查詢,所以要提供文件的查找操作;高級編輯功能,就是提供文件的修改操作;統計功能要提供統計操作;排序功能要提供用排序算法對文件記錄的排序;另外還要提供鍵盤式選擇菜單以實現功能選擇。2、總體設計整體設計為數據輸入模塊、數據添加模塊、數據刪除模塊、數據查詢模塊、數據修改模塊、數據統計模塊、數據排序模塊。主要數據結構數據結構采用結構體:StructpersonnelArchiveInfo{CharNo[10];〃編號Charname[10];//姓名Intsex;//性別Intage;〃年齡Charjob[10];〃職務Charpost[10];〃職稱Charpolitic[10];//政治面貌Charedu_level[10];〃最高學歷Charperiod[10];//任職時間Charstart_time[10];//來院時間Chartype[10];//人員類別}PAInfo;主要代碼結構主函數為使系統執行完每部分功能后能夠方便的回到系統主界面,main()函數設計的較簡單,只包含一個menu()函數,其余的全部功能都通過menu()函數調用來實現,并通過menu()函數的遞歸調用實現返回主界面的功能。voidmain(){intflag=0;intchoose=0;FILE*fp二NULL;charyesorno;system("colorB9");if((fp二fopen("employee1.txt","rb+"))二二NULL){printf("\n=========>提示:文件不存在,是否要創建一個?(y)\n");scanf("%c",&yesorno);if(yesorno=='y'||yesorno=='Y'){//這里僅為了建立文件fp=fopen("employee1.txt","wb+");fclose(fp);//關閉fp所指的文件,釋放文件緩沖區}elseexit(0);}else{Number=read_file(PAInfo);//要是文件已經有數據將數據初始化到數組中}system("cls");system("colorB9");while(1){menu();system("color20");printf("\t二二二二>請選擇:");scanf("%d",&choose);system("cls");switch(choose){case0:exit(0);//退出break;case1:input();fh();//增加職工信息break;case2:add();fh();//查看職工信息break;case3:zc_query();fh();//查找break;case4:num_del();fh();//刪除break;case5:tongji();fh();//統計break;case6:sort();fh();//排序break;case7:num_modify();fh();//修改后返回break;case8:save();fh();//保存break;case9:disp();fh();break;//顯示default:break;}fflush(stdin);getchar();system("cls");}各功益模塊設計數據輸入模塊看各個數據信息,編號、姓名、性別、年齡、職務、職稱、政治面貌、最高學歷、任職時間、來院時間、人員類別,在文件中以文本形式存放,每條記錄對應一個人員的信息,可以方便信息的管理;而數據讀進內存中時,可以以結構體的形式,每一個結構體包含了一個人員的全部信息,多的人員的信息組成了一個結構體數組。定義如下:charNO[10];charname[15];charsex[5];intage;charjob[20];charpost[20];charedu_level[10];charpolitic[20];//政治面貌charperiod[10];//任職時間charstart_time[10];//來院時間chartype[10];//人員類別數據添加模塊該模塊的功能是擁護需要增加新的員工記錄,從鍵盤輸入并逐條寫入到原來的文件中去,其中輸入號碼是要防止號碼重復,重復時報告錯誤,重新輸入。為方便用戶管理和查看,該模塊采用的方式是用先把原來文件中的數據讀入內存,保存在內存中,然后在內存中的數據后面增加新的數據,操作完成后用寫的方式打開文件,用覆蓋的方式寫入。voidadd()//增加職工{intnumberTemp=0;inti=0;structpersonnelArchiveInfotemp;//臨時保存信息printf("請輸入要增加人事信息的個數:");scanf("%d",&numberTemp);for(i=0;i<numberTemp;i++){printf("輸入第%d個人事信息\n",i+1);printf("編號:");scanf("%s",temp.NO);printf("姓名:");scanf("%s",);printf("性別:");scanf("%s",temp.sex);printf("年齡:");scanf("%d",&temp.age);printf("部門:");scanf("%s",temp.job);printf("職稱:");scanf("%s",temp.post);printf("學歷:");scanf("%s",_level);printf("政治面貌:");scanf("%s",&temp.politic);printf("任職時間:");scanf("%s",&temp.period);printf("來院時間:");scanf("%s",&temp.start_time);printf("人員類別:");scanf("%s",&temp.type);PAInfo[Number++]=temp;//將剛添加的寫入到數組write_file(&temp);//將剛添加的寫入到文件}printf("添加成功\n");}數據刪除模塊該模塊的運行方式與修改模塊類似,首先分屏顯示所有人員的記錄,顯示完所有的記錄后,由用戶輸入要刪除的人員的號碼,根據號碼查找相應的記錄并將結果顯示出來,經用戶確認后刪除,刪除的方法是將文件中的數據讀入內存,賦給相應的結構體,并將結構體數組中將刪除的后面的數據賦給前一個結構體,然后將相應數據寫入文件并保存;voidnum_del()//按編號刪除{FILE*fp二NULL;chargh[60];inti=0;intj=0;printf("請輸入要刪除的人事編號:");scanf("%s",gh);for(i=0;i<Number;i++){if(strcmp(gh,PAInfo[i].NO)==0)//如果查找到就刪除{for(j=i;j<Number-1;j++){PAInfo[j]=PAInfo[j+1];}Number--;}}//將剩余數據寫入文件重新一寫的方式打開文件把以前的數據擦除了fp=fopen("employee1.dat","wb");for(i=0;i<Number;i++){fwrite(&PAInfo[i],sizeof(structpersonnelArchiveInfo),1,fp);}fclose(fp);printf("刪除成功;\n");}數據查詢模塊voidzc_query()//按職稱查找{charpost[20];inti=0;printf("請輸入要查找人事職稱:");scanf("%s",post);system("cls");printf("\t編號\七姓W\t性別\t年齡\t部門\t職稱\t學歷\t政治面貌\七任職時間\t來院時間\七人員類別\n");for(i=0;i<Number;i++){if(strcmp(post,PAInfo[i].post)==0){printf("\t%s\t%s\t%s\t%d\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n\n",PAInfo[i].NO,PAInfo[i].name,PAInfo[i].sex,PAInfo[i].age,PAInfo[i].job,PAInfo[i].post,PAInfo[i].edu_level,PAInfo[i].politic,PAInfo[i].period,PAInfo[i].start_time,PAInfo[i].type);}}}數據修改模塊該模塊的功能是顯示所有信息,考慮到記錄較多,采用分屏顯示,顯示完所有的記錄后,由用戶輸入需要修改的人員的號碼,查找成功后,顯示查找結果,并詢問擁護修改人員的哪部分記錄,根據用戶選擇修改相應的信息,然后保存修改后的結果:voidnum_modify()//修改職工信息{FILE*fp二NULL;chargh[60];inti=0;intchangeIndex=0;//changeIndex改變標記intindex=0;printf("請輸入要修改的人事編號:");scanf("%s",gh);for(i=0;i<Number;i++){if(strcmp(gh,PAInfo[i].NO)==0)//比較輸入編號和數組中已有編號{changeIndex=i;//保存要修改的人的下標break;}}printf("\t編號\七姓名\七性別\t年齡\t部門\t職稱\t學歷\t政治面貌\七任職時間\t來院時間\七人員類別\n”);printf("\n\n");printf("\t%s\t%s\t%s\t%d\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n\n",PAInfo[changeIndex].NO,PAInfo[changeIndex].name,PAInfo[changeIndex].sex,PAInfo[changeIndex].age,PAInfo[changeIndex].job,PAInfo[changeIndex].post,PAInfo[changeIndex].edu_level,PAInfo[changeIndex].politic,PAInfo[changeIndex].period,PAInfo[changeIndex].start_time,PAInfo[changeIndex].type);printf("請重新輸入該人事信息");printf("編號:");scanf("%s",PAInfo[changeIndex].NO);printf("姓名:");scanf("%s",PAInfo[changeIndex].name);printf("性別:");scanf("%s",PAInfo[changeIndex].sex);printf("年齡:");scanf("%d",&PAInfo[changeIndex].age);printf("部門:");scanf("%d",PAInfo[changeIndex].job);printf("職稱:");scanf("%s",PAInfo[changeIndex].post);printf("學歷:");scanf("%s",PAInfo[changeIndex].edu_level);printf("政治面貌:");scanf("%s",&PAInfo[changeIndex].politic);printf("任職時間:");scanf("%s",&PAInfo[changeIndex].period);printf("來院時間:");scanf("%s",&PAInfo[changeIndex].start_time);printf("人員類別:");scanf("%s",&PAInfo[changeIndex].type);//信息修改后重新更新文件里面的數據以保持數據一致性fp=fopen("employee1.txt","wb+");for(i=0;i<Number;i++){fwrite(&PAInfo[i],sizeof(structpersonnelArchiveInfo),1,fp);//把ptr所指向n*size個字節輸入到fp所指向的文件中}fclose(fp);printf("\t=======>修改成功\n");}數據統計模塊該模塊的功能是按照用戶的要求統計出滿足符合條件的所有記錄的個數,并將滿足條件的記錄顯示出來。該模塊沒有涉及到文件的保存,所以將文件用只讀的方式打開,可以防止操作過程中數據的丟失:voidtongji()//統計{inti,m,k,max,min;doublesum=0.0;for(i=0;i<Number;i++){sum=sum+PAInfo[i].age;}printf("全體人事總年齡為:%f\n",sum);printf("平均年齡為:%f\n",sum/Number);i=0;m=0;max=0;max二PAInfo[m].age;for(i=1;i<Number;i++){if(PAInfo[i].age>max)m=i;max二PAInfo[m].age;}printf("最高年齡為:%d\n",max);printf("\t%s\t%s\t%s\t%d\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n\n",PAInfo[m].NO,PAInfo[m].name,PAInfo[m].sex,PAInfo[m].age,PAInfo[m].job,PAInfo[m].post,PAInfo[m].edu_level,PAInfo[m].politic,PAInfo[m].period,PAInfo[m].start_time,PAInfo[m].type);i=0;k=0;min=0;min=PAInfo[0].age;for(i=1;i<Number;i++){if(PAInfo[i].age<min)k=i;min=PAInfo[k].age;}printf("最低年齡:%d\n",min);printf("\t%s\t%s\t%s\t%d\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n\n",PAInfo[k].NO,PAInfo[k].name,PAInfo[k].sex,PAInfo[k].age,PAInfo[k].job,PAInfo[k].post,PAInfo[k].edu_level,PAInfo[m].politic,PAInfo[m].period,PAInfo[m].start_time,PAInfo[m].type);}數據排序模塊該模塊的功能是要求將記錄按照年齡或者來院時間進行排序,總體結構是先用sort()函數將文件中的數據調入內存,然后按照選擇法排序,并將結果顯示出來,然后將排序后的結果保存:voidsort()//排序{structpersonnelArchiveInfot;intwantNUmber=0;inti=0;intj=0;intk=0;for(i=0;i<Number-1;i++){k=i;for(j=i+1;j<Number;j++)

{if(PAInfo[j].age>PAInfo[k].age)k=j;}if(k!=i){t=PAInfo[i];PAInfo[i]=PAInfo[k];PAInfo[k]=t;}}printf("你想輸出前幾名人事信息:");scanf("%d",&wantNUmber);if(wantNUmber>Number){wantNUmber=Number;}printf("\t編號\t姓名\七性別\t年齡\t部門\t職稱\t學歷\t政治面貌\t任職時間\t來院時間\t人員類別\n”);for(i=0;i<wantNUmber;i++){printf("\t%s\t%s\t%s\t%d\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n\n",PAInfo[i].NO,PAInfo[i].name,PAInfo[i].sex,PAInfo[i].age,PAInfo[i].job,PAInfo[i].post,PAInfo[i].edu_level,PAInfo[i].politic,PAInfo[i].period,PAInfo[i].start_time,PAInfo[i].type);}}四、調試過程(1.測試數據設計2.測試結果分析)主界面:?41MW.、嚴?41MW.、嚴■:§:且?心息-J-J-二■J'-i-q.選擇1:===>E:m*壯?』:::王少項:■:選擇2:ZQLL"J懦掃底電ZQLL"J懦掃底電-一.:..洞1'/,*¥:-,JrSHS■■■:■:(.:■■■■:-盤舊樓廠管選擇3:rip-.'..rnt;.,x-.[.::■■■X二:

■r..-EE貌f'.r血].,:.技[閂IWI司:"■r..-EE貌f'.r血]'3m小.±:=TI-I,‘?:!.投E二市旦叫二十叫叫壬£01L干宥?一瞬心蜒回3菜單半:P選擇6:__彌嘛出前幾名人事信島2半:邙。坎“+E.W,??土2f「I目V,竺己._性利.-'.Rd「.<::■■:J:.2911干部2TF.;24招生也處長三一,按En虹r健據回主菜單選擇4:■r■■.tI-研究生"一尸:黨員1:選擇9:五、總結.設計中遇到的問題及解決過程在向文件中添加數據的時候,要在打開文件的時候指定正確的文件操作方式,一開始指定文件的操作方式是w,w只寫方式,若文件存在,則原有內容會被清除;若文件不存在,則會建立文件,所以每次添加完一條數據后再次插入一條數據前一條數據會自動清空,這樣文件中保存的始終是最后輸入的一條數據,這不是理想的結果,后來經過查閱技術文檔,發現還有另外文件操作方式即追加a,a:追加方式打開只寫文件,只允許進行寫操作,若文件存在,則添加的內容放在文件末尾;若不存在,則建立文件。通過這種方式操作文件,每添加的一條數據都會自動追加到前一條數據的后面,這種的處理方式是題目所要求的,實現了多條數據的存儲。.設計中產生的錯誤及原因分析經過這一次系統設計編碼的過程,我覺得我c語言的文件這一知識點掌握的極為薄弱,導致不能很好的利用一些函數處理問題。而且,有些時候,腦袋中對問題有求解的思路,但是無法一旦著手寫代碼的時候卻寫不出來,我覺得這是我對C語言一些關鍵知識點的理解不夠透徹,還有就是,平時編寫C語言的代碼量很少,以至于編碼的時候不能順手拈來。.設計體會和收獲。三周的C語言課程設計結束了,在這八天的時間里,我自己獨立完成了一個程序從構思結構,到編寫代碼,然后上機調試運行的過程,感覺自己收獲很大。通過解決一個又一個的問題,熟悉了c語言的應用,對計算機語言應用的理解又深了一層,在老師的指導下,學會了模塊設計的方法,用流程圖表示算法,掌握了用c語言進行程序設計的能力。在設計過程中,我理解了對于一個較大的程序,不可能一次編寫出一個較大的系統,通常要采取自頂向下的設計思想,先設計主函數,再通過完善一個個的功能模塊來完成程序的設計過程,在設計過程中要充分理解整個程序的設計思路,采用逐步細化的方式來完成整個程序。六、附錄1、原代碼#include<stdio.h>#include<stdlib.h>#include<string.h>structpersonnelArchiveInfo{charNO[10];charname[15];charsex[5];intage;charjob[20];charpost[20];charedu_level[10];charpolitic[20];//政治面貌charperiod[10];//任職時間charstart_time[10];//來院時間chartype[10];//人員類別};intread_file(structpersonnelArchiveInfoPAInfo[]);voidmenu();voidwrite_file(structpersonnelArchiveInfoPAInfo[]);voidadd();voidinput();voidzc_query();//按職稱查詢voidnum_del();//按編號刪除voidtongji();//統計voidsort();//排序voidnum_modify();//按編號修改職工信息voidsave();//保存信息voiddisp();//顯示職工信息voidfh();//返回主菜單structpersonnelArchiveInfoPAInfo[300];//這個數組用來保存所有的職工信息和文件里面的一致intNumber=0;//記錄總的職工人數也就是數組/文件里面的職工人數voidmenu(){system("cls");system("colorB9");printf("\t**\n")printf("\t*人事信息管理系統*\n")printf("\t**\n")printf("\t*[1]輸入人事信息[2]增加人事信息*\n")printf("\t*[3]查找人事信息[4]刪除人事信息*\n")printf("\t*[5]統計人事信息[6]人事年齡排列*\n")printf("\t*[7]修改人事信息[8]保存人事信息*\n")printf("\t*[9]顯示人事信息[0]退出管理系統*\n")printf("\t**\n")printf("\t****************************數信院******************************\n");}voidmain(){intflag=0;intchoose=0;FILE*fp二NULL;charyesorno;system("colorB9");if((fp二fopen("employee1.txt","rb+"))二二NULL){printf("\n=========>提示:文件不存在,是否要創建一個?(y)\n");scanf("%c",&yesorno);if(yesorno=='y'||yesorno=='Y'){//這里僅為了建立文件fp=fopen("employee1.txt","wb+");fclose(fp);//關閉fp所指的文件,釋放文件緩沖區}elseexit(0);}else{Number=read_file(PAInfo);//要是文件已經有數據將數據初始化到數組中}system("cls");system("colorB9");while(1){menu();system("color20");printf("\t二二二二>請選擇:");scanf("%d",&choose);system("cls");switch(choose){case0:exit(0);//退出break;case1:input();fh();//增加職工信息break;case2:add();fh();//查看職工信息break;case3:zc_query();fh();//查找break;case4:num_del();fh();//刪除break;case5:tongji();fh();//統計break;case6:sort();fh();//排序break;case7:num_modify();fh();//修改后返回break;case8:save();fh();//保存break;case9:disp();fh();break;//顯示default:break;}fflush(stdin);getchar();system("cls");}}voidsave(){printf("\t二二二>程序在運行時已自動保存\n");}voidfh(){printf("\t二二二>按Enter鍵返回主菜單\n");}voidnum_modify()//修改職工信息{FILE*fp二NULL;chargh[60];inti=0;intchangeIndex=0;//changeIndex改變標記intindex=0;printf("請輸入要修改的人事編號:");scanf("%s",gh);for(i=0;i<Number;i++){if(strcmp(gh,PAInfo[i].NO)==0)//比較輸入編號和數組中已有編號{changeIndex=i;//保存要修改的人的下標break;}}printf("\t編號\七姓名\七性別\t年齡\t部門\t職稱\t學歷\t政治面貌\七任職時間\t來院時間\七人員類別\n");printf("\n\n");printf("\t%s\t%s\t%s\t%d\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n\n",PAInfo[changeIndex].NO,PAInfo[changeIndex].name,PAInfo[changeIndex].sex,PAInfo[changeIndex].age,PAInfo[changeIndex].job,PAInfo[changeIndex].post,PAInfo[changeIndex].edu_level,PAInfo[changeIndex].politic,PAInfo[changeIndex].period,PAInfo[changeIndex].start_time,PAInfo[changeIndex].type);printf("請重新輸入該人事信息");printf("編號:");scanf("%s",PAInfo[changeIndex].NO);printf("姓名:");scanf("%s",PAInfo[changeIndex].name);printf("性別:");scanf("%s",PAInfo[changeIndex].sex);printf("年齡:");scanf("%d",&PAInfo[changeIndex].age);printf("部門:");scanf("%d",PAInfo[changeIndex].job);printf("職稱:");scanf("%s",PAInfo[changeIndex].post);printf("學歷:");scanf("%s",PAInfo[changeIndex].edu_level);printf("政治面貌:");scanf("%s",&PAInfo[changeIndex].politic);printf("任職時間:");scanf("%s",&PAInfo[changeIndex].period);printf("來院時間:");scanf("%s",&PAInfo[changeIndex].start_time);printf("人員類別:");scanf("%s",&PAInfo[changeIndex].type);//信息修改后重新更新文件里面的數據以保持數據一致性fp二fopen("employee1.txt","wb+");for(i=0;i<Number;i++){fwrite(&PAInfo[i],sizeof(structpersonnelArchiveInfo),1,fp);//把ptr所指向n*size個字節輸入到fp所指向的文件中}fclose(fp);printf("\t=======>修改成功\n");}voiddisp()//輸出所有職工信息{inti=0;system("color2");printf("\t編號\t\t姓W\t性別\t年齡\t部門\t職稱\t學歷\t政治面貌\t任職時間\t來院時間\t人員類別\n”);printf("\n\n");for(i=0;i<Number;i++){printf("\t%s\t%s\t%s\t%d\t%s\t%s\t%s\t%s\t\t%s\t\t%s\t\t%s\n\n",PAInfo[i].NO,PAInfo[i].name,PAInfo[i].sex,PAInfo[i].age,PAInfo[i].job,PAInfo[i].post,PAInfo[i].edu_level,PAInfo[i].politic,PAInfo[i].period,PAInfo[i].start_time,PAInfo[i].type);}}voidsort()//排序{structpersonnelArchiveInfot;intwantNUmber=0;inti=0;intj=0;intk=0;for(i=0;i<Number-1;i++){k=i;for(j=i+1;j<Number;j++){if(PAInfo[j].age>PAInfo[k].age)k=j;}if(k!=i){t=PAInfo[i];PAInfo[i]=PAInfo[k];PAInfo[k]=t;}}printf("你想輸出前幾名人事信息:");scanf("%d",&wantNUmber);if(wantNUmber>Number){wantNUmber二Number;}printf("\t編號\七姓W\t性別\t年齡\t部門\t職稱\t學歷\t政治面貌\七任職時間\t來院時間\七人員類別\n”);for(i=0;i<wantNUmber;i++){printf("\t%s\t%s\t%s\t%d\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n\n",PAInfo[i].NO,PAInfo[i].name,PAInfo[i].sex,PAInfo[i].age,PAInfo[i].job,PAInfo[i].post,PAInfo[i].edu_level,PAInfo[i].politic,PAInfo[i].period,PAInfo[i].start_time,PAInfo[i].type);}}voidtongji()//統計{inti,m,k,max,min;doublesum=0.0;for(i=0;i<Number;i++){sum=sum+PAInfo[i].age;}printf("全體人事總年齡為:%f\n",sum);printf("平均年齡為:%f\n",sum/Number);i=0;m=0;max=0;max二PAInfo[m].age;for(i=1;i<Number;i++){if(PAInfo[i].age>max)m=i;max二PAInfo[m].age;}printf("最高年齡為:%d\n",max);printf("\t%s\t%s\t%s\t%d\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n\n",PAInfo[m].NO,PAInfo[m].name,PAInfo[m].sex,PAInfo[m].age,PAInfo[m].job,PAInfo[m].post,PAInfo[m].edu_level,PAInfo[m].politic,PAInfo[m].period,PAInfo[m].start_time,PAInfo[m].type);i=0;k=0;min=0;min二PAInfo[0].age;for(i=1;i<Number;i++){if(PAInfo[i].age<min)k=i;min二PAInfo[k].age;}printf("最低年齡:%d\n",min);printf("\t%s\t%s\t%s\t%d\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n\n",PAInfo[k].NO,PAInfo[k].name,PAInfo[k].sex,PAInfo[k].age,PAInfo[k].job,PAInfo[k].post,PAInfo[k].edu_level,PAInfo[m].politic,PAInfo[m].period,PAInfo[m].start_time,PAInfo[m].type);}voidnum_del()//按編號刪除{FILE*fp二NULL;chargh[60];inti=0;intj=0;printf("請輸入要刪除的人事編號:");scanf("%s",gh);for(i=0;i<Number;i++){if(strcmp(gh,PAInfo[i].NO)==0)//如果查找到就刪除{for(j=i;j<Number-1;j++){PAInfo[j]=PAInfo[j+1];}Number--;}}//將剩余數據寫入文件重新一寫的方式打開文件把以前的數據擦除了fp=fopen("employee1.dat","wb");for(i=0;i<Number;i++){fwrite(&PAInfo[i],sizeof(structpersonnelArchiveInfo),1,fp);}fclose(fp);printf("刪除成功;\n");}voidzc_query()//按職稱查找{charpost[20];inti=0;printf("請輸入要查找人事職稱:”);scanf("%s",post);system("cls");printf("\t編號\七姓W\t性別\t年齡\t部門\t職稱\t學歷\t政治面貌\七任職時間\t來院時間\七人員類別\n”);for(i=0;i<Number;i++){if(strcmp(post,PAInfo[i].post)==0){printf("\t%s\t%s\t%s\t%d\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n\n",PAInfo[i].NO,PAInfo[i].name,PAInfo[i].sex,PAInfo[i].age,PAInfo[i].job,PAInfo[i].post,PAInfo[i].edu_level,PAInfo[i].politic,PAInfo[i].period,PAInfo[i].start_time,PAInfo[i].type);}}}voidadd()//增加職工{intnumberTemp=0;inti=0;structpersonnelArchiveInfotemp;//臨時保存信息printf("請輸入要增加人事信息的個數:");scanf("%d",&numberTemp);for(i=0;i<numberTemp;i++)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論