




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、湖 北 師 范 學(xué) 院 計 科 院C語言課程設(shè)計報告題目: 職工工作量統(tǒng)計系統(tǒng) 完成人: 趙天宇、梁可 學(xué)號: 批閱人: 夏 端 峰 2014年6月15日目錄一、課程設(shè)計的目的與意義2二、總體設(shè)計思路2三、詳細(xì)設(shè)計31、模塊功能介紹3(1)、菜單設(shè)計3(2)、輸入職工基本信息4(3)、工作量輸入并累加4(4)、職工按照量化得分排序5(5)、查詢、修改或刪除某工號人員信息6(6)、信息瀏覽功能7(7)、信息查詢功能詳細(xì)8(8)、信息修改功能詳細(xì)9(9)、信息刪除功能9四、各功能實現(xiàn)后的展示101、菜單界面:112、職工信息輸入界面113、職工信息瀏覽界面124、按量化得分排序后界面125、查詢職
2、工信息功能界面126、修改職工信息界面137、刪除職工信息功能界面138、工作量累加界面14五、附錄一141、程序清單14六、附錄二:小組分工40一、 課程設(shè)計的目的與意義作為一門課程,通過課程設(shè)計的實踐環(huán)節(jié)的教學(xué),可以加深對課堂所學(xué)基礎(chǔ)知識的掌握與理解,提高所學(xué)內(nèi)容的綜合運用能力;同時也可以通過查詢相關(guān)資料,培養(yǎng)學(xué)生自學(xué)能力、接受新知識的能力,提高學(xué)習(xí)興趣;增強學(xué)生程序設(shè)計能力,掌握編程技巧,并可培養(yǎng)學(xué)生實際上機調(diào)試程序的能力?!袄碚撆c實踐”相結(jié)合,使學(xué)生得到很好的鍛煉,為以后學(xué)習(xí)、工作打下堅實的基礎(chǔ)。作為學(xué)生,我們可以通過查閱相關(guān)資料,編寫相關(guān)程序來增加自己的編程經(jīng)驗,強化自己的自主學(xué)習(xí)能
3、力,強化自身的編程實踐能力,掌握一定的軟件開發(fā)流程。二、 總體設(shè)計思路設(shè)計框圖如下:職工工作量統(tǒng)計系統(tǒng)菜單設(shè)計錄入職工信息工作量輸入查詢職工信息職工信息按量化得分排序職工信息的刪除瀏覽職工信息結(jié)束程序三、 詳細(xì)設(shè)計1、 模塊功能介紹(1)、菜單設(shè)計菜單界面大致設(shè)計為:職工工作量統(tǒng)計系統(tǒng)1、 職工基本信息錄入;2、 工作量累加;3、 按照量化得分排序;4、 刪除某職工信息;5、 瀏覽所有員工信息表;6、 查詢莫員工信息;7、 修改某員工信息;8、 結(jié)束程序,將數(shù)據(jù)寫入文件。(2)、輸入職工基本信息設(shè)計框圖如下:是否(3)、工作量輸入并累加設(shè)計框圖如下:(4)、職工按照量化得分排序設(shè)計框圖如下:(
4、5)、查詢、修改或刪除某工號人員信息具體的設(shè)計框圖如下:(6)、信息瀏覽功能設(shè)計框圖如下:(7)、信息查詢功能詳細(xì)設(shè)計框圖如下:(8)、信息修改功能詳細(xì)設(shè)計框圖如下:(9)、信息刪除功能設(shè)計框圖如下:四、 各功能實現(xiàn)后的展示1、 菜單界面:2、 職工信息輸入界面3、 職工信息瀏覽界面4、 按量化得分排序后界面5、 查詢職工信息功能界面6、 修改職工信息界面7、 刪除職工信息功能界面可見相比較于剛才,刪去了4號職工張亮。8、 工作量累加界面可以看到2號職工趙天宇的工作量直接累加上了五、 附錄一1、 程序清單2、 #include<stdio.h>3、 #include<stdl
5、ib.h>4、 #include<string.h>5、 #define FILENAME "d:worker.bin"6、 #define N 1007、 struct worker8、 9、 int empnum; /*工號*/10、 char name20; /*姓名*/11、 char sex5; /*性別*/12、 char birthday30; /*生日*/13、 char Dep20; /*系別*/14、 int age; /*年齡*/15、 double Teachworkload; /*教育工作量*/16、 double Scientf
6、icworkload; /*科研工作量*/17、 double Qscore; /*量化得分*/18、 int grade; /*該員工的排名名次*/19、 char Position30; /*職稱*/20、 ;21、 /* 22、 定義23、 */24、 void xinxi()25、 26、 printf("n+n");27、 printf("+ 職工工作量統(tǒng)計系統(tǒng) +n");28、 printf("+ +n");29、 printf("+ 1. 職工基本信息輸入 +n");30、 printf("
7、+ +n");31、 printf("+ 2. 工作量累加 +n");32、 printf("+ +n");33、 printf("+ 3. 按照量化得分排序 +n");34、 printf("+ +n");35、 printf("+ 4. 刪除某職工信息 +n");36、 printf("+ +n");37、 printf("+ 5.瀏覽所有員工信息表 +n");38、 printf("+ +n");39、 printf(&
8、quot;+ 6.查詢某員工信息 +n");40、 printf("+ +n");41、 printf("+ 7.修改某員工信息 +n");42、 printf("+ +n");43、 printf("+ 8. 結(jié)束程序,將數(shù)據(jù)寫入文件 +n");44、 printf("+n");45、 46、 /* 47、 顯示菜單48、 */49、 void Qscore1(struct worker w,int length)50、 51、 int i=0,sum1=0,sum2=0;52、 f
9、or(i=0;i<length;i+)53、 54、 sum1+=wi.Teachworkload;55、 sum2+=wi.Scientficworkload;56、 57、 /return wj.Qscore=(wj.Scientficworkload/sum2)*(1/2)+(wj.Teachworkload/sum1)*(1/2);58、 for(i=0;i<length;i+)59、 60、 wi.Qscore=wi.Scientficworkload/sum2*0.5+wi.Teachworkload/sum1*0.5;61、 62、 63、 /*64、 計算量化得分6
10、5、 */66、 int readFromFile(struct worker w)67、 68、 FILE *fp=NULL;69、 int i=0; /*i用來循環(huán)判斷人數(shù)*/70、71、 fp=fopen(FILENAME,"rb"); /*打開文件,文件指針指向內(nèi)部數(shù)據(jù)*/72、73、 if(fp!=NULL)74、 75、76、 while(!feof(fp) /*從文件中讀入工作人員*/77、 78、 79、 if(i>=N) /*如果溢出,則跳出文件*/80、 break;81、 if(fread(w+i,sizeof(worker),1,fp)=1)8
11、2、 i+;83、 84、85、 fclose(fp); /*關(guān)閉文件*/86、 87、 return i;88、 89、 /* 90、 信息顯示到屏幕91、 */92、 int f(struct worker w,int length)93、 94、 int i=length,j=0,flag=1; /*i用來表示已經(jīng)錄入過信息的人數(shù)*/95、 while(i<N)96、 97、 printf("第%d個職工n",i+1); /*顯示下一個需要輸入信息的員工是第幾個員工*/ 98、 printf("n");99、 printf("請你輸
12、入工號(以職工號為0結(jié)束輸入):n)"); /*輸入職工號信息*/100、 scanf("%d",&wi.empnum);101、 if(wi.empnum=0) break;102、 printf("n");103、 printf("n");104、 for(j=0;j<length;j+)105、 106、 if(wj.empnum=wi.empnum) 107、 108、 flag=0;109、 printf("該職工號人員已經(jīng)存在,請重新輸入");110、 111、 112、 if(
13、flag=0) break; /*如果職工已經(jīng)存在那么跳出程序*/113、 printf("請你輸入該員工的姓名:n"); /*開始輸入該員工的各類基本信息*/114、 scanf("%s",&);115、 printf("請你輸入該員工的性別:n");116、 scanf("%s",&wi.sex);117、 printf("請輸入該員工的年齡:n");118、 scanf("%d",&wi.age);119、 printf("
14、;請輸入該員工的出生年月日(格式1995/03/23):n");120、 scanf("%s",&wi.birthday);121、 printf("請輸入該員工的系別:n");122、 scanf("%s",&wi.Dep);123、 printf("請你輸入該員工的教育工作量(單位:小時):n");124、 scanf("%lf",&wi.Teachworkload);125、 printf("n");126、 printf("
15、請你輸入該員工的科研工作量(單位:小時):n");127、 scanf("%lf",&wi.Scientficworkload);128、 /printf("請你輸入該員工的量化的分(單位:分)",wi.Qscore);129、 /scanf("%d",&wi.Qscore);130、 printf("請你輸入該員工的職位:n");131、 scanf("%s",&wi.Position);132、 printf("n");133、 i+;1
16、34、 135、 Qscore1(w,length);136、 return i;137、 138、 /* 139、 功能:輸入職工基本信息 140、 */141、 void input(struct worker w,int length)142、 143、 int i=1,empnum;/*i用來尋找需要累加工作量的員工*/144、 double Scientficworkload,Teachworkload;145、 printf("請輸入工號:n"); /*用來查找某位工人*/146、 scanf("%d",&empnum);147、 i
17、f(empnum=0) 148、 149、 printf("輸入錯誤請重新輸入");150、 getchar();151、 scanf("%d",&empnum);152、 153、 else154、 155、 printf("請輸入新完成教育工作量(單位:小時,無增加請?zhí)?):n"); /*輸入各類新增工作量*/156、 getchar();157、 scanf("%lf",&Teachworkload);158、 printf("請輸入新完成的科研工作量(單位:小時,無增加請?zhí)?):n
18、");159、 getchar();160、 scanf("%lf",&Scientficworkload);161、 /printf("請輸入所需要增加的量化得分(單位:分,無增加請?zhí)?):n");162、 /getchar();163、 /scanf("%d",&Qscore);164、 for(i=0;i<length;i+) /*循環(huán)尋找該職工號是否存在文件中*/165、 166、 if(wi.empnum=empnum) /*找到該員工存在,則累加新增工作量*/167、 168、 wi.Sci
19、entficworkload+=Scientficworkload;169、 wi.Teachworkload+=Teachworkload;170、 break;171、 172、 173、 if(i>=length) /*如果員工不存在,提示重新輸入工號*/174、 175、 printf("工號不存在:n");176、 printf("請輸入工號:n");177、 scanf("%d",&empnum);178、 179、 Qscore1(w,length);180、 181、 182、 /* 183、 功能:工作
20、量輸入并累加 184、 */185、 void sortQscore(struct worker w,int length) /*選擇法對量化得分進行排序*/186、 187、 int i=0,j=0,k=0;188、 struct worker s; /*結(jié)構(gòu)體temp轉(zhuǎn)換變量*/189、 for(i=0;i<length;i+) /*選擇法對于量化得分進行排序*/190、 191、 k=i;192、 for(j=i+1;j<length;j+) 193、 194、 if(wj.Qscore>wk.Qscore) k=j;195、 196、 /*交換wi and wk*/1
21、97、 s=wk;198、 wk=wi;199、 wi=s;200、 201、 if(length>0) w0.grade=1; 202、 for(i=1;i<length;i+) /*循環(huán)對于量化得分排序好后的人進行標(biāo)上名次的操作*/203、 204、 if(wi.Qscore=wi-1.Qscore) wi.grade=wi-1.grade;205、 else wi.grade=wi-1.grade+1;206、 207、 printf("名次 工號 姓名 年齡 性別 生日 系別 職稱 教育工作量 科研工作量 量化得分n");/*輸出表頭*/208、 for
22、(i=0;i<length;i+) /*輸出排序之后的職工工作量信息表*/209、 210、 Qscore1(w,length);211、 printf("%dt",wi.grade);212、 printf("%dt",wi.empnum);213、 printf("%st",);214、 printf("%dt",wi.age);215、 printf("%st",wi.sex);216、 printf("%st",wi.birthday);217、
23、printf("%st",wi.Dep);218、 printf("%st",wi.Position);219、 printf("%5.2lft",wi.Teachworkload);220、 printf("%5.2lft",wi.Scientficworkload);221、 printf("%5.2lft",wi.Qscore);222、 printf("n");223、 printf("n");224、 225、 226、 /* 227、 按量化得
24、分從大到小排序并標(biāo)上名次并且輸出排序結(jié)果 228、 */229、 int delet(struct worker w,int length)230、 231、 int i=0,j=0;232、 char choice; /*給用戶來判斷是否刪除*/233、 int empnum; /*所需要刪除職工信息的工號*/234、 printf("請輸入需要刪除的員工職工號:n");235、 scanf("%d",&empnum); /*輸入所需要刪除的職工號*/236、 for(i=0;i<length;i+) /*循環(huán)查找該職工是否存在并輸出該職
25、工工號信息*/237、 238、 if(wi.empnum=empnum)239、 240、 printf("想刪除的職工號為:");241、 printf("%dn",wi.empnum);242、 break;243、 244、 245、 if(i<length)246、 247、 printf("你卻定要刪除這個職工信息嗎?(Y/N)n"); /*輸出讓用戶確實是否刪除*/248、 getchar();249、 scanf("%c",&choice);250、 if(choice='Y&
26、#39;|choice='y')251、 252、 for(j=i;j<length;j+)253、 254、 wj=wj+1;255、 256、 length-; /*刪除之后總?cè)藬?shù)減一*/257、 printf("刪除成功");258、 259、 260、 else printf("n指定員工不存在n");261、 return length;262、 263、 /*264、 按職工號刪除職工信息265、 */266、 void writeToFile(struct worker w,int length) /*數(shù)據(jù)寫入文件的功
27、能函數(shù)*/267、 268、 FILE *fp=NULL; /*設(shè)置文件指針*/269、 int i=0;270、 fp=fopen(FILENAME,"wb"); /*打開文件*/271、 if(fp=NULL) /*打開失敗*/272、 273、 printf("打開文件出錯!n");274、 exit(0);275、 276、 for(i=0;i<length;i+) /*循環(huán)寫入文件每一組結(jié)構(gòu)體數(shù)據(jù)*/277、 fwrite(w+i,sizeof(worker),1,fp); /*寫入每個結(jié)構(gòu)體數(shù)據(jù)*/278、 fclose(fp); /*
28、關(guān)閉文件*/279、280、 281、 /*282、 結(jié)構(gòu)體數(shù)組中的職工信息輸出到文件283、 */284、 void viewworker(struct worker w,int length)285、 286、 int i;287、 Qscore1(w,length);288、 /printf("你確定要瀏覽所有職工信息?(Y/N)");289、 /scanf("%c",&choice);290、 /if(choice='Y'|choice='y') /*確認(rèn)瀏覽信息*/291、 printf("工號
29、 姓名 年齡 性別 生日 系別 職稱 教育工作量 科研工作量 量化得分n");/*輸出表頭*/292、 for(i=0;i<length;i+) /*輸出職工工作量信息表*/293、 294、 printf("%dt",wi.empnum);295、 printf("%st",);296、 printf("%dt",wi.age);297、 printf("%st",wi.sex);298、 printf("%st",wi.birthday);299、 printf
30、("%st",wi.Dep);300、 printf("%st",wi.Position);301、 printf("%5.2lft",wi.Teachworkload);302、 printf("%5.2lft",wi.Scientficworkload);303、 printf("%5.2lft",wi.Qscore);304、 printf("n");305、 printf("n");306、 307、 308、 void Seek(struct w
31、orker w,int length)309、 310、 int i;311、 char Dep20;312、 printf("請輸入你想要查詢信息職工的系別或者職稱:n");313、 scanf("%s",&Dep);314、 /*if(empnum=0) 315、 316、 printf("輸入錯誤,請重新輸入:n");317、 scanf("%d",&empnum);318、 */319、 for(i=0;i<length;i+)320、 321、 if(strcmp(wi.Dep,De
32、p)=0)322、 323、 printf("該系別員工的信息如下:n");324、 for(i=0;i<length;i+) /*搜尋員工信息*/325、 326、 if(strcmp(wi.Dep,Dep)=0) /*判斷是否是系別查詢*/327、 328、 printf("工號姓名年齡性別生日系別職稱教育工作量科研工作量量化得分n");/*輸出表頭*/329、 printf("%dt",wi.empnum);330、 printf("%st",);331、 printf("%dt
33、",wi.age);332、 printf("%st",wi.sex);333、 printf("%st",wi.birthday);334、 printf("%st",wi.Dep);335、 printf("%st",wi.Position);336、 printf("%5.2lft",wi.Teachworkload);337、 printf("%5.2lft",wi.Scientficworkload);338、 printf("%5.2lft&q
34、uot;,wi.Qscore);339、 printf("n");340、 printf("n");341、 342、 343、 344、 if(strcmp(wi.Position,Dep)=0)/*判斷是否是職稱查詢*/345、 346、 for(i=0;i<length;i+)347、 348、 if(strcmp(wi.Position,Dep)=0)349、 350、 printf("工號姓名年齡性別生日系別職稱教育工作量科研工作量量化得分n");/*輸出表頭*/351、 printf("%dt",
35、wi.empnum);352、 printf("%st",);353、 printf("%dt",wi.age);354、 printf("%st",wi.sex);355、 printf("%st",wi.birthday);356、 printf("%st",wi.Dep);357、 printf("%st",wi.Position);358、 printf("%5.2lft",wi.Teachworkload);359、 printf(
36、"%5.2lft",wi.Scientficworkload);360、 printf("%5.2lft",wi.Qscore);361、 printf("n");362、 printf("n");363、 364、 365、 366、 /if(strcmp(wi.Position,Dep)!=0&&strcmp(wi.Dep,Dep)!=0) printf("輸入錯誤!");break;367、 368、 369、 void modify(struct worker w,int
37、 length)370、 371、 int i,empnum;372、 char choice;373、 printf("請問你所需要修改信息的職員工號是多少?n");374、 scanf("%d",&empnum);375、 printf("請問你是否需要修改該員工的信息?:(Y/N)");376、 getchar();377、 scanf("%c",&choice);378、 if(choice='y'|choice='Y')379、 380、 for(i=0;i
38、<length;i+)381、 382、 if(wi.empnum=empnum)383、 384、 printf("請你輸入該員工的姓名:n"); /*開始修改該員工的各類基本信息*/385、 scanf("%s",&);386、 printf("請你輸入該員工的性別:n");387、 scanf("%s",&wi.sex);388、 printf("請輸入該員工的年齡:n");389、 scanf("%d",&wi.age);3
39、90、 printf("請輸入該員工的出生年月日(格式1995/03/23):n");391、 scanf("%s",&wi.birthday);392、 printf("請輸入該員工的系別:n");393、 scanf("%s",&wi.Dep);394、 printf("請你輸入該員工的教育工作量(單位:小時):n");395、 scanf("%lf",&wi.Teachworkload);396、 printf("n");39
40、7、 printf("請你輸入該員工的科研工作量(單位:小時):n");398、 scanf("%lf",&wi.Scientficworkload);399、 /printf("請你輸入該員工的量化的分(單位:分)",wi.Qscore);400、 /scanf("%d",&wi.Qscore);401、 printf("請你輸入該員工的職位:n");402、 scanf("%s",&wi.Position);403、 printf("n&
41、quot;);404、 405、 else if(i>=length) printf("該職工號不存在!");406、 407、 printf("修改信息后的該員工信息為:n");408、 Qscore1(w,length);409、 for(i=0;i<length;i+)410、 411、 if(wi.empnum=empnum) 412、 413、 printf("該員工的信息如下:n");414、 printf("工號姓名年齡性別生日系別職稱教育工作量科研工作量量化得分n");/*輸出表頭*/415、 printf("%dt",wi.empnum);4
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024稅務(wù)師備考計劃試題及答案
- 明確目標(biāo):珠寶鑒定師考試試題及答案
- 2024年省考公務(wù)員重要法規(guī)試題及答案
- 高三二調(diào)物理試題及答案
- 證券投資實務(wù)題庫1-11章習(xí)題答案全書章節(jié)練習(xí)題測試題思考題答案含原題
- 中國人民公安大學(xué)《公共藝術(shù)品設(shè)計》2023-2024學(xué)年第一學(xué)期期末試卷
- 針灸的基本理論
- 2025屆安徽省銅陵一中、池州一中、浮山中學(xué)高三語文試題二模試題含解析
- 福建省尤溪縣2025年高三第六次診斷考試歷史試題試卷含解析
- 工廠試題判斷題及答案
- 常見惡性心律失常的護理
- 浙江省杭州市金麗衢十二校2024-2025學(xué)年高三下學(xué)期(3月)第二次聯(lián)考數(shù)學(xué)試題 含解析
- 2025年1月浙江省高考物理試卷(含答案)
- 天然氣站租賃合同
- 【公開課】同一直線上二力的合成+課件+2024-2025學(xué)年+人教版(2024)初中物理八年級下冊+
- DL∕T 5161.8-2018 電氣裝置安裝工程質(zhì)量檢驗及評定規(guī)程 第8部分:盤、柜及二次回路接線施工質(zhì)量檢驗
- (正式版)HGT 22820-2024 化工安全儀表系統(tǒng)工程設(shè)計規(guī)范
- (2024年)橋梁施工質(zhì)量控制要點
- 2024年全國初中數(shù)學(xué)聯(lián)賽試題及答案(修正版)
- NB-T 47013.15-2021 承壓設(shè)備無損檢測 第15部分:相控陣超聲檢測
- 《數(shù)據(jù)庫驗收規(guī)定》word版
評論
0/150
提交評論