版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、程序設(shè)計課程設(shè)計報告工資管理系統(tǒng) 院系:地質(zhì)工程系 班級:地質(zhì)工程班 組員:陳欣永 胡世俊 李積榮 趙海俊 馬小成目錄一、設(shè)計目的1二、設(shè)計內(nèi)容與要求2 1.設(shè)計內(nèi)容3 2.設(shè)計要求4三、總流程圖設(shè)計5四、程序詳細(xì)功能設(shè)計6五、程序調(diào)試7六、設(shè)計小結(jié)8七、參考文獻9附錄10一、設(shè)計目的 在計算機中建立相應(yīng)的數(shù)據(jù)結(jié)構(gòu),利用程序?qū)崿F(xiàn)工資的輸入、查詢、增、刪、改、統(tǒng)計、輸出等操作。進一步掌握利用C語言進行程序設(shè)計的能力;進一步理解和運用結(jié)構(gòu)化程序設(shè)計的思想和方法;初步掌握開發(fā)一個小型實用系統(tǒng)的基本方法;學(xué)會調(diào)試一個較長程序的基本方法;學(xué)會利用流程圖表示算法。工資管理系統(tǒng)的設(shè)計與實現(xiàn),此次程序設(shè)計主要
2、利用c語言的基礎(chǔ)知識開發(fā)一個簡單的職工工資管理系統(tǒng)。工資管理系統(tǒng)是一個企業(yè)不可缺少的一部分,它利用計算機對職工工資進行統(tǒng)一管理,實現(xiàn)工資管理工作的系統(tǒng)化、規(guī)范化和自動化,為企業(yè)提高工作效率。二、設(shè)計內(nèi)容與要求1 設(shè)計內(nèi)容主要利用c語言的文件操作能力設(shè)計開發(fā)一個小型的管理信息系統(tǒng),至少具有如下功能:對職工信息的錄入、修改或刪除,通過職工姓名或工號進行查找,并逐項列出相信的職工工資信息,另外也可以查看所有職工目前的工資狀況。有一個文本菜單來調(diào)用各個功能的函數(shù)及一個主菜單來提示用戶如何操作。2 設(shè)計要求 在計算機中建立相應(yīng)的數(shù)據(jù)結(jié)構(gòu),利用程序?qū)崿F(xiàn)工資的輸入、查詢、增、刪、改、統(tǒng)計、輸出等操作。三、總
3、體流程圖設(shè)計職工工資管理系統(tǒng)退出文件中讀取保存職工信息修改職工信息輸入職工息息顯示職工信息查找職工信息刪除職工信息添加職工信息 選擇8從文件中讀取選擇0退出結(jié)束刪除職工信息增加職工信息按工資從高到低排序選擇6選擇5選擇4按姓名按工號保存數(shù)據(jù)選擇7按姓名按工號選擇3選擇2選擇1查找職工信息輸入職工信息輸出職工信息按姓名按工號主菜單開始選擇操作四、程序詳細(xì)功能設(shè)計1、設(shè)計一個能夠記錄公司職工工資的數(shù)據(jù)結(jié)構(gòu),每條記錄包括:職工號,姓名,基本工資,職務(wù)工資,津貼。2、應(yīng)用文件保存工資管理數(shù)據(jù)。3、新增:能將所有輸入的職工工資數(shù)據(jù)保存到文件中,并可選擇繼續(xù)輸入或退出。定義數(shù)據(jù)類型numberTemp,i
4、i<numberTempi+添加成功輸出職工信息開始結(jié)束4、查看:查看所有職工信息,包括職工號,姓名,基本工資,職務(wù)工資,津貼。定義i=0i<Number輸出職工信息開始結(jié)束5、查找:輸入職工的職工號或姓名,并在文件中查找。若找到,則顯示該職工的工資詳情;否則提示未找到。無論查找成功否,應(yīng)還可選擇繼續(xù)查找或退出。定義n=0如果n=1如果n=2按姓名查找終止按工號查找終止輸入錯誤終止開始結(jié)束輸入n6、刪除:輸入職工的職工號,并在文件中查找。若找到,提示是否確定刪除。若選擇是,則刪除文件中該職工信息;若選擇否,則取消。若未找到則提示無此職工信息。無論查找成功否,應(yīng)還可選擇繼續(xù)查找或退出
5、。定義n=0如果n=1如果n=2按姓名刪除終止按工號刪除終止開始結(jié)束輸入n7、修改:輸入職工的職工號在文件中查找。若找到,顯示該職工的所有信息,否則提示無此職工信息。無論查找成功否,應(yīng)還可選擇繼續(xù)查找或退出。定義mode=0如果mode=1如果mode=2按姓名修改終止按工號修改終止輸入錯誤終止 開始結(jié)束輸入mode8、統(tǒng)計:分類匯總并輸出所有職工的總工資,并計算出平均工資。定義i=0For函數(shù)初始值i=0i<Numberi+For函數(shù)初始值i=0 i<Numberi+輸出員工平均工資循環(huán)體循環(huán)體開始結(jié)束輸出員工總工資9、退出:退出程序。五、程序調(diào)試 程序調(diào)試的任務(wù)是排除程序中的錯
6、誤,使程序能順利地運行并得到預(yù)期的效果。程序的調(diào)試階段不僅要發(fā)現(xiàn)和消除語法上的錯誤,還要發(fā)現(xiàn)和消除邏輯錯誤和運行錯誤。要正確利用編輯時提示的錯誤信息。 調(diào)試階段出現(xiàn)了很多的問題,主要如下:1、 在定義和運用數(shù)據(jù)類型時出現(xiàn)問題,不清楚字符串的輸出用s,而錯用為c。2、 忘記“;”或把“;”用錯誤的輸入法輸入,造成的錯誤。3、 大括號混亂造成錯誤。4、 用文件保存職工信息時,對printf不熟悉,造成使用格式錯誤,輸出內(nèi)容不符合,通過仔細(xì)核對書上的格式才改掉。5、 在讀取信息時,不會用scanf,是程序的運行結(jié)果混亂,造成職工信息錯位,或是直接輸出0.00等。六、設(shè)計小結(jié) 通過這幾天的努力,職工工
7、資管理系統(tǒng)的設(shè)計已基本完成。在本次課程設(shè)計中,我充分領(lǐng)略了C語言功能的強大,包括函數(shù)、數(shù)組、指針、結(jié)構(gòu)體、文件等。 職工工資管理系統(tǒng)是一個很實用并且使用廣泛的操作系統(tǒng)。此系統(tǒng)可以減少很多工作量,做到設(shè)計合理,便于使用,易于操作;界面友好,容錯性高,可在很短的時間內(nèi),查找出所需的職工工資資料,提高工作效率。該系統(tǒng)具有添加、顯示、查詢、修改、刪除等基本功能,以方便對工資的各項管理操作。每一條記錄包括一個職工的工號、姓名、工資等信息,系統(tǒng)的各個功能模塊都用函數(shù)的形式來實現(xiàn),可以將職工信息保存在文件中,并從文件中讀取出來。 在本次課程設(shè)計中,我也發(fā)現(xiàn)了自己很多的不足,并學(xué)到了許多的知識。對以前課本中學(xué)
8、到的知識有了更深刻的理解,和靈活的運用。不再像以前一樣,知識淺顯的明白,死板的套用。編寫程序的過程,讓我感覺到了無限的快樂,不僅僅是因為可以將以前學(xué)到的相關(guān)知識靈活運用,還因為在這個過程中學(xué)到了太多以前所沒有掌握的東西。 最后我還掌握到了寫復(fù)雜程序的技巧,在寫大程序時應(yīng)遵守“自頂向下,逐步細(xì)化,模塊化”的方法進行設(shè)計;c語言提供了豐富的數(shù)據(jù)庫和各種功能的函數(shù),我們要善于使用,使我們的程序達(dá)到最簡潔的這將對我以后的c程序?qū)W習(xí)產(chǎn)生重要的影響。 通過這次程序設(shè)計,使我加深了對C語言的認(rèn)識,進一步熟悉了對C語言功能的靈活運用,而且加深了我對程序的理解和編寫能力,通過文獻資料和網(wǎng)絡(luò)資料的幫助,使我對C語
9、言程序設(shè)計這一基礎(chǔ)學(xué)科又一次加深了認(rèn)識,也意識到了其具有的強大功能和發(fā)展前景。這會對以后的學(xué)習(xí)有所幫助。七、參考文獻1譚浩強. C程序設(shè)計(第三版) 北京:清華大學(xué)出版社 2006.3.2王為青等.C語言高級編程及實例剖析 北京:人民郵電出版社 2007.3.3黃明等.C語言課程設(shè)計 北京:電子工業(yè)出版社 2006.3.附錄源程序#include <stdio.h>#include <stdlib.h>#include <string.h>struct workerchar name30;char ID10;int salary1,salary2,salar
10、y3;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 statistics();void modify();void ghxg(); void xmxg();void reserve();void back();void author();struct worker wo100; /保存所有的職工信息int Numbe
11、r=0; /記錄總的職工人數(shù)void main()int choose=0;while(true) show();printf("tt=>請選擇:");scanf("%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
12、 4: del(); back();/刪除職工信息break;case 5: statistics();back();/統(tǒng)計職工工資break;case 6: modify();back();/修改職工信息break; case 7:reserve();back();/保存數(shù)據(jù) break;case 8:author();back();/作者信息break;default:break;fflush(stdin);getchar();system("cls");int dq(struct worker wo)FILE *fp=NULL;int i=0;fp=fopen(&qu
13、ot;C:/worker.dat","rb");while(fread(&woi,sizeof(struct worker),1,fp)i+;fclose(fp);return i;void show() printf("n");printf("t*職工工資管理系統(tǒng)*nn");printf("t*nn");printf("t1 添加職工信息n");printf("t2 查看職工信息n");printf("t3 查找職工信息n");prin
14、tf("t4 刪除職工信息n");printf("t5 統(tǒng)計職工工資n");printf("t6 修改職工信息n");printf("t7 保 存 數(shù) 據(jù)n");printf("t8 作 者 信 息n");printf("t0 退 出 系 統(tǒng)nn");printf("t*n");void bc(struct worker *wo)FILE *fp=NULL;fp=fopen("C:/worker.dat","ab+"
15、);fwrite(wo,sizeof(struct worker),1,fp);fclose(fp);/添加職工信息void add() int numberTemp=0;int i=0;struct worker temp; printf("請輸入要添加職工個數(shù):");scanf("%d",&numberTemp);for(i=0;i<numberTemp;i+)printf("輸入第%d個職工信息n",i+1);printf("姓名:");scanf("%s",temp.nam
16、e);printf("工號:");scanf("%s",temp.ID);printf("基本工資:");scanf("%d",&temp.salary1);printf("職務(wù)工資:");scanf("%d",&temp.salary2);printf("津貼:");scanf("%d",&temp.salary3);woNumber+=temp; /寫入到數(shù)組bc(&temp); /寫入到文件prin
17、tf("添加成功n");/查看職工信息void see() int i=0;printf("以下是全部職工n");printf("t姓名t工號t基本工資t職務(wù)工資t津貼n");while(i<Number)printf("t%st%st%dtt%dtt%dn",,woi.ID,woi.salary1,woi.salary2,woi.salary3);i+;/查找職工信息void search() int n=0;printf("1 按姓名查找n");printf("
18、;2 按工號查找n"); scanf("%d",&n);switch(n)case 1: xmcz();break;case 2: ghcz();break;default: printf("輸入錯誤!n");break; void xmcz()/按姓名查找 char name30;int i=0;printf("請輸入要查找職工姓名:");scanf("%s",name);system("cls");printf("t姓名t工號t基本工資t職務(wù)工資t津貼n"
19、;);for (i=0;i<Number;i+)if (strcmp(name,)=0)printf("t%st%st%dtt%dtt%dn",,woi.ID,woi.salary1,woi.salary2,woi.salary3);void ghcz()/按工號查找 char id10;int i=0;printf("請輸入要查找職工工號:");scanf("%s",id);system("cls");printf("t姓名t工號t基本工資t職務(wù)工資t津貼n&quo
20、t;);for (i=0;i<Number;i+)if (strcmp(id,woi.ID)=0)printf("t%st%st%dtt%dtt%dn",,woi.ID,woi.salary1,woi.salary2,woi.salary3);/刪除職工信息void del() int n=0;printf("1 按姓名刪除n");printf("2 按工號刪除n");scanf("%d",&n);switch(n)case 1: xmsc();break;case 2: ghsc()
21、;break;void xmsc()/按姓名刪除 FILE *fp=NULL;char name30;int i=0;int j=0;printf("請輸入要刪除的職工姓名:");scanf("%s",name);for(i=0;i<Number;i+)if (strcmp(name,)=0)for (j=i;j<Number-1;j+)woj=woj+1;Number-;/將剩余數(shù)據(jù)寫入文件 擦除以前的數(shù)據(jù)fp=fopen("C:/worker.dat","wb");for (i=0;
22、i<Number;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;i<Number;i+)if (strcmp(id,woi.ID)=0) for (j=i;j<Number-1;j+)woj=woj+1;Num
23、ber-;/將剩余數(shù)據(jù)寫入文件 擦除以前的數(shù)據(jù)fp=fopen("C:/worker.dat","wb");for (i=0;i<Number;i+)fwrite(&woi,sizeof(struct worker),1,fp);fclose(fp);printf("刪除成功;n");/統(tǒng)計職工工資void statistics() int i=0;double s=0.0;double sum100;for(i=0;i<Number;i+)sumi=woi.salary1+woi.salary2+woi.sala
24、ry3;printf("%s的總工資為:%fn",,sumi);for(i=0;i<Number;i+)s+=sumi;printf("平均工資為:%fn",s/Number); /修改職工信息void modify() int mode=0;printf("請選擇修改查找方式n");printf("1 按姓名查找修改n"); printf("2 按工號查找修改n"); scanf("%d",&mode);switch(mode)case 1:
25、xmxg();break;case 2: ghxg();break;default: printf("輸入錯誤!n");break; void xmxg()/按姓名修改 FILE *fp=NULL;char name30;int i=0;printf("請輸入要修改的職工姓名:");scanf("%s",name);for (i=0;i<Number;i+)if (strcmp(name,);elsebreak;printf("t姓名t工號t基本工資t職務(wù)工資t津貼n");printf(&qu
26、ot;t%st%st%dtt%dtt%dn",,woi.ID,woi.salary1,woi.salary2,woi.salary3);printf("請重新輸入該職工信息");printf("姓名:");scanf("%s",);printf("工號:");scanf("%s",woi.ID);printf("基本工資:");scanf("%d",&woi.salary1);printf("職務(wù)
27、工資:");scanf("%d",&woi.salary2);printf("津貼:");scanf("%d",&woi.salary3);/信息修改后重新更新文件里面的數(shù)據(jù) 以保持?jǐn)?shù)據(jù)一致性fp=fopen("C:/worker.dat","wb");for (i=0;i<Number;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;i<Number;i+)if (strcmp(id,woi.ID);elsebreak;printf("t姓名t工號
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度建筑起重機械安全標(biāo)準(zhǔn)制定與實施合同3篇
- 二零二五年度加氣站設(shè)備維修與技術(shù)培訓(xùn)服務(wù)合同3篇
- 二零二五年度房屋買賣居間合同中介機構(gòu)責(zé)任與義務(wù)規(guī)范
- 二零二五年度小學(xué)生閱讀理解家教合同3篇
- 2025年度智能家電全面維修服務(wù)合同模板2篇
- 二零二五年度教務(wù)主任任期目標(biāo)責(zé)任聘用合同3篇
- 二零二五年度建筑公司勞動合同范本:勞動合同續(xù)簽條件及程序3篇
- 二零二五年度海外工程勞務(wù)輸出合同3篇
- 二零二五年度辦公室改造與企業(yè)文化塑造合同3篇
- 二零二五年度城市排水系統(tǒng)PPP項目合作合同協(xié)議
- 封條模板A4直接打印版
- 常見化療藥物的不良反應(yīng)及預(yù)防 課件
- 電解銅箔制造工藝簡介
- 電工維修培訓(xùn)資料 維修電工技術(shù)學(xué)習(xí) 維修電工常識 電工培訓(xùn)ppt課件
- 撲克牌24點練習(xí)題大全
- 螺絲英文簡稱
- 15MW風(fēng)力發(fā)電機
- 正面管教 讀書分享(課堂PPT)
- 教練技術(shù)CP理論PPT課件
- 產(chǎn)品生命周期曲線(高清)
- 機械工程學(xué)報標(biāo)準(zhǔn)格式
評論
0/150
提交評論