




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、.湖 北 師 范 學 院 計 科 院C語言課程設(shè)計報告題目: 職工工作量統(tǒng)計系統(tǒng) 完成人: 趙天宇、梁可 學號: 2 2 批閱人: 夏 端 峰 2014年6月15日目錄一、課程設(shè)計的目的與意義2二、總體設(shè)計思路2三、詳細設(shè)計31、模塊功能介紹3(1)、菜單設(shè)計3(2)、輸入職工基本信息4(3)、工作量輸入并累加4(4)、職工按照量化得分排序5(5)、查詢、修改或刪除某工號人員信息6(6)、信息瀏覽功能7(7)、信息查詢功能詳細8(8)、信息修改功能詳細9(9)、信息刪除功能9四、各功能實現(xiàn)后的展示101、菜單界面:112、職工信息輸入界面113、職工信息瀏覽界面124、按量化得分排序后界面12
2、5、查詢職工信息功能界面126、修改職工信息界面137、刪除職工信息功能界面138、工作量累加界面14五、附錄一141、程序清單14六、附錄二:小組分工40一、 課程設(shè)計的目的與意義作為一門課程,通過課程設(shè)計的實踐環(huán)節(jié)的教學,可以加深對課堂所學基礎(chǔ)知識的掌握與理解,提高所學內(nèi)容的綜合運用能力;同時也可以通過查詢相關(guān)資料,培養(yǎng)學生自學能力、接受新知識的能力,提高學習興趣;增強學生程序設(shè)計能力,掌握編程技巧,并可培養(yǎng)學生實際上機調(diào)試程序的能力。“理論與實踐”相結(jié)合,使學生得到很好的鍛煉,為以后學習、工作打下堅實的基礎(chǔ)。作為學生,我們可以通過查閱相關(guān)資料,編寫相關(guān)程序來增加自己的編程經(jīng)驗,強化自己的
3、自主學習能力,強化自身的編程實踐能力,掌握一定的軟件開發(fā)流程。二、 總體設(shè)計思路設(shè)計框圖如下:職工工作量統(tǒng)計系統(tǒng)菜單設(shè)計錄入職工信息工作量輸入查詢職工信息職工信息按量化得分排序職工信息的刪除瀏覽職工信息結(jié)束程序三、 詳細設(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)、信息查詢功能詳細設(shè)計框圖如下:(8)、信息修改功能詳細設(shè)計框圖如下:(9)、信息刪除功能設(shè)計框圖如下:四、 各功能實現(xiàn)后的展示1、 菜單界面:2、 職工信息輸入界面3、 職工信息瀏覽界面4、 按量化得分排序后界面5、 查詢職工信息功能界面6、 修改職工信息界面7、 刪除職工信息功能界面可見相比較于剛才,刪去了4號職工張亮。8、 工作量累加界面可以看到2號職工趙天宇的工作量直接累加上了五、 附錄一1、 程序清單2、 #include3、 #include4、 #include5、 #def
5、ine d:worker.bin6、 #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 Scientficworkload; /*科研工作量*/17、 double Qscore; /*量化得分*/18、 int grade;
6、/*該員工的排名名次*/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(+ +n);31、 printf(+ 2. 工作量累加 +n);32、 printf(+ +n);33、 printf(+ 3. 按照量化得分排序 +n);34、 printf(+ +n);35、 printf(+ 4. 刪除某職工信
7、息 +n);36、 printf(+ +n);37、 printf(+ 5.瀏覽所有員工信息表 +n);38、 printf(+ +n);39、 printf(+ 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,sum
8、2=0;52、 for(i=0;ilength;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=N) /*如果溢出,則跳出文件*/80、 break;81、 if(fread(w+i,sizeof(worker),1,fp)=1)82、 i+;83、 84、85、 fclose(fp); /*關(guān)閉文件*/86
9、、 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(iN)96、 97、 printf(第%d個職工n,i+1); /*顯示下一個需要輸入信息的員工是第幾個員工*/ 98、 printf(n);99、 printf(請你輸入工號(以職工號為0結(jié)束輸入):n); /*輸入職工號信息*/100、 scanf(%d,&wi.empnum);101、 if(wi.empnu
10、m=0) break;102、 printf(n);103、 printf(n);104、 for(j=0;jlength;j+)105、 106、 if(wj.empnum=wi.empnum) 107、 108、 flag=0;109、 printf(該職工號人員已經(jīng)存在,請重新輸入);110、 111、 112、 if(flag=0) break; /*如果職工已經(jīng)存在那么跳出程序*/113、 printf(請你輸入該員工的姓名:n); /*開始輸入該員工的各類基本信息*/114、 scanf(%s,&);115、 printf(請你輸入該員工的性別:n);116、 sca
11、nf(%s,&wi.sex);117、 printf(請輸入該員工的年齡:n);118、 scanf(%d,&wi.age);119、 printf(請輸入該員工的出生年月日(格式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(請你輸入該員工的科研工作量(單位:小時):n
12、);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+;134、 135、 Qscore1(w,length);136、 return i;137、 138、 /* 139、 功能:輸入職工基本信息 140、 */141、 void input(struct worker w,in
13、t length)142、 143、 int i=1,empnum;/*i用來尋找需要累加工作量的員工*/144、 double Scientficworkload,Teachworkload;145、 printf(請輸入工號:n); /*用來查找某位工人*/146、 scanf(%d,&empnum);147、 if(empnum=0) 148、 149、 printf(輸入錯誤請重新輸入);150、 getchar();151、 scanf(%d,&empnum);152、 153、 else154、 155、 printf(請輸入新完成教育工作量(單位:小時,無增加請?zhí)?):n); /
14、*輸入各類新增工作量*/156、 getchar();157、 scanf(%lf,&Teachworkload);158、 printf(請輸入新完成的科研工作量(單位:小時,無增加請?zhí)?):n);159、 getchar();160、 scanf(%lf,&Scientficworkload);161、 /printf(請輸入所需要增加的量化得分(單位:分,無增加請?zhí)?):n);162、 /getchar();163、 /scanf(%d,&Qscore);164、 for(i=0;i=length) /*如果員工不存在,提示重新輸入工號*/174、 175、 printf(工號不存在:n
15、);176、 printf(請輸入工號:n);177、 scanf(%d,&empnum);178、 179、 Qscore1(w,length);180、 181、 182、 /* 183、 功能:工作量輸入并累加 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;ilength;i+) /*選擇法對于量化得分進行排序*/190、 191、 k=i;
16、192、 for(j=i+1;jwk.Qscore) k=j;195、 196、 /*交換wi and wk*/197、 s=wk;198、 wk=wi;199、 wi=s;200、 201、 if(length0) w0.grade=1; 202、 for(i=1;ilength;i+) /*循環(huán)對于量化得分排序好后的人進行標上名次的操作*/203、 204、 if(wi.Qscore=wi-1.Qscore) wi.grade=wi-1.grade;205、 else wi.grade=wi-1.grade+1;206、 207、 printf(名次 工號 姓名 年齡 性別 生日 系別 職
17、稱 教育工作量 科研工作量 量化得分n);/*輸出表頭*/208、 for(i=0;ilength;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、 printf(%st,wi.Dep);218、 printf(%st,wi.P
18、osition);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、 按量化得分從大到小排序并標上名次并且輸出排序結(jié)果 228、 */229、 int delet(struct worker w,int length)230、 231、 int i=0,j=0;232、 char choice; /*給用戶來判斷是否刪除*
19、/233、 int empnum; /*所需要刪除職工信息的工號*/234、 printf(請輸入需要刪除的員工職工號:n);235、 scanf(%d,&empnum); /*輸入所需要刪除的職工號*/236、 for(i=0;ilength;i+) /*循環(huán)查找該職工是否存在并輸出該職工工號信息*/237、 238、 if(wi.empnum=empnum)239、 240、 printf(想刪除的職工號為:);241、 printf(%dn,wi.empnum);242、 break;243、 244、 245、 if(ilength)246、 247、 printf(你卻定要刪除這個職
20、工信息嗎?(Y/N)n); /*輸出讓用戶確實是否刪除*/248、 getchar();249、 scanf(%c,&choice);250、 if(choice=Y|choice=y)251、 252、 for(j=i;jlength;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 writeTo w
21、orker w,int length) /*數(shù)據(jù)寫入文件的功能函數(shù)*/267、 268、 FILE *fp=NULL; /*設(shè)置文件指針*/269、 int i=0;270、 fp=fopen(,wb); /*打開文件*/271、 if(fp=NULL) /*打開失敗*/272、 273、 printf(打開文件出錯!n);274、 exit(0);275、 276、 for(i=0;ilength;i+) /*循環(huán)寫入文件每一組結(jié)構(gòu)體數(shù)據(jù)*/277、 fwrite(w+i,sizeof(worker),1,fp); /*寫入每個結(jié)構(gòu)體數(shù)據(jù)*/278、 fclose(fp); /*關(guān)閉文件*/
22、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) /*確認瀏覽信息*/291、 printf(工號 姓名 年齡 性別 生日 系別 職稱 教育工作量 科研工作量 量化得分n);/*輸出表頭*/292、 for(i=0;il
23、ength;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(%st,wi.Dep);300、 printf(%st,wi.Position);301、 printf(%5.2lft,wi.Teachworkload);302、 printf(%5.2lft,wi.Scientficworkload);303、 prin
24、tf(%5.2lft,wi.Qscore);304、 printf(n);305、 printf(n);306、 307、 308、 void Seek(struct worker 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;ilength;i+)320、
25、 321、 if(strcmp(wi.Dep,Dep)=0)322、 323、 printf(該系別員工的信息如下:n);324、 for(i=0;ilength;i+) /*搜尋員工信息*/325、 326、 if(strcmp(wi.Dep,Dep)=0) /*判斷是否是系別查詢*/327、 328、 printf(工號姓名年齡性別生日系別職稱教育工作量科研工作量量化得分n);/*輸出表頭*/329、 printf(%dt,wi.empnum);330、 printf(%st,);331、 printf(%dt,wi.age);332、 printf(%st,wi.sex);
26、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,wi.Qscore);339、 printf(n);340、 printf(n);341、 342、 343、 344、 if(strcmp(wi.Position,Dep)=0)/*判斷是否是職稱查詢*/345、 346、 for(i
27、=0;ilength;i+)347、 348、 if(strcmp(wi.Position,Dep)=0)349、 350、 printf(工號姓名年齡性別生日系別職稱教育工作量科研工作量量化得分n);/*輸出表頭*/351、 printf(%dt,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、 prin
28、tf(%5.2lft,wi.Teachworkload);359、 printf(%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 length)370、 371、 int i,empn
29、um;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=length) printf(該職工號不存在!);406、 407、 printf(修改信息后的該員工信息為:n);408、 Qscore1(w,length);409、 for(i=0;ilength;i+
30、)410、 411、 if(wi.empnum=empnum) 412、 413、 printf(該員工的信息如下:n);414、 printf(工號姓名年齡性別生日系別職稱教育工作量科研工作量量化得分n);/*輸出表頭*/415、 printf(%dt,wi.empnum);416、 printf(%st,);417、 printf(%dt,wi.age);418、 printf(%st,wi.sex);419、 printf(%st,wi.birthday);420、 printf(%st,wi.Dep);421、 printf(%st,wi.Position);422、 printf(%5.2lft
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年心血管系統(tǒng)用藥項目建議書
- 家庭廚余垃圾簡易生物降解系統(tǒng)
- 民房建筑施工合同
- 環(huán)保行業(yè)廢棄物處理風險免責協(xié)議
- 智慧社區(qū)建設(shè)投資合作合同
- 2025年液壓破碎錘項目發(fā)展計劃
- Glycycoumarin-Standard-生命科學試劑-MCE
- 2025年紡織片梭織機項目建議書
- 網(wǎng)絡(luò)安全技術(shù)培訓服務(wù)合同書
- 1S-2S-2-PCCA-hydrochloride-生命科學試劑-MCE
- 2025年春季學期學校全面工作安排表
- 2024年四川綿陽初中學業(yè)水平考試英語試卷真題(含答案詳解)
- 光伏施工安全培訓課件
- 消防員證考試題庫2000題中級
- 部編人教版小學4四年級《道德與法治》下冊全冊教案
- 廣東省會計師事務(wù)所審計服務(wù)收費標準表
- 參觀河南省博物院
- 新人教版九年級全一冊物理知識點填空題匯編
- 剪力墻、樓板開洞專項施工方案
- 辦好高水平民辦高中的哲學思考-教育文檔
- 婚禮主持詞:農(nóng)村婚禮主持詞
評論
0/150
提交評論