數(shù)據(jù)結(jié)構(gòu)工資管理系統(tǒng)課程設(shè)計(jì)_第1頁(yè)
數(shù)據(jù)結(jié)構(gòu)工資管理系統(tǒng)課程設(shè)計(jì)_第2頁(yè)
數(shù)據(jù)結(jié)構(gòu)工資管理系統(tǒng)課程設(shè)計(jì)_第3頁(yè)
已閱讀5頁(yè),還剩17頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、.學(xué)號(hào)學(xué)年 第學(xué)期數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告題目:人事工資管理系統(tǒng)專(zhuān)業(yè):數(shù)字媒體技術(shù)班級(jí):姓名:. 1 22 21. 122. 223 34 45 76 77 89word 專(zhuān)業(yè)資料1、設(shè)計(jì)目的在計(jì)算機(jī)中建立相應(yīng)的數(shù)據(jù)結(jié)構(gòu),利用程序?qū)崿F(xiàn)工資的輸入、查詢(xún)、增、刪、改、統(tǒng)計(jì)、輸出等操作。進(jìn)一步掌握利用C 語(yǔ)言進(jìn)行程序設(shè)計(jì)的能力; 進(jìn)一步理解和運(yùn)用結(jié)構(gòu)化程序設(shè)計(jì)的思想和方法;初步掌握開(kāi)發(fā)一個(gè)小型實(shí)用系統(tǒng)的基本方法;學(xué)會(huì)調(diào)試一個(gè)較長(zhǎng)程序的基本方法;學(xué)會(huì)利用流程圖表示算法。工資管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn),此次程序設(shè)計(jì)主要利用c 語(yǔ)言的基礎(chǔ)知識(shí)開(kāi)發(fā)一個(gè)簡(jiǎn)單的職工工資管理系統(tǒng)。工資管理系統(tǒng)是一個(gè)企業(yè)不可缺少的一部分,它

2、2.利用計(jì)算機(jī)對(duì)職工工資進(jìn)行統(tǒng)一管理,實(shí)現(xiàn)工資管理工作的系統(tǒng)化、 規(guī)化和自動(dòng)化,為企業(yè)提高工作效率。2、設(shè)計(jì)容與要求2.1 設(shè)計(jì)容主要利用 c 語(yǔ)言的文件操作能力設(shè)計(jì)開(kāi)發(fā)一個(gè)小型的管理信息系統(tǒng),至少具有如下功能:對(duì)職工信息的錄入、修改或刪除,通過(guò)職工姓名或工號(hào)進(jìn)行查找,并逐項(xiàng)列出相信的職工工資信息,另外也可以查看所有職工目前的工資狀況。有一個(gè)文本菜單來(lái)調(diào)用各個(gè)功能的函數(shù)及一個(gè)主菜單來(lái)提示用戶(hù)如何操作。2.2 設(shè)計(jì)要求在計(jì)算機(jī)中建立相應(yīng)的數(shù)據(jù)結(jié)構(gòu),利用程序?qū)崿F(xiàn)工資的輸入、查詢(xún)、增、刪、改、統(tǒng)計(jì)、輸出等操作。3 、總體流程圖設(shè)計(jì)word 專(zhuān)業(yè)資料職工工資管理系統(tǒng)輸顯查刪添修保文退入示找除加改存件出

3、職職職職職職職中工工工工工工工讀信信信信信信信取息息息息息息息4開(kāi)始主菜單選擇操作選擇 1選擇 2選擇 3選擇 4選擇 5選擇 6選擇 7選擇 8選擇 0.輸入職工信息輸出職工信息按姓名查找職工信息按工號(hào)按姓名增加職工信息按工號(hào)刪除職工信息按姓名按工資從高到低按工號(hào)保存數(shù)據(jù)從文件中讀取退出結(jié)束4、程序詳細(xì)功能設(shè)計(jì)1 、設(shè)計(jì)一個(gè)能夠記錄公司職工工資的數(shù)據(jù)結(jié)構(gòu),每條記錄包括:職工號(hào),姓名,基本工資,職務(wù)工資,津貼。2 、應(yīng)用文件保存工資管理數(shù)據(jù)。3 、新增:能將所有輸入的職工工資數(shù)據(jù)保存到文件中,并可選擇繼續(xù)輸入或退出。word 專(zhuān)業(yè)資料開(kāi)始定義數(shù)據(jù)類(lèi)型numberTemp,ii<numbe

