版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、c語(yǔ)言課程設(shè)計(jì)報(bào)告題 目:職工工資系統(tǒng)管理班 級(jí):統(tǒng)本電信1001班組 名:指導(dǎo)教師:日 期:2011.12.19目 錄附錄1 每周工作記錄附錄2 問(wèn)題記錄1 需求分析1.1 問(wèn)題分析1.2 采用技術(shù)1.3 設(shè)計(jì)目標(biāo)2 總體設(shè)計(jì)2.1 系統(tǒng)流程設(shè)計(jì)3 詳細(xì)設(shè)計(jì)3.1 添加職工信息3.2 查看職工信息3.3 查找職工信息3.4 刪除職工信息3.5 職工工資排序3.6 統(tǒng)計(jì)職工工資3.7 修改職工信息3.8 保存數(shù)據(jù)3.9 退出系統(tǒng)3.10 作者信息4 設(shè)計(jì)體會(huì)5 參考文獻(xiàn)6 時(shí)間安排表7 課程設(shè)計(jì)評(píng)定表職工工資管理系統(tǒng)1 需求分析1.1 問(wèn)題分析此程序需要把職工的姓名,工號(hào)和工資輸進(jìn)去,然后根據(jù)
2、需求進(jìn)行查看,查找,刪除,排序,修改,統(tǒng)計(jì),保存等功能。1.2 采用技術(shù)if語(yǔ)句和switch語(yǔ)句以及嵌套應(yīng)用 , 數(shù)組的定義,指針函數(shù),結(jié)構(gòu)體,函數(shù)調(diào)用以及輸入輸出的方法1.3 設(shè)計(jì)目標(biāo)1.熟悉c語(yǔ)言程序的編輯、編譯鏈接和運(yùn)行的過(guò)程。 2.熟練運(yùn)用if語(yǔ)句和switch語(yǔ)句以及嵌套應(yīng)用。3.學(xué)習(xí)并掌握c語(yǔ)言定義函數(shù)的基本方法、聲明函數(shù)及調(diào)用函數(shù)的方法和過(guò)程。4. 掌握文件的概念以及文件的定義方法,認(rèn)識(shí)文件打開(kāi)、關(guān)閉、讀、寫(xiě)等文件基本操作函數(shù)。5.掌握結(jié)構(gòu)體類型變量、數(shù)組的定義和使用。6. 掌握數(shù)組的定義、引用以及輸入輸出的方法、通過(guò)字符數(shù)組存儲(chǔ)字符串,進(jìn)一步使用字符串。2 總體設(shè)計(jì)2.1 系
3、統(tǒng)流程設(shè)計(jì)3 詳細(xì)設(shè)計(jì)#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)計(jì).void modify();/修改.void ghxg(); void xmxg();void reserve();/儲(chǔ)存.void back();void author();struct worker wo100; /保存所有的職工信息int number=0; /記錄總的職工人數(shù)void main()int choose=0;while(true) /無(wú)限循環(huán). show();/(調(diào)用函數(shù))printf(tt=請(qǐng)選擇:);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)計(jì)職工工資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);/打開(kāi)文件調(diào)用的函數(shù)(fopen) 讀取二進(jìn)制文件(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( / /_-_ / / _ /_-./-_ 樂(lè) 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)計(jì)職工工
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+);/在文件尾部追加可讀可寫(xiě)的二進(jìn)制文件(ab+)fwrite(wo,sizeof(struct worker),1,fp);/寫(xiě)入二進(jìn)制文件(fwrite)fclose(fp);3.1添加職工信息void add() in
10、t numbertemp=0;/起臨時(shí)作用的變量int i=0;struct worker temp; printf(請(qǐng)輸入要添加職工個(gè)數(shù):);scanf(%d,&numbertemp); for(i=0;inumbertemp;i+)printf(輸入第%d個(gè)職工信息n,i+1);printf(姓名:);scanf(%s,); printf(工號(hào):);scanf(%s,temp.id);printf(基本工資:);scanf(%d,&temp.salary1);printf(職務(wù)工資:);scanf(%d,&temp.salary2);printf(津貼:);scanf(%
11、d,&temp.salary3);wonumber+=temp; /寫(xiě)入到數(shù)組bc(&temp); /寫(xiě)入到文件(臨時(shí)保存信息)printf(添加成功n);3.2查看職工信息void see() /查看信息. int i=0; printf(tttt以下是全部職工n);printf(nnt姓名tt工號(hào)tt基本工資t職務(wù)工資t津貼nn);while(inumber) printf(-n);printf(t%stt%stt%dtt%dtt%dn,,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 按工號(hào)查找 nn);printf( 0 退出 nn);printf(-n);printf(nnn);printf( 請(qǐng)輸入你的選擇: nn);scanf(%d,&n);switch(n)case 1: xmcz();break;case 2: ghcz();break; void xmcz()/按姓名查找 char name30;int i=0;printf(請(qǐng)輸入要查找職工姓名:);scanf(%s,name);syste
13、m(cls);printf(nnt姓名tt工號(hào)tt基本工資t職務(wù)工資t津貼n);for (i=0;inumber;i+)if (strcmp(name,)=0)/比較兩個(gè)字符串的大小printf(-n);printf(nt%stt%stt%dtt%dtt%dn,,woi.id,woi.salary1,woi.salary2,woi.salary3);printf(-n);void ghcz()/按工號(hào)查找 (函數(shù)調(diào)用)char id10;int i=0;printf(請(qǐng)輸入要查找職工工號(hào):);scanf(%s,id);system(cls);/清除屏幕.prin
14、tf(nnt姓名tt工號(hào)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.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 按工號(hào)刪除 nn);printf( 0 退出 nn
15、);printf(-n);printf(nnn);printf( 請(qǐng)輸入你的選擇: 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(請(qǐng)輸入要?jiǎng)h除的職工姓名:);scanf(%s,name);for(i=0;inumber;i+)if (strcmp(name,)=0)for (j=i;jnumber-1;j+)woj=woj+1;number-;/將剩余數(shù)據(jù)寫(xiě)
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()/按工號(hào)刪除 file *fp=null;char id60;int i=0;int j=0;printf(請(qǐng)輸入要?jiǎng)h除的職工工號(hào):);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ù)寫(xiě)入文件 擦除以前的數(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工號(hào)tt基本工資t職務(wù)工資t津貼nn);for(j=0;jnumber;j+)printf(-n);printf(t%stt%stt%dtt%dtt%dn,,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工號(hào)tt基本工資t職務(wù)工資t津貼nn);for(j=0;jnumber;j+)printf(-n);printf(t%stt%stt%dtt%dtt%dn,,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工號(hào)tt基本工資t職務(wù)工資t津貼nn);for(j=0;jnumber;j+)printf(-n);printf(t%stt%stt%dtt%dtt%dn,,woj.id,woj.salary1,woj.salary2,woj.salary3);printf(-n);/統(tǒng)計(jì)職工工資3.6統(tǒng)計(jì)職工工資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,,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 按工號(hào)修改 nn);printf( 0 退出 nn);printf(-n);printf(nnn);printf( 請(qǐng)輸入你的選擇: 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(請(qǐng)輸入要修改的職工姓名:);scanf(%s,name);for (i=0;inumber;i+)if (strcmp(name,wo
23、);elsebreak;printf(t姓名tt工號(hào)tt基本工資t職務(wù)工資t津貼n);printf(t%stt%stt%dtt%dtt%dn,,woi.id,woi.salary1,woi.salary2,woi.salary3);printf(請(qǐng)重新輸入該職工信息);printf(姓名:);scanf(%s,);printf(工號(hào):);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()/按工號(hào)修改 file *fp=null;char id30;int i=0;printf(請(qǐng)輸入要修改的職工工號(hào):);scanf(%s,id);for (i=0;inumber;i+)if (strcmp(id,woi.id);elsebreak;printf(t姓名tt工號(hào)tt基本工資t職
25、務(wù)工資t津貼n);printf(t%stt%stt%dtt%dtt%dn,,woi.id,woi.salary1,woi.salary2,woi.salary3);printf(請(qǐng)重新輸入該職工信息);printf(姓名:);printf(姓名:);scanf(%s,);printf(工號(hào):);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=程序在運(yùn)行時(shí)已自動(dòng)保存.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白黨軍 胡更偉 王洪來(lái) 王興興 李澤鵬制作vnn);prin
27、tf(ttv * v);printf(nntt _ _ n);printf(tt. _(9 6)_ ,/ n);printf(tt =_) 祝你快樂(lè)! (_=/ n);printf(tt -= =- n);printf(tt n);printf(tt n);printf(tt n);printf(tt n);printf(tt n);4 設(shè)計(jì)體會(huì)通過(guò)這幾天的努力,職工工資管理系統(tǒng)的設(shè)計(jì)已基本完成。在本次課程設(shè)計(jì)中,我充分領(lǐng)略了c語(yǔ)言功能的強(qiáng)大,包括函數(shù)、數(shù)組、指針、結(jié)構(gòu)體、文件等。職工工資管理系統(tǒng)是一個(gè)很實(shí)用并且使用廣泛的操作系統(tǒng)。此系統(tǒng)可以減少很多工作量,做到設(shè)計(jì)合理,便于使用,易于操作;界
28、面友好,容錯(cuò)性高,可在很短的時(shí)間內(nèi),查找出所需的職工工資資料,提高工作效率。該系統(tǒng)具有添加、顯示、查詢、修改、刪除等基本功能,以方便對(duì)工資的各項(xiàng)管理操作。每一條記錄包括一個(gè)職工的工號(hào)、姓名、工資等信息,系統(tǒng)的各個(gè)功能模塊都用函數(shù)的形式來(lái)實(shí)現(xiàn),可以將職工信息保存在文件中,并從文件中讀取出來(lái)。總的來(lái)說(shuō),通過(guò)這次程序設(shè)計(jì),使我加深了對(duì)c語(yǔ)言的認(rèn)識(shí),進(jìn)一步熟悉了對(duì)c語(yǔ)言功能的靈活運(yùn)用,而且加深了我對(duì)程序的理解和編寫(xiě)能力,通過(guò)文獻(xiàn)資料和網(wǎng)絡(luò)資料的幫助,使我對(duì)c語(yǔ)言程序設(shè)計(jì)這一基礎(chǔ)學(xué)科又一次加深了認(rèn)識(shí),也意識(shí)到了其具有的強(qiáng)大功能和發(fā)展前景。這會(huì)對(duì)以后的學(xué)習(xí)有所幫助。 通過(guò)這次程序的設(shè)計(jì),我發(fā)現(xiàn)現(xiàn)實(shí)的一個(gè)簡(jiǎn)單實(shí)際問(wèn)題要用我們學(xué)過(guò)的c語(yǔ)言編寫(xiě)并不是一個(gè)簡(jiǎn)單的工作.現(xiàn)實(shí)的一個(gè)職工管理系統(tǒng)并不能用我們學(xué)過(guò)
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度教育培訓(xùn)檔口租賃合同
- T-ZJCX 0046-2024 簾子線直捻機(jī)
- 二零二五年度公車私用行為規(guī)范與責(zé)任追究協(xié)議
- 二零二五年度全新碼頭租賃協(xié)議及倉(cāng)儲(chǔ)服務(wù)合作協(xié)議
- 2025年度果園租賃與農(nóng)業(yè)科技研發(fā)合同
- 二零二五年度廣告代理合同解除與權(quán)益調(diào)整協(xié)議
- 2025年度高科技企業(yè)計(jì)件工資勞動(dòng)合同
- 2025年度智能合同履約跟蹤與風(fēng)險(xiǎn)控制管理辦法
- 2025年度消防設(shè)施定期維護(hù)與消防通道清理合同
- 二零二五年度美發(fā)店員工勞動(dòng)健康保險(xiǎn)與意外傷害合同
- 2024年全國(guó)職業(yè)院校技能大賽中職(大數(shù)據(jù)應(yīng)用與服務(wù)賽項(xiàng))考試題庫(kù)(含答案)
- 2024湖南省水利廳直屬事業(yè)單位招聘擬聘用人員歷年高頻難、易錯(cuò)點(diǎn)500題模擬試題附帶答案詳解
- 《計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)》課程教案(完整版)
- 追覓在線測(cè)評(píng)題
- 調(diào)崗未到崗解除勞動(dòng)合同通知書(shū)
- 產(chǎn)品標(biāo)準(zhǔn)化大綱
- 西師版小學(xué)數(shù)學(xué)四年級(jí)下冊(cè)教案
- 國(guó)有企業(yè)“三定”工作方案-國(guó)有企業(yè)三定方案
- 清華大學(xué)2024年強(qiáng)基計(jì)劃數(shù)學(xué)試題(解析)
- 大學(xué)生新時(shí)代勞動(dòng)教育教程全套教學(xué)課件
- 高一英語(yǔ)必修一試卷(含答案)(適合測(cè)試)
評(píng)論
0/150
提交評(píng)論