C語言課程設(shè)計報告職工工資系統(tǒng)管理

上傳人:仙*** 文檔編號:28035785 上傳時間:2021-08-22 格式:DOC 頁數(shù):36 大小:614.52KB
收藏 版權(quán)申訴 舉報 下載
C語言課程設(shè)計報告職工工資系統(tǒng)管理_第1頁
第1頁 / 共36頁
C語言課程設(shè)計報告職工工資系統(tǒng)管理_第2頁
第2頁 / 共36頁
C語言課程設(shè)計報告職工工資系統(tǒng)管理_第3頁
第3頁 / 共36頁

下載文檔到電腦,查找使用更方便

15 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《C語言課程設(shè)計報告職工工資系統(tǒng)管理》由會員分享,可在線閱讀,更多相關(guān)《C語言課程設(shè)計報告職工工資系統(tǒng)管理(36頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、C語言課程設(shè)計報告題 目:職工工資系統(tǒng)管理班 級:統(tǒng)本電信1001班組 名:指導(dǎo)教師:日 期:2011.12.19目 錄附錄1 每周工作記錄附錄2 問題記錄1 需求分析1.1 問題分析1.2 采用技術(shù)1.3 設(shè)計目標(biāo)2 總體設(shè)計2.1 系統(tǒng)流程設(shè)計3 詳細(xì)設(shè)計3.1 添加職工信息3.2 查看職工信息3.3 查找職工信息3.4 刪除職工信息3.5 職工工資排序3.6 統(tǒng)計職工工資3.7 修改職工信息3.8 保存數(shù)據(jù)3.9 退出系統(tǒng)3.10 作者信息4 設(shè)計體會5 參考文獻(xiàn)6 時間安排表7 課程設(shè)計評定表職工工資管理系統(tǒng)1 需求分析1.1 問題分析此程序需要把職工的姓名,工號和工資輸進去,然后根據(jù)

2、需求進行查看,查找,刪除,排序,修改,統(tǒng)計,保存等功能。1.2 采用技術(shù)if語句和switch語句以及嵌套應(yīng)用 , 數(shù)組的定義,指針函數(shù),結(jié)構(gòu)體,函數(shù)調(diào)用以及輸入輸出的方法1.3 設(shè)計目標(biāo)1.熟悉C語言程序的編輯、編譯鏈接和運行的過程。 2.熟練運用if語句和switch語句以及嵌套應(yīng)用。3.學(xué)習(xí)并掌握C語言定義函數(shù)的基本方法、聲明函數(shù)及調(diào)用函數(shù)的方法和過程。4. 掌握文件的概念以及文件的定義方法,認(rèn)識文件打開、關(guān)閉、讀、寫等文件基本操作函數(shù)。5.掌握結(jié)構(gòu)體類型變量、數(shù)組的定義和使用。6. 掌握數(shù)組的定義、引用以及輸入輸出的方法、通過字符數(shù)組存儲字符串,進一步使用字符串。2 總體設(shè)計2.1 系

3、統(tǒng)流程設(shè)計3 詳細(xì)設(shè)計#include #include #include struct workerchar name30;char ID10;int salary1,salary2,salary3;struct worker replace;int dq(struct worker wo);void show();void bc(struct worker wo);void add(); void see();void search();void ghcz();void xmcz();void del();void xmsc();void ghsc();void array();void

4、array_salary1();void array_salary2();void array_salary3() ;void statistics();/統(tǒng)計.void modify();/修改.void ghxg(); void xmxg();void reserve();/儲存.void back();void author();struct worker wo100; /保存所有的職工信息int Number=0; /記錄總的職工人數(shù)void main()int choose=0;while(true) /無限循環(huán). show();/(調(diào)用函數(shù))printf(tt=請選擇:);scan

5、f(%d,&choose);system(cls);/清除界面switch(choose)case 0: exit(0);/退出break; case 1: add();back();/添加職工信息break; case 2: see();back();/查看職工信息break; case 3: search();back();/ 查找職工信息 break;case 4: del(); back();/刪除職工信息break;case 5: array();back();/職工工資排序break;case 6: statistics();back();/統(tǒng)計職工工資break;case 7:

6、modify();back();/修改職工信息break; case 8:reserve();back();/保存數(shù)據(jù) break;case 9:author();back();/作者信息break;default:/(跳出界面)break;fflush(stdin);/stdin指的是標(biāo)準(zhǔn)輸入緩沖區(qū),fflush(stdin)則是刷新標(biāo)準(zhǔn)輸入緩沖區(qū),把輸入緩沖區(qū)里的東西丟棄getchar();system(cls);/清除屏幕信息.int dq(struct worker wo)FILE *fp=NULL;/文件類型指針(FILE)指向文件(*fp)空文件(NULL)int i=0;fp=f

7、open(C:/worker.dat,rb);/打開文件調(diào)用的函數(shù)(fopen) 讀取二進制文件(rb)while(fread(&woi,sizeof(struct worker),1,fp)i+;fclose(fp);/關(guān)閉文件調(diào)用的函數(shù)return i;/返回.循環(huán).void show()printf( .-=-. .-=-. _ .=w=. .- -. n);printf( / /_-_ / / _ /_-./-_ 樂 n);printf( |=/=| |/ (.)(.) | |=/=| | / | |/ o) (o | n);printf( | O O | _ / | -_,_-_,_

8、-. n);printf( /- / :| V( -=- )V /- / :| 者 n);printf( O_:_O (_) :| (_) (_:|_) O_|_O (_) :| (_) n);printf( - - - - - - - - - - n);printf(t v * vnn);printf(t v vn);printf(t v 1 添加職工信息 vn);printf(t v 2 查看職工信息 vn);printf(t v 3 查找職工信息 vn);printf(t v 4 刪除職工信息 vn);printf(t v 5 職工工資排序 vn); printf(t v 6 統(tǒng)計職工工

9、資 vn);printf(t v 7 修改職工信息 vn);printf(t v 8 保 存 數(shù) 據(jù) vn);printf(t v 9 作 者 信 息 vn); printf(t v 0 退 出 系 統(tǒng) vn);printf(t v vnn);void bc(struct worker *wo)FILE *fp=NULL;fp=fopen(C:/worker.dat,ab+);/在文件尾部追加可讀可寫的二進制文件(ab+)fwrite(wo,sizeof(struct worker),1,fp);/寫入二進制文件(fwrite)fclose(fp);3.1添加職工信息void add() in

10、t numberTemp=0;/起臨時作用的變量int i=0;struct worker temp; printf(請輸入要添加職工個數(shù):);scanf(%d,&numberTemp); for(i=0;inumberTemp;i+)printf(輸入第%d個職工信息n,i+1);printf(姓名:);scanf(%s,temp.name); printf(工號:);scanf(%s,temp.ID);printf(基本工資:);scanf(%d,&temp.salary1);printf(職務(wù)工資:);scanf(%d,&temp.salary2);printf(津貼:);scanf(%

11、d,&temp.salary3);woNumber+=temp; /寫入到數(shù)組bc(&temp); /寫入到文件(臨時保存信息)printf(添加成功n);3.2查看職工信息void see() /查看信息. int i=0; printf(tttt以下是全部職工n);printf(nnt姓名tt工號tt基本工資t職務(wù)工資t津貼nn);while(iNumber) printf(-n);printf(t%stt%stt%dtt%dtt%dn,woi.name,woi. ID,woi.salary1,woi.salary2,woi.salary3); i+;printf(-n);3.3查找職工信

12、息void search() int n=0;printf(-n);printf(t*查找職工信息選擇*nn);printf( 1 按姓名查找 nn);printf( 2 按工號查找 nn);printf( 0 退出 nn);printf(-n);printf(nnn);printf( 請輸入你的選擇: nn);scanf(%d,&n);switch(n)case 1: xmcz();break;case 2: ghcz();break; void xmcz()/按姓名查找 char name30;int i=0;printf(請輸入要查找職工姓名:);scanf(%s,name);syste

13、m(cls);printf(nnt姓名tt工號tt基本工資t職務(wù)工資t津貼n);for (i=0;iNumber;i+)if (strcmp(name,woi.name)=0)/比較兩個字符串的大小printf(-n);printf(nt%stt%stt%dtt%dtt%dn,woi.name,woi.ID,woi.salary1,woi.salary2,woi.salary3);printf(-n);void ghcz()/按工號查找 (函數(shù)調(diào)用)char id10;int i=0;printf(請輸入要查找職工工號:);scanf(%s,id);system(cls);/清除屏幕.prin

14、tf(nnt姓名tt工號tt基本工資t職務(wù)工資t津貼n);printf(-n);for (i=0;iNumber;i+)if (strcmp(id,woi.ID)=0)printf(t%stt%stt%dtt%dtt%dn,woi.name,woi.ID,woi.salary1,woi.salary2,woi.salary3);printf(n-n);刪除職工信息3.4刪除職工信息void del() int n=0;printf(-n); printf(t*刪除職工信息選擇*nn);printf( 1 按姓名刪除 nn);printf( 2 按工號刪除 nn);printf( 0 退出 nn

15、);printf(-n);printf(nnn);printf( 請輸入你的選擇: nn);scanf(%d,&n);switch(n)case 1: xmsc();break;case 2: ghsc();break;void xmsc()/按姓名刪除 FILE *fp=NULL;char name30;int i=0;int j=0;printf(請輸入要刪除的職工姓名:);scanf(%s,name);for(i=0;iNumber;i+)if (strcmp(name,woi.name)=0)for (j=i;jNumber-1;j+)woj=woj+1;Number-;/將剩余數(shù)據(jù)寫

16、入文件 擦除以前的數(shù)據(jù)fp=fopen(C:/worker.dat,wb);for (i=0;iNumber;i+)fwrite(&woi,sizeof(struct worker),1,fp);fclose(fp);printf(刪除成功;n);void ghsc()/按工號刪除 FILE *fp=NULL;char id60;int i=0;int j=0;printf(請輸入要刪除的職工工號:);scanf(%s,id);for(i=0;iNumber;i+)if (strcmp(id,woi.ID)=0) for (j=i;jNumber-1;j+)woj=woj+1;Number-;

17、/將剩余數(shù)據(jù)寫入文件 擦除以前的數(shù)據(jù)fp=fopen(C:/worker.dat,wb);for (i=0;i=0&j=3)switch(j) case 1: array_salary1();break; case 2: array_salary2();break; case 3: array_salary3();break; case 0: return; /按基本工資排列(選擇法)void array_salary1()int i,j,k;for(i=0;iNumber-1;i+)k=i;for(j=i+1;jNumber;j+)if(wok.salary1woj.salary1)k=j;

18、if(k!=i) replace=wok;wok=woi;woi=replace; printf(nnt姓名tt工號tt基本工資t職務(wù)工資t津貼nn);for(j=0;jNumber;j+)printf(-n);printf(t%stt%stt%dtt%dtt%dn,woj.name,woj.ID,woj.salary1,woj.salary2,woj.salary3);printf(-n);/按職位工資排列(冒泡法)void array_salary2()int i,j; for(i=0;iNumber;i+)for(j=0;jNumber-i;j+)if(woj.salary2woj+1.

19、salary2) replace=woj;/替代 (replace)woj=woj+1;woj+1=replace; printf(nnt姓名tt工號tt基本工資t職務(wù)工資t津貼nn);for(j=0;jNumber;j+)printf(-n);printf(t%stt%stt%dtt%dtt%dn,woj.name,woj.ID,woj.salary1,woj.salary2,woj.salary3);printf(-n);/按津貼排序(選擇法)void array_salary3()int i,j,k; for(i=0;iNumber-1;i+)k=i;for(j=i+1;jNumber;

20、j+)if(wok.salary3woj.salary3)k=j;if(k!=i) replace=wok;wok=woi;woi=replace; printf(nnt姓名tt工號tt基本工資t職務(wù)工資t津貼nn);for(j=0;jNumber;j+)printf(-n);printf(t%stt%stt%dtt%dtt%dn,woj.name,woj.ID,woj.salary1,woj.salary2,woj.salary3);printf(-n);/統(tǒng)計職工工資3.6統(tǒng)計職工工資void statistics() int i=0;double s=0.0;double sum100;

21、printf(-n);printf(nttv * vnn);for(i=0;iNumber;i+)sumi=woi.salary1+woi.salary2+woi.salary3;printf( %s的總工資為:%.2fnn,woi.name,sumi);for(i=0;iNumber;i+)s+=sumi;printf(ttv * vnn);printf( 平均工資為:%.2fn,s/Number); printf(nttv * vnn);printf(-n);3.7修改職工信息void modify() int mode=0;printf(-n);printf(t*修改職工信息選擇*nn)

22、;printf( 1 按姓名修改 nn); printf( 2 按工號修改 nn);printf( 0 退出 nn);printf(-n);printf(nnn);printf( 請輸入你的選擇: nn);scanf(%d,&mode);switch(mode)case 1: xmxg();break;case 2: ghxg();break; void xmxg()/按姓名修改 FILE *fp=NULL;char name30;int i=0;printf(請輸入要修改的職工姓名:);scanf(%s,name);for (i=0;iNumber;i+)if (strcmp(name,wo

23、i.name);elsebreak;printf(t姓名tt工號tt基本工資t職務(wù)工資t津貼n);printf(t%stt%stt%dtt%dtt%dn,woi.name,woi.ID,woi.salary1,woi.salary2,woi.salary3);printf(請重新輸入該職工信息);printf(姓名:);scanf(%s,woi.name);printf(工號:);scanf(%s,woi.ID);printf(基本工資:);scanf(%d,&woi.salary1);printf(職務(wù)工資:);scanf(%d,&woi.salary2);printf(津貼:);scanf

24、(%d,&woi.salary3);/信息修改后重新更新文件里面的數(shù)據(jù) 以保持?jǐn)?shù)據(jù)一致性fp=fopen(C:/worker.dat,wb);for (i=0;iNumber;i+)fwrite(&woi,sizeof(struct worker),1,fp);fclose(fp);void ghxg()/按工號修改 FILE *fp=NULL;char id30;int i=0;printf(請輸入要修改的職工工號:);scanf(%s,id);for (i=0;iNumber;i+)if (strcmp(id,woi.ID);elsebreak;printf(t姓名tt工號tt基本工資t職

25、務(wù)工資t津貼n);printf(t%stt%stt%dtt%dtt%dn,woi.name,woi.ID,woi.salary1,woi.salary2,woi.salary3);printf(請重新輸入該職工信息);printf(姓名:);printf(姓名:);scanf(%s,woi.name);printf(工號:);scanf(%s,woi.ID);printf(基本工資:);scanf(%d,&woi.salary1);printf(職務(wù)工資:);scanf(%d,&woi.salary2);printf(津貼:);scanf(%d,&woi.salary3);/信息修改后重新更新

26、文件里面的數(shù)據(jù) 以保持?jǐn)?shù)據(jù)一致性fp=fopen(C:/worker.dat,wb);for (i=0;i修改成功n);保存數(shù)據(jù)3.8保存數(shù)據(jù)void reserve()printf(nnnnnnnn);printf(tt=程序在運行時已自動保存.n);3.9退出系統(tǒng)void back()printf(nntt=按Enter鍵返回主菜單n);3.10作者信息void author()printf(nnnttv * vnn);printf(ttv 西安歐亞學(xué)院 vnn);printf(ttv 電子信息工程 vnn);printf(ttv白黨軍 胡更偉 王洪來 王興興 李澤鵬制作vnn);prin

