C語言課程設計-人事管理管理系統(tǒng)Ⅱ_第1頁
C語言課程設計-人事管理管理系統(tǒng)Ⅱ_第2頁
C語言課程設計-人事管理管理系統(tǒng)Ⅱ_第3頁
C語言課程設計-人事管理管理系統(tǒng)Ⅱ_第4頁
C語言課程設計-人事管理管理系統(tǒng)Ⅱ_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、人事管理管理系統(tǒng)要求某高校主要人員有:在職人員(行政人員、教師、一般員工)、退休人員和臨時工?,F(xiàn)在,需要存儲這些人員的人事檔案信息:編號、姓名、性別、年齡、職務、職稱、政治面貌、最高學歷、任職時間、來院時間、人員類別。其中,人員編號唯一,不能重復。(1) 添加刪除功能:能根據(jù)學院人事的變動情況,添加刪除記錄;(2) 查詢功能:能根據(jù)編號和姓名進行查詢;(3) 編輯功能(高級):根據(jù)查詢對相應的記錄進行修改,并存儲;(4) 統(tǒng)計功能:能根據(jù)多種參數(shù)進行人員的統(tǒng)計(在職人數(shù)、黨員人數(shù)、女工人數(shù)、高學歷高職稱人數(shù)(碩士學位以上或者副教授以上),統(tǒng)計要求同時顯示被統(tǒng)計者的信息;(5) 排序功能:按照年

2、齡、來院時間進行排序;(6) 保存功能:能對輸入的數(shù)據(jù)進行相應的存儲;一.需求分析:根據(jù)題目要求,人事信息是存放在文件中的,所以應該提供相應的文件的輸入輸出的功能,在程序中應該有添加刪除,查詢,編輯,統(tǒng)計,排序,保存等程序?qū)崿F(xiàn)相應的操作,另外菜單式的選擇方式選擇程序的功能也是必須需的。另外程序中要求存儲的模塊,采用的方式均為將原文件中的所有數(shù)據(jù)讀入內(nèi)存,在內(nèi)存中處理之后以覆蓋的方式寫入文件中重新儲存,這樣的方法容易理解、容易編寫,但當文件中的數(shù)據(jù)量很大時,這種方法也存在一定的難度,在本程序中將RS定為100,也即最多可儲存的職工人數(shù)為100;二總體設計:根據(jù)以上需求分析,將程序分成以下幾個模塊

3、: 1瀏覽: *瀏覽文件(0) 2 刪除 *刪除記錄(1) 3查詢 *按名稱查詢(2) *按編號查詢(3) 4 編輯 *查詢名稱編輯信息(4) *查詢編號編輯信息(5) 5 統(tǒng)計 *統(tǒng)計在職人數(shù)(6) *統(tǒng)計黨員人數(shù)(7) *統(tǒng)計女工人數(shù)(8) *統(tǒng)計碩士以上學歷人數(shù)(9) *統(tǒng)計副教授以上職稱人數(shù)(10) 6 排序 *按年齡進行排序(11) *按來院時間進行排序(12) 7 保存 *將輸入的記錄進行保存(13)三 詳細設計;1、 主函數(shù):主函數(shù)設計的比較簡單,只提供輸入、處理和輸出部分的函數(shù)調(diào)用。其中各功能模塊用菜單方式選擇。其流程圖如下程序開始顯示一系列功能根據(jù)n的值調(diào)用個功能模塊函數(shù)結(jié)束