4、rTemp輸出職工信息i+添加成功結(jié)束4 、查看:查看所有職工信息,包括職工號(hào),姓名,基本工資,職務(wù)工資,津貼。開(kāi)始定義 i=0i<Number輸出職工信息結(jié)束5 、查找:輸入職工的職工號(hào)或姓名,并在文件中查找。若找到,則顯示該職工的工資詳情;否則提示未找到。無(wú)論查找成功否,應(yīng)還可選擇繼續(xù)查找或退出。6.開(kāi)始定義 n=0輸入 n如果 n=1按姓名查找如果 n=2終止按工號(hào)查找輸入錯(cuò)誤終止終止結(jié)束6 、刪除:輸入職工的職工號(hào),并在文件中查找。若找到,提示是否確定刪除。若選擇是,則刪除文件中該職工信息;若選擇否,則取消。若未找到則提示無(wú)此職工信息。無(wú)論查找成功否,應(yīng)還可選擇繼續(xù)查找或退出。開(kāi)

5、定義 n=0輸入 n如果 n=1按姓名刪除如果 n=2終止按工號(hào)刪除終止結(jié)word 專(zhuān)業(yè)資料7 、修改:輸入職工的職工號(hào)在文件中查找。若找到,顯示該職工的所有信息,否則提示無(wú)此職工信息。無(wú)論查找成功否,應(yīng)還可選擇繼續(xù)查找或退出。開(kāi)始定義 mode=0輸入 mode如果 mode=1按姓名修改如果 mode=2終止按工號(hào)修改輸入錯(cuò)誤終止終止結(jié)束8 、統(tǒng)計(jì):分類(lèi)匯總并輸出所有職工的總工資,并計(jì)算出平均工資。開(kāi)始定義 i=0For 函數(shù)初始值i=0i<Number循環(huán)體輸出員工總工資i+For 函數(shù)初始值i=0i<Number循環(huán)體i+輸出員工平均工資結(jié)束8.9 、退出:退出程序。5、程

6、序調(diào)試程序調(diào)試的任務(wù)是排除程序中的錯(cuò)誤,使程序能順利地運(yùn)行并得到預(yù)期的效果。程序的調(diào)試階段不僅要發(fā)現(xiàn)和消除語(yǔ)法上的錯(cuò)誤,還要發(fā)現(xiàn)和消除邏輯錯(cuò)誤和運(yùn)行錯(cuò)誤。要正確利用編輯時(shí)提示的錯(cuò)誤信息。調(diào)試階段出現(xiàn)了很多的問(wèn)題,主要如下:1 、 在定義和運(yùn)用數(shù)據(jù)類(lèi)型時(shí)出現(xiàn)問(wèn)題, 不清楚字符串的輸出用s,而錯(cuò)用為 c。2 、 忘記“;”或把“;”用錯(cuò)誤的輸入法輸入,造成的錯(cuò)誤。3 、 大括號(hào)混亂造成錯(cuò)誤。4 、 用文件保存職工信息時(shí),對(duì)printf不熟悉,造成使用格式錯(cuò)誤,輸出容不符合,通過(guò)仔細(xì)核對(duì)書(shū)上的格式才改掉。5 、 在讀取信息時(shí),不會(huì)用scanf ,是程序的運(yùn)行結(jié)果混亂,造成職工信息錯(cuò)位,或是直接輸出0

7、.00 等。word 專(zhuān)業(yè)資料6、設(shè)計(jì)小結(jié)通過(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ì)合理,便于使用 ,易于操作 ;界面友好 ,容錯(cuò)性高 ,可在很短的時(shí)間 ,查找出所需的職工工資資料,提高工作效率。該系統(tǒng)具有添加、顯示、查詢(xún)、修改、刪除等基本功能, 以方便對(duì)工資的各項(xiàng)管理操作。 每一條記錄包括一個(gè)職工的工號(hào)、姓名、工資等信息, 系統(tǒng)的各個(gè)功能模塊都用函數(shù)的形式來(lái)實(shí)現(xiàn),可以將職工信息保存在文件中,并從文件中讀取出

