C語(yǔ)言課程設(shè)計(jì)-人事管理管理系統(tǒng)Ⅱ.doc_第1頁(yè)
C語(yǔ)言課程設(shè)計(jì)-人事管理管理系統(tǒng)Ⅱ.doc_第2頁(yè)
C語(yǔ)言課程設(shè)計(jì)-人事管理管理系統(tǒng)Ⅱ.doc_第3頁(yè)
C語(yǔ)言課程設(shè)計(jì)-人事管理管理系統(tǒng)Ⅱ.doc_第4頁(yè)
C語(yǔ)言課程設(shè)計(jì)-人事管理管理系統(tǒng)Ⅱ.doc_第5頁(yè)
已閱讀5頁(yè),還剩21頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

人事管理管理系統(tǒng)要求某高校主要人員有:在職人員(行政人員、教師、一般員工)、退休人員和臨時(shí)工。現(xiàn)在,需要存儲(chǔ)這些人員的人事檔案信息:編號(hào)、姓名、性別、年齡、職務(wù)、職稱、政治面貌、最高學(xué)歷、任職時(shí)間、來(lái)院時(shí)間、人員類別。其中,人員編號(hào)唯一,不能重復(fù)。(1) 添加刪除功能:能根據(jù)學(xué)院人事的變動(dòng)情況,添加刪除記錄;(2) 查詢功能:能根據(jù)編號(hào)和姓名進(jìn)行查詢;(3) 編輯功能(高級(jí)):根據(jù)查詢對(duì)相應(yīng)的記錄進(jìn)行修改,并存儲(chǔ);(4) 統(tǒng)計(jì)功能:能根據(jù)多種參數(shù)進(jìn)行人員的統(tǒng)計(jì)(在職人數(shù)、黨員人數(shù)、女工人數(shù)、高學(xué)歷高職稱人數(shù)(碩士學(xué)位以上或者副教授以上),統(tǒng)計(jì)要求同時(shí)顯示被統(tǒng)計(jì)者的信息;(5) 排序功能:按照年齡、來(lái)院時(shí)間進(jìn)行排序;(6) 保存功能:能對(duì)輸入的數(shù)據(jù)進(jìn)行相應(yīng)的存儲(chǔ);一.需求分析:根據(jù)題目要求,人事信息是存放在文件中的,所以應(yīng)該提供相應(yīng)的文件的輸入輸出的功能,在程序中應(yīng)該有添加刪除,查詢,編輯,統(tǒng)計(jì),排序,保存等程序?qū)崿F(xiàn)相應(yīng)的操作,另外菜單式的選擇方式選擇程序的功能也是必須需的。另外程序中要求存儲(chǔ)的模塊,采用的方式均為將原文件中的所有數(shù)據(jù)讀入內(nèi)存,在內(nèi)存中處理之后以覆蓋的方式寫(xiě)入文件中重新儲(chǔ)存,這樣的方法容易理解、容易編寫(xiě),但當(dāng)文件中的數(shù)據(jù)量很大時(shí),這種方法也存在一定的難度,在本程序中將RS定為100,也即最多可儲(chǔ)存的職工人數(shù)為100;二總體設(shè)計(jì):根據(jù)以上需求分析,將程序分成以下幾個(gè)模塊: 1瀏覽: *瀏覽文件(0) 2 刪除 *刪除記錄(1) 3查詢 *按名稱查詢(2) *按編號(hào)查詢(3) 4 編輯 *查詢名稱編輯信息(4) *查詢編號(hào)編輯信息(5) 5 統(tǒng)計(jì) *統(tǒng)計(jì)在職人數(shù)(6) *統(tǒng)計(jì)黨員人數(shù)(7) *統(tǒng)計(jì)女工人數(shù)(8) *統(tǒng)計(jì)碩士以上學(xué)歷人數(shù)(9) *統(tǒng)計(jì)副教授以上職稱人數(shù)(10) 6 排序 *按年齡進(jìn)行排序(11) *按來(lái)院時(shí)間進(jìn)行排序(12) 7 保存 *將輸入的記錄進(jìn)行保存(13)三 詳細(xì)設(shè)計(jì);1、 主函數(shù):主函數(shù)設(shè)計(jì)的比較簡(jiǎn)單,只提供輸入、處理和輸出部分的函數(shù)調(diào)用。其中各功能模塊用菜單方式選擇。其流程圖如下程序開(kāi)始顯示一系列功能根據(jù)n的值調(diào)用個(gè)功能模塊函數(shù)結(jié)束輸入n,判斷是否是014NYvoid main() do int n; puts(*n); puts(*人事管理系統(tǒng)*n); puts(*請(qǐng)選擇以下選項(xiàng)后面的數(shù)字輸入以確定您要進(jìn)行的操作*n); puts(選項(xiàng):); puts(瀏覽:); puts( *瀏覽文件(0); puts( 刪除); puts( *刪除記錄(1); puts( 查詢); puts( *按名稱查詢(2); puts( *按編號(hào)查詢(3); puts( 編輯); puts( *查詢名稱編輯信息(4); puts( *查詢編號(hào)編輯信息(5); puts( 統(tǒng)計(jì)); puts( *統(tǒng)計(jì)在職人數(shù)(6); puts( *統(tǒng)計(jì)黨員人數(shù)(7); puts( *統(tǒng)計(jì)女工人數(shù)(8); puts( *統(tǒng)計(jì)碩士以上學(xué)歷人數(shù)(9); puts( *統(tǒng)計(jì)副教授以上職稱人數(shù)(10); puts( 排序); puts( *按年齡進(jìn)行排序(11); puts( *按來(lái)院時(shí)間進(jìn)行排序(12); puts( 保存); puts( *將輸入的記錄進(jìn)行保存(13); puts( 退出); puts( *退出(14); printf(請(qǐng)輸入選項(xiàng)號(hào): ); scanf(%d,&n); switch(n) case 0:browse();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:sortlysj();break; case 13:save();break; case 14:return; default: printf(輸入錯(cuò)誤); while(1);2、 各功能設(shè)計(jì)模塊(0) 瀏覽模塊該模塊的功能是顯示文件的所有信息,流程圖如下顯示所有信息按任意鍵顯示下一屏按任意鍵繼續(xù)程序void browse() 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 %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當(dāng)前文件內(nèi)容是:nn); for(j=0;ji;j+) 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); fclose(fp); printf(n); printf(nnnpress any key to continuennn); getchar(); printf(n);(1) 刪除模塊該模塊的功能是根據(jù)編號(hào)刪除記錄的信息,刪除空行,后面的前移,瀏覽。流程圖如下開(kāi)始輸入要?jiǎng)h除記錄的編號(hào)是否找到記錄?顯示沒(méi)有找到刪除記錄YN程序void dele() int i=0,j,k=0; char num10; printf(請(qǐng)輸入您要?jiǎng)h除的記錄的編號(hào): ); 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.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;ji;j+) if(strcmp(perj.num,num)!=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ù)名字查詢記錄。流程如下開(kāi)始輸入要查詢記錄的名字是否找到記錄?顯示沒(méi)有找到顯示記錄YN程序void searname() int i=0,j,k=0; char name8; printf(請(qǐng)輸入您要查詢的記錄的姓名: ); 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.sex,&peri.age,peri.zhiwu,&peri.zhiche,peri.zzmm,&peri.zgxl,peri.rzsj,&peri.lysj,peri.rylb); i+; printf(您要的信息如下:n); for(j=0;ji;j+) if(strcmp(,name)=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); k+; if(k=0) printf(沒(méi)有您要的信息); return; fclose(fp); browse(); printf(); getchar();(3) 按編號(hào)查詢模塊該模塊功能是根據(jù)記錄編號(hào)查詢記錄。流程路如下開(kāi)始輸入要查詢記錄的編號(hào)是否找到記錄?顯示沒(méi)有找到顯示記錄YN(4)程序void searnum() int i=0,j,k=0; char num10; printf(請(qǐng)輸入您要查詢的記錄的編號(hào): ); 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.zzmm,&peri.zgxl,peri.rzsj,&peri.lysj,peri.rylb); i+; printf(您要的信息如下:n); for(j=0;ji;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); k+; if(k=0) printf(沒(méi)有您要的信息); return; fclose(fp); browse(); printf(); getchar();(5) 查詢名稱編輯模塊該模塊先根據(jù)名字查找記錄,然后修改記錄。流程圖如下開(kāi)始輸入要查詢記錄的名字是否找到記錄?顯示沒(méi)有找到輸入對(duì)應(yīng)要修改項(xiàng)的數(shù)字YN輸入修改后的值程序void channame() int i=0,j,k; char name8; printf(請(qǐng)輸入您要編輯的記錄的姓名: ); scanf(%s,name); 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.zzmm,&peri.zgxl,peri.rzsj,&peri.lysj,peri.rylb); i+; fclose(fp); trim(); if(fp=fopen(renshi.txt,w)=NULL) printf(cannot open this filen); return; printf(請(qǐng)輸入您要修改的項(xiàng)所對(duì)應(yīng)的數(shù)字:(編號(hào)對(duì)應(yīng)的數(shù)字為1,其他項(xiàng)依次為2,3,4.); scanf(%d,&k); printf(請(qǐng)輸入這一項(xiàng)修改后的值); for(j=0;ji;j+) if(strcmp(,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);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(輸入錯(cuò)誤); for(j=0;ji;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) 查詢編號(hào)編輯信息模塊該模塊是先根據(jù)記錄的編號(hào)查詢記錄,而后編輯記錄。流程圖如下程序void channum()開(kāi)始輸入要查詢記錄的編號(hào)是否找到記錄?顯示沒(méi)有找到輸入對(duì)應(yīng)要修改項(xiàng)的數(shù)字YN輸入修改后的值 int i=0,j,k; char num10; printf(請(qǐng)輸入您要編輯的記錄的編號(hào): ); 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.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(請(qǐng)輸入您要修改的項(xiàng)所對(duì)應(yīng)的數(shù)字:(編號(hào)對(duì)應(yīng)的數(shù)字為1,其他項(xiàng)依次為2,3,4.); scanf(%d,&k); printf(請(qǐng)輸入這一項(xiàng)修改后的值); for(j=0;ji;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; case 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:scanf(%d,&perj.lysj);break; case 11:scanf(%s,perj.rylb);break; case 12:return; default:printf(輸入錯(cuò)誤); for(j=0;ji;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();(7) 根據(jù)在職人數(shù)進(jìn)行統(tǒng)計(jì)模塊開(kāi)始判斷人員是否在職把在職人員相加完成程序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 %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(這是一個(gè)空文件); return; printf(在職人員數(shù)量是%d人n,i); for(j=0;ji;j+) 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); fclose(fp); trim(); browse(); printf(); getchar();(7)根據(jù)黨員人數(shù)進(jìn)行統(tǒng)計(jì)模塊程序void sumdyrs() 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,&peri.zhiche,peri.zzmm,&peri.zgxl,peri.rzsj,&peri.lysj,peri.rylb); i+; if(i=0) printf(這是一個(gè)空文件); return; for(j=0;ji;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(); printf(); getchar();(8)根據(jù)女工人數(shù)進(jìn)行統(tǒng)計(jì)模塊程序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.age,peri.zhiwu,&peri.zhiche,peri.zzmm,&peri.zgxl,peri.rzsj,&peri.lysj,peri.rylb); i+; if(i=0) printf(這是一個(gè)空文件); return; for(j=0;ji;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,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ù)碩士以上學(xué)歷人數(shù)進(jìn)行統(tǒng)計(jì)模塊void sumssysxlrs() 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,&peri.zhiche,peri.zzmm,&peri.zgxl,peri.rzsj,&peri.lysj,peri.rylb); i+; if(i=0) printf(這是一個(gè)空文件); return; for(j=0;j=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(碩士以上學(xué)歷人數(shù)是%d人,count); trim(); browse(); printf(); getchar();(10)根據(jù)副教授以上職稱人數(shù)進(jìn)行統(tǒng)計(jì)模塊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,&peri.zhiche,peri.zzmm,&peri.zgxl,peri.rzsj,&peri.lysj,peri.rylb); i+; if(i=0) printf(這是一個(gè)空文件); return; for(j=0;j=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,perj.rzsj,perj.lysj,perj.rylb); count+; fclose(fp); printf(副教授以上學(xué)歷人數(shù)是%d人,count); trim(); browse(); printf(); getchar();(11)按年齡進(jìn)行排序模塊該模塊的功能是根據(jù)年齡排序。流程圖排序開(kāi)始用選擇法排序保存結(jié)束程序void sortage() 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(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;ji;j+) for(k=0;kperk.age) a=perk; perk=perj;perj=a; for(j=0;ji;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();(12)按來(lái)院時(shí)間進(jìn)行排序模塊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(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;ji;j+) for(k=0;kperk.lysj) a=perk; perk=perj;perj=a; for(j=0;ji;j+) fprintf(fp,%s %s %s %d

溫馨提示

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

評(píng)論

0/150

提交評(píng)論