27、tf(ttv * v);printf(nntt _ _ n);printf(tt. _(9 6)_ ,/ n);printf(tt =_) 祝你快樂! (_=/ n);printf(tt -= =- n);printf(tt n);printf(tt n);printf(tt n);printf(tt n);printf(tt n);4 設(shè)計體會通過這幾天的努力,職工工資管理系統(tǒng)的設(shè)計已基本完成。在本次課程設(shè)計中,我充分領(lǐng)略了C語言功能的強大,包括函數(shù)、數(shù)組、指針、結(jié)構(gòu)體、文件等。職工工資管理系統(tǒng)是一個很實用并且使用廣泛的操作系統(tǒng)。此系統(tǒng)可以減少很多工作量,做到設(shè)計合理,便于使用,易于操作;界

28、面友好,容錯性高,可在很短的時間內(nèi),查找出所需的職工工資資料,提高工作效率。該系統(tǒng)具有添加、顯示、查詢、修改、刪除等基本功能,以方便對工資的各項管理操作。每一條記錄包括一個職工的工號、姓名、工資等信息,系統(tǒng)的各個功能模塊都用函數(shù)的形式來實現(xiàn),可以將職工信息保存在文件中,并從文件中讀取出來。總的來說,通過這次程序設(shè)計,使我加深了對C語言的認(rèn)識,進一步熟悉了對C語言功能的靈活運用,而且加深了我對程序的理解和編寫能力,通過文獻(xiàn)資料和網(wǎng)絡(luò)資料的幫助,使我對C語言程序設(shè)計這一基礎(chǔ)學(xué)科又一次加深了認(rèn)識,也意識到了其具有的強大功能和發(fā)展前景。這會對以后的學(xué)習(xí)有所幫助。 通過這次程序的設(shè)計,我發(fā)現(xiàn)現(xiàn)實的一個簡