8、來(lái)。在本次課程設(shè)計(jì)中,我也發(fā)現(xiàn)了自己很多的不足,并學(xué)到了許多的知識(shí)。對(duì)以前課本中學(xué)到的知識(shí)有了更深刻的理解,和靈活的運(yùn)用。不再像以前一樣,知識(shí)淺顯的明白,死板的套用。編寫(xiě)程序的過(guò)程,讓我感覺(jué)到了無(wú)限的快樂(lè),不僅僅是因?yàn)榭梢詫⒁郧皩W(xué)到的相關(guān)知識(shí)靈活運(yùn)用,還因?yàn)樵谶@個(gè)過(guò)程中學(xué)到了太多以前所沒(méi)有掌握的東西。最后我還掌握到了寫(xiě)復(fù)雜程序的技巧,在寫(xiě)大程序時(shí)應(yīng)遵守“自頂向下,逐步細(xì)化,模塊化”的方法進(jìn)行設(shè)計(jì);c 語(yǔ)言提供了豐富的數(shù)據(jù)庫(kù)和各種功能的函數(shù),我們要善于使用,使我們的程序達(dá)到最簡(jiǎn)潔的這將對(duì)我以后的c 程序?qū)W習(xí)產(chǎn)生重要的影響。通過(guò)這次程序設(shè)計(jì), 使我加深了對(duì) C 語(yǔ)言的認(rèn)識(shí), 進(jìn)一步熟悉了對(duì) C 語(yǔ)

9、言功能10.的靈活運(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í)有所幫助。7、參考文獻(xiàn)1譚浩強(qiáng) . C 程序設(shè)計(jì)(第三版) 北京:清華大學(xué)出版社2006.3.2王為青等 .C 語(yǔ)言高級(jí)編程及實(shí)例剖析北京:人民郵電出版社2007.3.3 黃明等 .C 語(yǔ)言課程設(shè)計(jì) 北京:電子工業(yè)出版社2006.3.附錄源程序#include <stdio.h>#include <stdlib.h>#include <string.h>struc

10、t workerchar name30;char ID10;int salary1,salary2,salary3;word 專(zhuān)業(yè)資料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

11、 back();void author();struct worker wo100; /保存所有的職工信息int Number=0; /記錄總的職工人數(shù)void main()int choose=0;while(true)show();printf("tt=>請(qǐng)選擇: ");scanf("%d",&choose);system("cls");switch(choose)case 0: exit(0);/退出break;case 1: add();back();/添加職工信息break;case 2: see();back

12、();/查看職工信息break;case 3: search();12.back();/查找職工信息break;case 4: del();back();/刪除職工信息break;case 5: statistics();back();/統(tǒng)計(jì)職工工資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");i