4、輸入n,判斷是否是014NYvoid main() do int n; puts("*n"); puts("*人事管理系統(tǒng)*n"); puts("*請選擇以下選項后面的數(shù)字輸入以確定您要進行的操作*n"); puts("選項:"); puts("瀏覽:"); puts(" *瀏覽文件(0)"); puts(" 刪除"); puts(" *刪除記錄(1)"); puts(" 查詢"); puts(" *按名稱

5、查詢(2)"); puts(" *按編號查詢(3)"); puts(" 編輯"); puts(" *查詢名稱編輯信息(4)"); puts(" *查詢編號編輯信息(5)"); puts(" 統(tǒng)計"); puts(" *統(tǒng)計在職人數(shù)(6)"); puts(" *統(tǒng)計黨員人數(shù)(7)"); puts(" *統(tǒng)計女工人數(shù)(8)"); puts(" *統(tǒng)計碩士以上學歷人數(shù)(9)"); puts(" *統(tǒng)計副

6、教授以上職稱人數(shù)(10)"); puts(" 排序"); puts(" *按年齡進行排序(11)"); puts(" *按來院時間進行排序(12)"); puts(" 保存"); puts(" *將輸入的記錄進行保存(13)"); puts(" 退出"); puts(" *退出(14)"); printf("請輸入選項號: "); scanf("%d",&n); switch(n) case 0:b

7、rowse();break; case 1:dele();break; case 2:searname();break; case 3:searnum();break; case 4:channame();break; case 5:channum();break; case 6:sumzzrs();break; case 7:sumdyrs();break; case 8:sumngrs();break; case 9:sumssysxlrs();break; case 10:sumfjsyszhichers();break; case 11:sortage();break; case 12

8、:sortlysj();break; case 13:save();break; case 14:return; default: printf("輸入錯誤"); while(1);2、 各功能設計模塊(0) 瀏覽模塊該模塊的功能是顯示文件的所有信息,流程圖如下顯示所有信息按任意鍵顯示下一屏按任意鍵繼續(xù)程序void browse() int i=0,j; if(fp=fopen("renshi.txt","r")=NULL) printf("cannot open this filen"); return; whi

9、le(!feof(fp) fscanf(fp,"%s %s %s %d %s %d %s %d %s %d %s",peri.num,,peri.sex,&peri.age,peri.zhiwu,&peri.zhiche,peri.zzmm,&peri.zgxl,peri.rzsj,&peri.lysj,peri.rylb); i+; printf("nn當前文件內(nèi)容是:nn"); for(j=0;j<i;j+) printf("%s %s %s %d %s %d %s %d %s %d

10、%sn",perj.num,,perj.sex,perj.age,perj.zhiwu,perj.zhiche,perj.zzmm,perj.zgxl,perj.rzsj,perj.lysj,perj.rylb); fclose(fp); printf("n"); printf("nnnpress any key to continuennn"); getchar(); printf("n");(1) 刪除模塊該模塊的功能是根據(jù)編號刪除記錄的信息,刪除空行,后面的前移,瀏覽。流程圖如下開始輸入要刪除記錄的編

11、號是否找到記錄?顯示沒有找到刪除記錄YN程序void dele() int i=0,j,k=0; char num10; printf("請輸入您要刪除的記錄的編號: "); scanf("%s",num); if(fp=fopen("renshi.txt","r")=NULL) printf("cannot open this filen"); return; while(!feof(fp) fscanf(fp,"%s %s %s %d %s %d %s %d %s %d %s&qu

12、ot;,peri.num,,peri.sex,&peri.age,peri.zhiwu,&peri.zhiche,peri.zzmm,&peri.zgxl,peri.rzsj,&peri.lysj,peri.rylb); i+; fclose(fp); if(fp=fopen("renshi.txt","w")=NULL) printf("cannot open this filen"); return; for(j=0;j<i;j+) if(strcmp(perj.num,nu

13、m)!=0) fprintf(fp,"%s %s %s %d %s %d %s %d %s %d %sn",perj.num,,perj.sex,perj.age,perj.zhiwu,perj.zhiche,perj.zzmm,perj.zgxl,perj.rzsj,perj.lysj,perj.rylb); fclose(fp); trim(); browse(); printf(""); getchar();(2) 按名稱查詢模塊該模塊的功能是根據(jù)名字查詢記錄。流程如下開始輸入要查詢記錄的名字是否找到記錄?顯示沒有找到顯示記錄YN

14、程序void searname() int i=0,j,k=0; char name8; printf("請輸入您要查詢的記錄的姓名: "); scanf("%s",name); if(fp=fopen("renshi.txt","a+")=0) printf("cannot open this filen"); return; while(!feof(fp) fscanf(fp,"%s %s %s %d %s %d %s %d %s %d %s",peri.num,peri

15、.name,peri.sex,&peri.age,peri.zhiwu,&peri.zhiche,peri.zzmm,&peri.zgxl,peri.rzsj,&peri.lysj,peri.rylb); i+; printf("您要的信息如下:n"); for(j=0;j<i;j+) if(strcmp(,name)=0) printf("%s %s %s %d %s %d %s %d %s %d %sn",perj.num,,perj.sex,perj.age,perj.zhi

16、wu,perj.zhiche,perj.zzmm,perj.zgxl,perj.rzsj,perj.lysj,perj.rylb); k+; if(k=0) printf("沒有您要的信息"); return; fclose(fp); browse(); printf(""); getchar();(3) 按編號查詢模塊該模塊功能是根據(jù)記錄編號查詢記錄。流程路如下開始輸入要查詢記錄的編號是否找到記錄?顯示沒有找到顯示記錄YN(4)程序void searnum() int i=0,j,k=0; char num10; printf("請輸入您要查

17、詢的記錄的編號: "); scanf("%s",num); if(fp=fopen("renshi.txt","r+")=NULL) printf("cannot open this filen"); return; while(!feof(fp) fscanf(fp,"%s %s %s %d %s %d %s %d %s %d %s",peri.num,,peri.sex,&peri.age,peri.zhiwu,&peri.zhiche,peri.

18、zzmm,&peri.zgxl,peri.rzsj,&peri.lysj,peri.rylb); i+; printf("您要的信息如下:n"); for(j=0;j<i;j+) if(strcmp(perj.num,num)=0) printf("%s %s %s %d %s %d %s %d %s %d %sn",perj.num,,perj.sex,perj.age,perj.zhiwu,perj.zhiche,perj.zzmm,perj.zgxl,perj.rzsj,perj.lysj,perj.rylb

19、); k+; if(k=0) printf("沒有您要的信息"); return; fclose(fp); browse(); printf(""); getchar();(5) 查詢名稱編輯模塊該模塊先根據(jù)名字查找記錄,然后修改記錄。流程圖如下開始輸入要查詢記錄的名字是否找到記錄?顯示沒有找到輸入對應要修改項的數(shù)字YN輸入修改后的值程序void channame() int i=0,j,k; char name8; printf("請輸入您要編輯的記錄的姓名: "); scanf("%s",name); if(f

20、p=fopen("renshi.txt","r")=NULL) printf("cannot open this filen"); return; while(!feof(fp) fscanf(fp,"%s %s %s %d %s %d %s %d %s %d %s",peri.num,,peri.sex,&peri.age,peri.zhiwu,&peri.zhiche,peri.zzmm,&peri.zgxl,peri.rzsj,&peri.lysj,peri.

21、rylb); i+; fclose(fp); trim(); if(fp=fopen("renshi.txt","w")=NULL) printf("cannot open this filen"); return; printf("請輸入您要修改的項所對應的數(shù)字:(編號對應的數(shù)字為1,其他項依次為2,3,4.)"); scanf("%d",&k); printf("請輸入這一項修改后的值"); for(j=0;j<i;j+) if(strcmp(perj.na

22、me,name)=0) switch(k) case 1:scanf("%s",perj.num);break; case 2:scanf("%s",);break; case 3:scanf("%s",perj.sex);break; case 4:scanf("%d",&perj.age);break; case 5:scanf("%s",perj.zhiwu);break; case 6:scanf("%d",&perj.zhiche)

23、;break; case 7:scanf("%s",perj.zzmm);break; case 8:scanf("%d",&perj.zgxl);break; case 9:scanf("%s",perj.rzsj);break; case 10:scanf("%d",&perj.lysj);break; case 11:scanf("%s",perj.rylb);break; case 12:return; default:printf("輸入錯誤");

24、for(j=0;j<i;j+) fprintf(fp,"%s %s %s %d %s %d %s %d %s %d %sn",perj.num,,perj.sex,perj.age,perj.zhiwu,perj.zhiche,perj.zzmm,perj.zgxl,perj.rzsj,perj.lysj,perj.rylb); fclose(fp); trim(); browse(); printf(""); getchar(); (6) 查詢編號編輯信息模塊該模塊是先根據(jù)記錄的編號查詢記錄,而后編輯記錄。流程圖如下程序void

25、 channum()開始輸入要查詢記錄的編號是否找到記錄?顯示沒有找到輸入對應要修改項的數(shù)字YN輸入修改后的值 int i=0,j,k; char num10; printf("請輸入您要編輯的記錄的編號: "); scanf("%s",num); if(fp=fopen("renshi.txt","r")=NULL) printf("cannot open this filen"); return; while(!feof(fp) fscanf(fp,"%s %s %s %d %s

26、%d %s %d %s %d %s",peri.num,,peri.sex,&peri.age,peri.zhiwu,&peri.zhiche,peri.zzmm,&peri.zgxl,peri.rzsj,&peri.lysj,peri.rylb); i+; fclose(fp); if(fp=fopen("renshi.txt","w")=NULL) printf("cannot open this filen"); return; printf("請輸入您要修改

27、的項所對應的數(shù)字:(編號對應的數(shù)字為1,其他項依次為2,3,4.)"); scanf("%d",&k); printf("請輸入這一項修改后的值"); for(j=0;j<i;j+) if(strcmp(perj.num,num)=0) switch(k) case 1:scanf("%s",perj.num);break; case 2:scanf("%s",);break; case 3:scanf("%s",perj.sex);break; cas

28、e 4:scanf("%d",&perj.age);break; case 5:scanf("%s",perj.zhiwu);break; case 6:scanf("%d",&perj.zhiche);break; case 7:scanf("%s",perj.zzmm);break; case 8:scanf("%d",&perj.zgxl);break; case 9:scanf("%s",perj.rzsj);break; case 10:sc

29、anf("%d",&perj.lysj);break; case 11:scanf("%s",perj.rylb);break; case 12:return; default:printf("輸入錯誤"); for(j=0;j<i;j+) fprintf(fp,"%s %s %s %d %s %d %s %d %s %d %sn",perj.num,,perj.sex,perj.age,perj.zhiwu,perj.zhiche,perj.zzmm,perj.zgxl,perj.

30、rzsj,perj.lysj,perj.rylb); fclose(fp); trim(); browse(); printf(""); getchar();(7) 根據(jù)在職人數(shù)進行統(tǒng)計模塊開始判斷人員是否在職把在職人員相加完成程序void sumzzrs() int i=0,j; if(fp=fopen("renshi.txt","r")=NULL) printf("cannot open this filen"); return; while(!feof(fp) fscanf(fp,"%s %s %s

31、 %d %s %d %s %d %s %d %s",peri.num,,peri.sex,&peri.age,peri.zhiwu,&peri.zhiche,peri.zzmm,&peri.zgxl,peri.rzsj,&peri.lysj,peri.rylb); i+; if(i=0) printf("這是一個空文件"); return; printf("在職人員數(shù)量是%d人n",i); for(j=0;j<i;j+) printf("%s %s %s %d %s %d %s

32、%d %s %d %sn",perj.num,,perj.sex,perj.age,perj.zhiwu,perj.zhiche,perj.zzmm,perj.zgxl,perj.rzsj,perj.lysj,perj.rylb); fclose(fp); trim(); browse(); printf(""); getchar();(7)根據(jù)黨員人數(shù)進行統(tǒng)計模塊程序void sumdyrs() int i=0,j,count=0; if(fp=fopen("renshi.txt","r")=NULL)

33、printf("cannot open this filen"); return; while(!feof(fp) fscanf(fp,"%s %s %s %d %s %d %s %d %s %d %s",peri.num,,peri.sex,&peri.age,peri.zhiwu,&peri.zhiche,peri.zzmm,&peri.zgxl,peri.rzsj,&peri.lysj,peri.rylb); i+; if(i=0) printf("這是一個空文件"); retu

34、rn; for(j=0;j<i;j+) if(strcmp(perj.zzmm,"黨員")=0) printf("%s %s %s %d %s %d %s %d %s %d %sn",perj.num,,perj.sex,perj.age,perj.zhiwu,perj.zhiche,perj.zzmm,perj.zgxl,perj.rzsj,perj.lysj,perj.rylb); count+; fclose(fp); printf("黨員數(shù)量是%d人",count); trim(); browse();

35、 printf(""); getchar();(8)根據(jù)女工人數(shù)進行統(tǒng)計模塊程序void sumngrs() int i=0,j,count=0; if(fp=fopen("renshi.txt","r")=NULL) printf("cannot open this filen"); return; while(!feof(fp) fscanf(fp,"%s %s %s %d %s %d %s %d %s %d %s",peri.num,,peri.sex,&peri

36、.age,peri.zhiwu,&peri.zhiche,peri.zzmm,&peri.zgxl,peri.rzsj,&peri.lysj,peri.rylb); i+; if(i=0) printf("這是一個空文件"); return; for(j=0;j<i;j+) if(strcmp(perj.sex,"女")=0) printf("%s %s %s %d %s %d %s %d %s %d %sn",perj.num,,perj.sex,perj.age,perj.zhiwu

37、,perj.zhiche,perj.zzmm,perj.zgxl,perj.rzsj,perj.lysj,perj.rylb); count+; fclose(fp); printf("女工數(shù)量是%d人",count); trim(); browse(); printf(""); getchar();(9)根據(jù)碩士以上學歷人數(shù)進行統(tǒng)計模塊void sumssysxlrs() int i=0,j,count=0; if(fp=fopen("renshi.txt","r")=NULL) printf("can

38、not open this filen"); return; while(!feof(fp) fscanf(fp,"%s %s %s %d %s %d %s %d %s %d %s",peri.num,,peri.sex,&peri.age,peri.zhiwu,&peri.zhiche,peri.zzmm,&peri.zgxl,peri.rzsj,&peri.lysj,peri.rylb); i+; if(i=0) printf("這是一個空文件"); return; for(j=0;j<

39、;i;j+) if(perj.zgxl>=2) printf("%s %s %s %d %s %d %s %d %s %d %sn",perj.num,,perj.sex,perj.age,perj.zhiwu,perj.zhiche,perj.zzmm,perj.zgxl,perj.rzsj,perj.lysj,perj.rylb); count+; fclose(fp); printf("碩士以上學歷人數(shù)是%d人",count); trim(); browse(); printf(""); getchar(

40、);(10)根據(jù)副教授以上職稱人數(shù)進行統(tǒng)計模塊void sumfjsyszhichers() int i=0,j,count=0; if(fp=fopen("renshi.txt","r")=NULL) printf("cannot open this filen"); return; while(!feof(fp) fscanf(fp,"%s %s %s %d %s %d %s %d %s %d %s",peri.num,,peri.sex,&peri.age,peri.zhiwu,&a

41、mp;peri.zhiche,peri.zzmm,&peri.zgxl,peri.rzsj,&peri.lysj,peri.rylb); i+; if(i=0) printf("這是一個空文件"); return; for(j=0;j<i;j+) if(perj.zhiche>=4) printf("%s %s %s %d %s %d %s %d %s %d %sn",perj.num,,perj.sex,perj.age,perj.zhiwu,perj.zhiche,perj.zzmm,perj.zgxl,

42、perj.rzsj,perj.lysj,perj.rylb); count+; fclose(fp); printf("副教授以上學歷人數(shù)是%d人",count); trim(); browse(); printf(""); getchar();(11)按年齡進行排序模塊該模塊的功能是根據(jù)年齡排序。流程圖排序開始用選擇法排序保存結(jié)束程序void sortage() int i=0,j,k; struct person a; if(fp=fopen("renshi.txt","r")=NULL) printf(&qu

43、ot;cannot open this filen"); return; while(!feof(fp) fscanf(fp,"%s %s %s %d %s %d %s %d %s %d %s",peri.num,,peri.sex,&peri.age,peri.zhiwu,&peri.zhiche,peri.zzmm,&peri.zgxl,peri.rzsj,&peri.lysj,peri.rylb); i+; fclose(fp); if(fp=fopen("renshi.txt",&quo

44、t;w")=NULL) printf("cannot open this filen"); return; for(j=0;j<i;j+) for(k=0;k<i;k+) if(perj.age>perk.age) a=perk; perk=perj;perj=a; for(j=0;j<i;j+) fprintf(fp,"%s %s %s %d %s %d %s %d %s %d %sn",perj.num,,perj.sex,perj.age,perj.zhiwu,perj.zhiche,perj.z

45、zmm,perj.zgxl,perj.rzsj,perj.lysj,perj.rylb); fclose(fp); trim(); browse(); printf(""); getchar();(12)按來院時間進行排序模塊void sortlysj() int i=0,j,k; struct person a; if(fp=fopen("renshi.txt","r")=NULL) printf("cannot open this filen"); return; while(!feof(fp) fscanf(

46、fp,"%s %s %s %d %s %d %s %d %s %d %s",peri.num,, peri.sex,&peri.age,peri.zhiwu,&peri.zhiche,peri.zzmm,&peri.zgxl, peri.rzsj,&peri.lysj,peri.rylb); i+; fclose(fp); if(fp=fopen("renshi.txt","w")=NULL) printf("cannot open this filen"); return; for(j=0;j<i;j+) for(k=0;k<i;k+) if(perj.lysj>perk.lysj) a=perk; perk

溫馨提示

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

評論

0/150

提交評論