29、單實際問題要用我們學(xué)過的C語言編寫并不是一個簡單的工作.現(xiàn)實的一個職工管理系統(tǒng)并不能用我們學(xué)過的一個簡單函數(shù)或簡單的語法結(jié)構(gòu)完成,他要用的許多函數(shù)和語法結(jié)構(gòu),而且在編寫過程中不僅要求我們對所學(xué)的知識非常熟悉而且在寫代碼的過程中要非常細(xì)心,因為任何一點小錯誤都將導(dǎo)致程序無法運行,導(dǎo)致程序制作失敗. 由于我們學(xué)習(xí)C語言的時間比較短,我們學(xué)到的事是有限,這就導(dǎo)致我們理想中程序需要的功能無法完成,所以我們需要找資料,而這些資料也許我們不懂,這就需要我們自學(xué)的能力,只有我們不斷學(xué)習(xí)C語言方面的新知識,才能使我們了解C語言的強大功能,才能使我們對C語言靈活運用。 團結(jié)是比較重要的。這次設(shè)計任務(wù)對我們來說是

30、比較復(fù)雜的,但是在組長的安排下,在每個組員的努力下我們依然完成了任務(wù)。在完成任務(wù)的過程中充分體現(xiàn)了我們的交流我們的合作精神。295參考文獻(xiàn)1譚浩強,張基溫.C語言程序設(shè)計教程M.第3版.高等教育出版社,20062 楊濤C程序設(shè)計語言北京:機械工業(yè)出版社,20043全國計算機等級考試二級教程: C語言程序設(shè)計(2009年版).高等教育出版社4陳建鐸 , C語言程序設(shè)計 , 第一版 , 西北大學(xué)出版社。6時間安排表時間內(nèi)容責(zé)任人12.10職工工資管理系統(tǒng)代碼胡更偉 李澤鵬12.12PPT的制作王興興12.16程序設(shè)計報告白黨軍 王洪來7課程設(shè)計評定表項目名稱職工工資系統(tǒng)管理項 目 組樂悟者項目組長

31、白黨軍組 成 員 李澤鵬 胡更偉 王洪來 王興興個人工作簡介白黨軍:工作簡述 做程序設(shè)計報告以及分配任務(wù)并協(xié)作胡更偉:工作簡述 做職工工資管理系統(tǒng)代碼李澤鵬:工作簡述 做職工工資管理系統(tǒng)代碼王興興:工作簡述 做PPT的制作并修改系統(tǒng)代碼王洪來:工作簡述 做程序設(shè)計報告并修改系統(tǒng)代碼白黨軍:工作簡述 做程序設(shè)計報告以及分配任務(wù)并協(xié)作組長評語教師評語項目成績(百分制)作品(30%)報告(30%)ppt(15%)表達(dá)(10%)提問(15%)總成績個人成績(百分制)學(xué)號姓名組長評定項目成績總成績103150010109白黨軍103150010118李澤鵬103150010112胡更偉103150010132王洪來103150010134王興興附錄1 每周工作記錄組名日期編號001本周工作概要下周工作計劃是否按計劃完成?責(zé)任人建議附錄2 問題記錄序號問題描述日期解決方案

展開閱讀全文
溫馨提示:
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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!