13、nt dq(struct worker wo)FILE *fp=NULL;int i=0;fp=fopen("C:/worker.dat","rb");while(fread(&woi,sizeof(struct worker),1,fp)i+;fclose(fp);return i;void show()word 專(zhuān)業(yè)資料printf("n");printf("t*職工工資管理系統(tǒng)*nn");printf("t*nn");printf("t1添加職工信息 n");p

14、rintf("t2查看職工信息 n");printf("t3查找職工信息 n");printf("t4刪除職工信息 n");printf("t5統(tǒng)計(jì)職工工資 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

15、*fp=NULL;fp=fopen("C:/worker.dat","ab+");fwrite(wo,sizeof(struct worker),1,fp);fclose(fp);/ 添加職工信息void add()int numberTemp=0;int i=0;struct worker temp;printf("請(qǐng)輸入要添加職工個(gè)數(shù):");scanf("%d",&numberTemp);for(i=0;i<numberTemp;i+)printf("輸入第 %d 個(gè)職工信息 n&quo

16、t;,i+1);printf("姓名: ");scanf("%s",);printf("工號(hào): ");scanf("%s",temp.ID);printf("基本工資: ");scanf("%d",&temp.salary1);printf("職務(wù)工資: ");14.scanf("%d",&temp.salary2);printf("津貼: ");scanf("%d&quo

17、t;,&temp.salary3);woNumber+=temp; /寫(xiě)入到數(shù)組bc(&temp); /寫(xiě)入到文件printf("添加成功 n");/ 查看職工信息void see()int i=0;printf("以下是全部職工n");printf("t姓名 t 工號(hào) t 基本工資 t 職務(wù)工資 t 津貼 n");while(i<Number)printf("t%st%st%dtt%dtt%dn",,woi.ID,woi.salary1,woi.salary2,woi.sal

18、ary3);i+;/ 查找職工信息void search()int n=0;printf("1按姓名查找 n");printf("2按工號(hào)查找 n");scanf("%d",&n);switch(n)case 1: xmcz();break;case 2: ghcz();break;default: printf("輸入錯(cuò)誤 !n");break;void xmcz()/按姓名查找word 專(zhuān)業(yè)資料char name30;int i=0;printf("請(qǐng)輸入要查找職工姓名:");sca

19、nf("%s",name);system("cls");printf("t姓名 t 工號(hào) t 基本工資 t 職務(wù)工資 t 津貼 n");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()/按工號(hào)查找char id10;int i=0;printf("請(qǐng)輸入要查找職工工號(hào):

20、");scanf("%s",id);system("cls");printf("t姓名 t 工號(hào) t 基本工資 t 職務(wù)工資 t 津貼 n");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")

21、;printf("2按工號(hào)刪除 n");scanf("%d",&n);16.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;i<Number;i+)if (strcmp(name,)=0)for (j=i;j<Num

22、ber-1;j+)wo j=woj+1;Number-;/ 將剩余數(shù)據(jù)寫(xiě)入文件擦除以前的數(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");void ghsc()/按工號(hào)刪除word 專(zhuān)業(yè)資料FILE *fp=NULL;char id60;int i=0;int j=0;printf("請(qǐng)輸入要?jiǎng)h除的職工工號(hào):"

23、;);scanf("%s",id);for(i=0;i<Number;i+)if (strcmp(id,woi.ID)=0)for (j=i;j<Number-1;j+)wo j=woj+1;Number-;/ 將剩余數(shù)據(jù)寫(xiě)入文件擦除以前的數(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)計(jì)

24、職工工資void statistics()int i=0;double s=0.0;double sum100;for(i=0;i<Number;i+)sumi=woi.salary1+woi.salary2+woi.salary3;printf("%s的總工資為: %fn",,sumi);for(i=0;i<Number;i+)18.s+=sumi;printf("平均工資為: %fn",s/Number);/ 修改職工信息void modify()int mode=0;printf("請(qǐng)選擇修改查找方式n&quo

25、t;);printf("1按姓名查找修改n");printf("2按工號(hào)查找修改n");scanf("%d",&mode);switch(mode)case 1: xmxg();break;case 2: ghxg();break;default: printf("輸入錯(cuò)誤 !n");break;void xmxg()/按姓名修改FILE *fp=NULL;char name30;int i=0;printf("請(qǐng)輸入要修改的職工姓名:");scanf("%s",na

26、me);for (i=0;i<Number;i+)if (strcmp(name,);elsebreak;printf("t 姓名 t 工號(hào) t 基本工資 t 職務(wù)工資 t 津貼 n"); printf("t%st%st%dtt%dtt%dn",,woi.ID,woi.salary1,woi.salary2,w oi.salary3);word 專(zhuān)業(yè)資料printf("請(qǐng)重新輸入該職工信息");printf("姓名: ");scanf("%s",woi.na

27、me);printf("工號(hào): ");scanf("%s",woi.ID);printf("基本工資: ");scanf("%d",&woi.salary1);printf("職務(wù)工資: ");scanf("%d",&woi.salary2);printf("津貼: ");scanf("%d",&woi.salary3);/ 信息修改后重新更新文件里面的數(shù)據(jù)以保持?jǐn)?shù)據(jù)一致性fp=fopen("C:/wo

28、rker.dat","wb");for (i=0;i<Number;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;i<Number;i+)if (strcmp(id,woi.ID);elsebreak;printf("t姓名 t 工號(hào) t 基本工資 t職務(wù)工資 t

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論