版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、PAGE 信息技術(shù)與工程學(xué)院 課 程 設(shè) 計(jì) 報 告課程名稱 高級語言程序設(shè)計(jì) 設(shè)計(jì)題目 職工工資管理系統(tǒng) 專業(yè)班級 14級計(jì)本一班 小組成員 張亢元 仝亞超 王佩 指導(dǎo)教師 溫娟娟 成績 2015年 06月 17 日 目 錄 TOC o 1-2 h z u HYPERLINK l _Toc424035293 1 需求分析 PAGEREF _Toc424035293 h 1 HYPERLINK l _Toc424035294 1.1 問題描述 PAGEREF _Toc424035294 h 1 HYPERLINK l _Toc424035295 1.2 功能描述 PAGEREF _Toc424
2、035295 h 1 HYPERLINK l _Toc424035296 2 系統(tǒng)設(shè)計(jì) PAGEREF _Toc424035296 h 2 HYPERLINK l _Toc424035297 2.1 總體設(shè)計(jì) PAGEREF _Toc424035297 h 2 HYPERLINK l _Toc424035298 2.2 詳細(xì)設(shè)計(jì) PAGEREF _Toc424035298 h 3 HYPERLINK l _Toc424035299 3 系統(tǒng)測試 PAGEREF _Toc424035299 h 5 HYPERLINK l _Toc424035300 3.1 輸入功能測試 PAGEREF _Toc
3、424035300 h 5 HYPERLINK l _Toc424035301 3.2 顯示功能測試 PAGEREF _Toc424035301 h 6 HYPERLINK l _Toc424035302 3.3 修改功能測試 PAGEREF _Toc424035302 h 7 HYPERLINK l _Toc424035303 3.4 查找功能測試 PAGEREF _Toc424035303 h 8 HYPERLINK l _Toc424035304 3.5 刪除功能測試 PAGEREF _Toc424035304 h 9 HYPERLINK l _Toc424035305 3.6 統(tǒng)計(jì)功能
4、測試 PAGEREF _Toc424035305 h 10 HYPERLINK l _Toc424035306 3.7 排序功能測試 PAGEREF _Toc424035306 h 11 HYPERLINK l _Toc424035307 3.8 打印功能測試 PAGEREF _Toc424035307 h 12 HYPERLINK l _Toc424035308 4 總結(jié) PAGEREF _Toc424035308 h 13 HYPERLINK l _Toc424035309 5 調(diào)試分析 PAGEREF _Toc424035309 h 13 HYPERLINK l _Toc42403531
5、0 參考文獻(xiàn) PAGEREF _Toc424035310 h 13 HYPERLINK l _Toc424035311 附錄 PAGEREF _Toc424035311 h 14PAGE PAGE 201 需求分析1.1 問題描述設(shè)計(jì)一個職工工資管理系統(tǒng),實(shí)現(xiàn)功能如下: (1)輸入記錄:將每一個職工的姓名、ID號、基本工資、職務(wù)工資、崗位津貼、醫(yī)療保險、公積金的數(shù)據(jù)作為一個結(jié)構(gòu)體。(2)顯示記錄:根據(jù)職工姓名或者ID號顯示一個或幾個職工的各項(xiàng)工資。(3)修改記錄:對任何一個結(jié)構(gòu)體中的成員按照要求進(jìn)行修改,并顯示修改前后結(jié)構(gòu)體中的所有成員信息。(4)查找記錄:查找滿足條件的職工信息,要求顯示所有
6、的職工成員信息。 (5)刪除記錄:刪除滿足條件的職工信息。 (6)統(tǒng)計(jì): a.計(jì)算各項(xiàng)工資的總工資及平均工資。 b.統(tǒng)計(jì)符合指定條件(如職工工資前三項(xiàng)之和在3000元以上、30002000元、20001000元以內(nèi))的職工人數(shù)及占總職工人數(shù)的百分比。 c.按職工總工資進(jìn)行排序,可從小到大,也可從大到小。 d.按字符表格形式打印全部職工工資信息表及平均工資(包括各項(xiàng)總的平均工資)。 1.2 功能描述 職工工資管理:通過1-5可以選擇對員工工資信息的編輯:添加 查找 刪除等。 員工工資輸出:通過6-8可以將員工工資按不同順序輸出。2 系統(tǒng)設(shè)計(jì)2.1 總體設(shè)計(jì)struct worker 定義了一個結(jié)
7、構(gòu)體類型的員工信息。int input(struct worker work,int a)/輸入函數(shù),輸入職工的信息void xianshi(struct worker work,int a)/顯示,按要求顯示需要顯示的職工信息void xiugai(struct worker work,int a)/修改函數(shù),修改需要修改的職工信息void search(struct worker work,int a)/查找函數(shù),查找符合條件的員工,并輸出其信息void dele(struct worker work,int a)/刪除函數(shù),刪除滿足條件的員工信息void tongji(struct wo
8、rker work,int a)/統(tǒng)計(jì)函數(shù),統(tǒng)計(jì)員工的信息void paixu(struct worker work,int a)/排序函數(shù),按照要求將員工信息排序void dayin(struct worker work,int a)/打印,將所有職工的信息輸出2.2 詳細(xì)設(shè)計(jì)根據(jù)題目需要,定義員工的信息結(jié)構(gòu)體。員工信息結(jié)構(gòu)體包括學(xué)生的姓名、ID號、基本工資、職務(wù)工資、崗位津貼、醫(yī)療保險、公積金。查詢員工信息功能:可以通過ID號和姓名查詢。通過姓名查詢的話是用strcmp函數(shù)比較姓名是否相等。編輯員工信息功能:首先判斷是否有該員工的信息,如果有的話再進(jìn)行編輯,否則的話退出。刪除員工功能:通過
9、ID號找到員工,進(jìn)行刪除。系統(tǒng)主窗體系統(tǒng)主窗體系統(tǒng)主窗體輸入職工確定?NY輸入職工信息操作成功顯示信息通過姓名查詢存在?NY操作成功通過ID查詢存在?N操作成功Y修改信息輸入員工ID操作成功篩選信息輸入篩選信息操作成功刪除信息輸入刪除條件操作成功統(tǒng)計(jì)信息操作成功排序信息1、總工資從小到大2、總工資從小到大操作成功操作成功打印信息操作成功3 系統(tǒng)測試3.1 輸入功能測試輸入“1”顯示“系統(tǒng)已有職工的工資記錄,再次輸入將覆蓋原記錄,要繼續(xù)嗎?(請輸入y或n):”接著輸入“y”顯示 輸入員工人數(shù)輸入員工信息如下:01 張望 1286 794 198 109 135 2034 02 李明 1185 6
10、28 135 94 114 1740 03 王小民 895 438 98 64 73 1294 04 張效章 1350 868 210 116 150 2162 05 彭山 745 398 84 61 68 1098 3.2 顯示功能測試3.3 修改功能測試3.4 查找功能測試3.5 刪除功能測試3.6 統(tǒng)計(jì)功能測試3.7 排序功能測試3.8 打印功能測試4 總結(jié)本次課程設(shè)計(jì)的名稱是員工工資管理系統(tǒng),由于我們組能力有限,加之近期課程任務(wù)比較緊迫,所以該系統(tǒng)還是有許多不完善的地方。系統(tǒng)完全實(shí)現(xiàn)的功能有輸入記錄、顯示記錄、修改記錄、查找記錄、刪除記錄、統(tǒng)計(jì)等。盡管還是有許多的不完善之處,總的來說還
11、是收獲很大的,因?yàn)橥ㄟ^這次的團(tuán)隊(duì)合作,我們組首先對c只是有了很深的了解,就是程序的分析和設(shè)計(jì)也有了很深的體會。我們將會在今后的學(xué)習(xí)和工作中發(fā)揚(yáng)團(tuán)隊(duì)精神,而且會認(rèn)真虛心的向有經(jīng)驗(yàn)的人們學(xué)習(xí)交流。希望我們以后能再接再厲,做出更加優(yōu)秀id程序。5 調(diào)試分析在本次課程設(shè)計(jì)實(shí)踐過程中出現(xiàn)了很多問題,這些問題對我來說一時間難以解決。在程序運(yùn)行過程中出現(xiàn)的問題如下:在信息輸入時,未能根據(jù)需求確定職工人數(shù),導(dǎo)致以后的輸出出現(xiàn)問題。解決方案:在設(shè)計(jì)子函數(shù)時運(yùn)用了值傳遞來確定職工總?cè)藬?shù)在統(tǒng)計(jì)函數(shù)中不能正確輸出百分比的值,輸出的全是“0%”,原因是:忽略了整形變量與整形變量相除得到的結(jié)果是整形結(jié)果。解決方案:將變量
12、轉(zhuǎn)化為浮點(diǎn)型變量。修改職工信息時不能保存,原因:修改時保存的地址不是原來變量的地址,修改方案:將修改地址改回到原來的地址。此程序仍存在的問題:執(zhí)行完每一個任務(wù)后,要按兩次回車鍵才能繼續(xù)循環(huán)。參考文獻(xiàn)1C語言課程設(shè)計(jì)案例精編郭翠英2C程序設(shè)計(jì)教程孫淑霞代世雄著3C程序設(shè)計(jì)語言北京:機(jī)械工業(yè)出版社.楊濤4C語言程序設(shè)計(jì)教程M.第3版.高等教育出版社,2006譚浩強(qiáng),張基溫.附錄#include#include#define N 100struct workerint ID;char name20;float base; /base 基本工資float rate; /rate 職務(wù)工資float s
13、ubsidy; /subsidy 崗位津貼float medicare; /medicare 醫(yī)療保險float fund; /fund 公積金float total; /tootal 總工資;int main()int input(struct worker work,int a);/輸入函數(shù),輸入職工的信息void xianshi(struct worker work,int a);/顯示,按要求顯示需要顯示的職工信息void xiugai(struct worker work,int a);/修改函數(shù),修改需要修改的職工信息void search(struct worker work,i
14、nt a);/查找函數(shù),查找符合條件的員工,并輸出其信息int dele(struct worker work,int a);/刪除函數(shù),刪除滿足條件的員工信息void tongji(struct worker work,int a);/統(tǒng)計(jì)函數(shù),統(tǒng)計(jì)員工的信息void paixu(struct worker work,int a);/排序函數(shù),按照要求將員工信息排序void dayin(struct worker work,int a);/打印,將所有職工的信息輸出struct worker workN,*p=work;int a=N,select;/*printf(請輸入員工人數(shù):);sc
15、anf(%d,&a);*/printf(您是首次登陸本系統(tǒng),請先輸入員工信息:n);a=input(p,a);do /打印菜單選項(xiàng)printf(n *職工工資管理系統(tǒng)*n);printf(n 1. 輸入職工信息n);printf(n 2. 通過姓名顯示職工信息n);printf(n 3. 修改職工信息n);printf(n 4. 查找信息n);printf(n 5. 刪除信息n);printf(n 6. 統(tǒng)計(jì)信息n);printf(n 7. 按總工資排序n);printf(n 8. 打印全部職工信息n);printf(n 0. 退出系統(tǒng)n);printf(n *n);printf(請輸入您選擇
16、的操作:);scanf(%d,&select);switch(select)case 1:printf(系統(tǒng)已有職工的工資記錄,再次輸入將覆蓋原記錄,要繼續(xù)嗎?(請輸入y或n):);getchar();if(getchar()=y)|(getchar()=Y)a=input(p,a);break;case 2:xianshi(p,a);break;case 3:xiugai(p,a);break;case 4:search(p,a);break;case 5:a=dele(p,a);break;case 6:tongji(p,a);break;case 7:paixu(p,a);break;c
17、ase 8:dayin(p,a);break;case 0:printf(要繼續(xù)操作嗎?(請輸入y或n):);getchar();if(getchar()=y)|(getchar()=Y)break;while(1);printf(職工工資管理系統(tǒng)本次運(yùn)行結(jié)束!n);return 0;/輸入函數(shù),輸入職工的信息int input(struct worker work,int a)int i;printf(請輸入員工人數(shù):n);scanf(%d,&a);printf(輸入格式為:nID號,姓名n基本工資,職務(wù)工資,崗位津貼,醫(yī)療保險,公積金n);for(i=0;ia;i+)scanf(%d,%s
18、,&worki.ID,);scanf(%f,%f,%f,%f,%f,&worki.base,&worki.rate,&worki.subsidy,&worki.medicare,&worki.fund);return a;/顯示,按要求顯示需要顯示的職工信息void xianshi(struct worker work,int a)int i,select,t;char * next,r20;printf(n 1. 按姓名查找n);printf(n 2. 按查找n);scanf(%d,&select);switch(select)case 1:printf(請輸入要顯示的姓
19、名:n);scanf(%s,r);next=r;printf(ID號 姓 名 基本工資 職務(wù)工資 崗位津貼 醫(yī)療保險 公積金n);for(i=0;ia;i+)if(strcmp(next,)=0)printf(%4d %s %4f %4f %4f %4f %4fn,worki.ID,,worki.base,worki.rate,worki.subsidy,worki.medicare,worki.fund);break;case 2:printf(請輸入要查詢的ID:n);scanf(%d,&t);printf(ID號 姓 名 基本工資 職務(wù)工資 崗位津
20、貼 醫(yī)療保險 公積金n);for(i=0;ia;i+)if(t=worki.ID)printf(%4d %s %4f %4f %4f %4f %4fn,worki.ID,,worki.base,worki.rate,worki.subsidy,worki.medicare,worki.fund);break;/修改函數(shù),修改需要修改的職工信息void xiugai(struct worker work,int a)int i,ID,t;printf(請輸入要修改員工的ID:n);scanf(%d,&ID);printf(修改前職工的信息:n);printf(ID號 姓 名
21、基本工資 職務(wù)工資 崗位津貼 醫(yī)療保險 公積金n);for(i=0;ia;i+)printf(%4d %s %4f %4f %4f %4f %4fn,worki.ID,,worki.base,worki.rate,worki.subsidy,worki.medicare,worki.fund);for(i=0;ia;i+)if(ID=worki.ID)t=i;printf(請輸入該職工的信息:);printf(輸入格式為:nID號,姓名n基本工資,職務(wù)工資,崗位津貼,醫(yī)療保險,公積金n);scanf(%d,%s,&workt.ID,);scanf(%f,
22、%f,%f,%f,%f,&workt.base,&workt.rate,&workt.subsidy,&workt.medicare,&workt.fund);printf(修改后職工的信息:n);printf(ID號 姓 名 基本工資 職務(wù)工資 崗位津貼 醫(yī)療保險 公積金n);for(i=0;ia;i+)printf(%4d %s %4f %4f %4f %4f %4fn,worki.ID,,worki.base,worki.rate,worki.subsidy,worki.medicare,worki.fund);/查找函數(shù),查找符合條件的員工,并輸出其信息void s
23、earch(struct worker work,int a)int i;float n;printf(請輸入篩選條件總工資大于多少);scanf(%f,&n);printf(ID號 姓 名 基本工資 職務(wù)工資 崗位津貼 醫(yī)療保險 公積金n);for(i=0;in)printf(%4d %s %4f %4f %4f %4f %4fn,worki.ID,,worki.base,worki.rate,worki.subsidy,worki.medicare,worki.fund);/刪除函數(shù),刪除滿足條件的員工信息int dele(struct worker work,int
24、a)int i,n;printf(請輸入篩選條件總工資小于多少);scanf(%d,&n);for(i=0;ia;i+)worki.total=worki.base+worki.rate+worki.subsidy+worki.medicare+worki.fund;if(worki.totaln)printf(ID號 姓 名 基本工資 職務(wù)工資 崗位津貼 醫(yī)療保險 公積金n);printf(%4d %s %4f %4f %4f %4f %4fn,worki.ID,,worki.base,worki.rate,worki.subsidy,worki.medicare,wor
25、ki.fund);printf(您確定要刪除該職工信息嗎?(請輸入y或n):);getchar();if(getchar()=y)|(getchar()=Y)worki=worki+1;i-;a-;elsebreak;return a;/統(tǒng)計(jì)函數(shù),統(tǒng)計(jì)員工的信息void tongji(struct worker work,int a)int i,b=0,c=0,d=0;float add5;for(i=0;i3000)b+;if(addi2000)c+;if(addi1000)d+;b=b*100/a;c=c*100/a;d=d*100/a;printf(前三項(xiàng)工資之和在3000元以上的占%d
26、%n,b);printf(前三項(xiàng)工資之和在30002000的占%d%n,c);printf(前三項(xiàng)工資之和在20001000的占%d%n,d);/排序函數(shù),按照要求將員工信息排序void paixu(struct worker work,int a)int i,j,select;struct worker temp;printf(n 1. 按從小到大排n);printf(n 2. 按從大到小排n);scanf(%d,&select);switch(select)case 1:/*for(i=0;ia;i+)worki.total=worki.base+worki.rate+worki.subsidy+worki.medicare+worki.fund;*
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 疫情期間滯留教師管理制度(3篇)
- 社?;鸬念A(yù)算管理制度(3篇)
- 管理制度更細(xì)致的意思(3篇)
- 網(wǎng)絡(luò)支付平臺流量管理制度(3篇)
- 項(xiàng)目部物資計(jì)劃管理制度(3篇)
- 獸藥中藥知識培訓(xùn)課件
- 《GA 476-2004 人血紅蛋白金標(biāo)檢驗(yàn)試劑條》專題研究報告-深度與行業(yè)前瞻
- 養(yǎng)老院員工培訓(xùn)與發(fā)展制度
- 養(yǎng)黃鱔消毒技術(shù)培訓(xùn)課件
- 企業(yè)員工培訓(xùn)與職業(yè)規(guī)劃制度
- 高壓注漿施工方案(3篇)
- 高強(qiáng)混凝土知識培訓(xùn)課件
- 現(xiàn)場缺陷件管理辦法
- 暖通工程施工環(huán)保措施
- 宗族團(tuán)年活動方案
- 車企核心用戶(KOC)分層運(yùn)營指南
- 兒童課件小學(xué)生講繪本成語故事《69狐假虎威》課件
- 初三語文競賽試題及答案
- O2O商業(yè)模式研究-全面剖析
- 二年級勞動試卷及答案
- 企業(yè)成本管理分析
評論
0/150
提交評論