版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、xxxxxxxx學院高級語言程序課程設計基于c語言的工資管理系統(tǒng)程序設計 學生姓名x x學 號xxxxxxxxxx所在學院xxxxxx專業(yè)名稱xxxxx班 級xxxx級x班指導教師xxx成 績 xxxxxxxx學院二一四年十二月四川師范大學成都學院課程設計報告課程設計任務書學生姓名xx學生學號xxxxxxxxxxx學生專業(yè)通信工程學生班級xxxx指導教師xxx職 稱xx發(fā)題日期 2014年10月21日完成日期 2014年12月10日設計題目基于c語言的工資管理系統(tǒng)程序設計設計目的:1、初步了解軟件開發(fā)的一般方法和步驟;2、提高學生用C語言進行文件操作和繪圖應用的編程技術水平3、提高撰寫技術文檔
2、的能力。具體任務及要求:任務:利用C語言的文件操作能力設計開發(fā)一個工資管理系統(tǒng),實現(xiàn)對職工工資進行系統(tǒng)化的管理,首先可以對工資基本信息進行輸入和存取,其次可以讀取工資的相關信息,然后可以刪除和插入工資的相關信息,還有就是可按職工號查詢此職工號的職工的相關信息,并按照工資統(tǒng)計結果的高低進行排序。 要求:1、 必須有完整程序及必要的解釋說明2、 必須有運行結果3、寫出設計課程設計報告課程設計進度安排:序號內容安排時間1閱讀設計題目、任務內容,規(guī)劃設計進度2014.11.32014.11.52進行軟件的相關功能模塊設計2014.11.62014.11.83查找相關的資料2014.11.92014.1
3、1.104設計并完成程序2014.11.112014.11.275編寫并完成課程設計報告2014.11.272014.12.9課程設計參考文獻:1 譚浩強:C程序設計(第二版),清華大學出版社,1999.12,P38-P642 劉瑞挺:計算機二級教程,南開大學出版社,1996.10,P41-P463 姜仲秋:C語言程序設計,南開大學出版社,1998.1,P27-P294 裘宗燕:從問題到程序,北京大學出版社,1999.4,P32-P545 王明福:C語言程序設計教程,高等教育出版社,2004.3,P101-P105指導教師簽字院長審核簽字基于C語言的工資管理系統(tǒng)內容摘要:主要利用C語言的文件操
4、作能力設計開發(fā)一個小型的管理信息系統(tǒng),至少具有如下功能:對職工信息的錄入、修改或刪除,通過職工姓名或工號進行查找,并逐項列出相信的職工工資信息,另外也可以查看所有職工目前的工資狀況。有一個文本菜單來調用各個功能的函數(shù)及一個主菜單來提示用戶如何操作。根據(jù)題目的要求,應該把職工工資信息用結構體形式輸入,再定義一個全局變量和文件指針進行整個程序的運行,然后把職工工資信息送到文件中,所以應該提供一個結構體和文件的輸入輸出等操作。在程序中需實現(xiàn)職工工資瀏覽、查詢、統(tǒng)計等功能的操作,所以需要建立相應的功能模塊來實現(xiàn)。另外還需要提供鍵盤式選擇菜單實現(xiàn)功能,在運行時達到所要的目的。關鍵詞:C語言 工資管理 程
5、序The salary management system based on C languageAbstract:Its main use C language documents the development of a small management information system design and operation ability, at least has the following functions: the staff information input, modify or delete, search by name or number of employee
6、s, employee salary information and itemized believe, also can present salary check all the staff. The function of a text menu to call each function and a main menu to prompt the user how to operate.According to the requirements of the subject, should take the wages of staff and workers with the stru
7、cture form of information input, then define a global variable and the file pointer for operation of the entire process, and then the information of wages of staff and workers to file, so should provide a structure and file input and output operations. To achieve wage to browse, query, statistics an
8、d other functions in the program operation, it is necessary to build the corresponding functional module to achieve. In addition to providing keyboard selection menu function, achieve the purpose to at run time.Keywords:C language The salary management The program目 錄前 言11 設計過程11.1 設計思路11.2 總體流程圖12 功
9、能模塊設計22.1添加功能22.2查找功能22.3刪除功能22.4統(tǒng)計功能32.5修改功能32.6排序功能33 運行結果33.1主界面33.2添加職工信息43.3查找職工信息43.3.1按姓名查找53.3.2按工號查找53.4刪除職工信息53.4.1按姓名查詢53.4.2按工號刪除53.5統(tǒng)計職工工資63.6修改職工信息63.6.1按姓名查找修改63.6.2按工號查找修改73.7工資排序74 結束語8附 錄:C語言源程序9參考文獻2323基于c語言的工資管理系統(tǒng)程序設計前 言C語言是Combined Language(組合語言)的中英混合簡稱。是一種計算機程序設計語言。它既具有高級語言的特點,
10、又具有匯編語言的特點。它可以作為工作系統(tǒng)設計語言,編寫系統(tǒng)應用程序,也可以作為應用程序設計語言,編寫不依賴計算機硬件的應用程序。設計一個程序的過程就是解決一個實際問題的過程?,F(xiàn)代計算機技術的發(fā)展為人們的學習、生活、工作提供了很大的幫助,各行各業(yè)都需要特定計算機系統(tǒng)的運用,我們需要了解這些系統(tǒng)是怎用為我們服務以及他們是怎樣編輯出來的。1 設計過程1.1 設計思路(1) 建立C程序,設計能實現(xiàn)多功能的主函數(shù)。(2) 定義一個結構體,其中包含職工的基本信息。(3) 分模塊分別設計程序實現(xiàn)各個功能,包括錄入、新增、查看、查找、刪除、修改、統(tǒng)計、排序。1.2 總體流程圖由以上設計思路根據(jù)功能可畫出如圖1
11、-1所示總體流程圖圖1-1 總體流程圖2 功能模塊設計2.1添加功能輸入記錄模塊主要完成將數(shù)據(jù)存入數(shù)組1中的工作。在此學生信息管理系統(tǒng)中,記錄可以從以文本形式存儲的數(shù)據(jù)文件中讀入,也可從鍵盤逐個輸入記錄。當從數(shù)據(jù)文件中讀入記錄時,它就是在以記錄為單位存儲的數(shù)據(jù)文件中,將記錄逐條復制到結構體2類型的數(shù)組元素中。主要程序如下:for(i=0;i<numberTemp;i+)printf("輸入第%d個職工信息n",i+1);printf("姓名:");scanf("%s",);printf("工號:&qu
12、ot;);scanf("%s",temp.ID);printf("基本工資:");scanf("%d",&temp.salary1);printf("職務工資:");scanf("%d",&temp.salary2);printf("津貼:");scanf("%d",&temp.salary3);woNumber+=temp; /寫入到數(shù)組bc(&temp); /寫入到文件2.2查找功能查找模塊3主要實現(xiàn)在數(shù)組中按職工姓名或
13、工號查找滿足條件的記錄。在查找函數(shù)void search()中,通過調用void xmcz()函數(shù)和void ghcz()函數(shù),將想要查找的職工信息顯示出來。2.3刪除功能刪除模塊有兩種方式,第一種是按姓名刪除,第二種是按工號刪除。通過fp=fopen("C:/worker.dat","wb")將剩余數(shù)據(jù)寫入文件4,刪除以前的數(shù)據(jù)。2.4統(tǒng)計功能結構體中定義了職工的三種工資,分別為基本公職,職務工資和津貼。通過sumi將每個職工的總工資統(tǒng)計5出來。主要程序如下:for(i=0;i<Number;i+)sumi=woi.salary1+woi.sal
14、ary2+woi.salary3;printf("%s的總工資為:%fn",,sumi); 2.5修改功能首先通過查找功能定位到想要修改的內容,然后重新輸入職工的信息,最后重新更新文件里面的數(shù)據(jù),以保持數(shù)據(jù)一致性6。2.6排序功能排序7功能實現(xiàn)的是按職工工資從低到高的升序排列。這里主要應用到的是冒泡排序法8。主要程序如下:for(i=0;i<Number-1;i+)for(j=0;j<Number-1-i;j+)if(woj.sum>woj+1.sum)k=woj;woj=woj+1;woj+1=k;3 運行結果3.1主界面運行程序,直接彈
15、出主界面。如圖3-1。圖3-1 主界面3.2添加職工信息進入主界面后,選擇1,點擊Enter鍵。顯示出如圖3-2所示界面,根據(jù)提示就可以對職工的信息進行錄入和添加。圖3-2 添加職工信息界面3.3查找職工信息進入主界面,選擇3,點擊Enter鍵。顯示出如圖3-4所示內容。圖3-3 查找職工信息界面3.3.1按姓名查找進入圖3-3中的選擇界面,選擇1,點擊Enter鍵。然后根據(jù)提示輸入想要查找的職工的姓名,例如:張三。點擊Enter鍵,顯示出如圖3-4所示內容。圖3-4 按姓名查找界面3.3.2按工號查找進入圖3-3中的選擇界面,選擇2,點擊Enter鍵。然后根據(jù)提示輸入想要查找的職工的工號,例
16、如:2。點擊Enter鍵,顯示出如圖3-5所示內容。圖3-5 按工號查找界面3.4刪除職工信息進入主界面,選擇4,點擊Enter鍵。顯示出如圖3-6所示內容。圖3-6 刪除職工信息界面3.4.1按姓名查詢進入圖3-7中的選擇界面,選擇1,點擊Enter鍵。然后根據(jù)提示輸入想要刪除的職工的姓名,例如:張三。點擊Enter鍵,顯示出如圖3-7所示內容。圖3-7 按姓名刪除界面3.4.2按工號刪除進入圖3-6中的選擇界面,選擇2,點擊Enter鍵。然后根據(jù)提示輸入想要刪除的職工的工號,例如:2。點擊Enter鍵,顯示出如圖3-8所示內容。圖3-8 按工號刪除界面3.5統(tǒng)計職工工資進入主界面,選擇5,
17、點擊Enter鍵。顯示出如圖3-9所示內容。圖3-9 統(tǒng)計界面3.6修改職工信息進入主界面,選擇6,點擊Enter鍵。顯示出如圖3-10所示內容。圖3-10 修改界面3.6.1按姓名查找修改進入圖3-10中的選擇界面,選擇1,點擊Enter鍵。然后根據(jù)提示輸入想要修改的職工的姓名,例如:張三。點擊Enter鍵,進入修改界面,根據(jù)提示重新輸入該職工信息。如圖3-11所示。圖3-11 按姓名修改界面3.6.2按工號查找修改進入圖3-10中的選擇界面,選擇2,點擊Enter鍵。然后根據(jù)提示輸入想要修改的職工的工號,例如:3。點擊Enter鍵,進入修改界面,根據(jù)提示重新輸入該職工信息。如圖3-12所示
18、。圖3-12 按工號修改界面3.7工資排序進入主界面,選擇8,點擊Enter鍵。顯示出如圖3-13所示內容。圖3-13 排序界面4 結束語通過本次基于C語言的工資管理系統(tǒng)的設計,我對這個介于人類與非人類之間的計算機編程語言有了一定的體驗。隨著C語言系統(tǒng)的成功與報告的完成,有點微微的成就感使人難忘。伴隨著學習的深入,我發(fā)現(xiàn)高深的東西還有很多很多,等待著我自己去挖掘。通過結合實際系統(tǒng)運用C語言進行系統(tǒng)設計以及調試,加深對本課程的理解,提高學生綜合應用知識的能力、分析問題、解決問題的能力和利用C語言進行綜合系統(tǒng)設計的實踐技能。 通過這幾天的努力,職工工資管理系統(tǒng)的設計已基本完成。在本次課程設計中,我
19、充分領略了C語言功能的強大,包括函數(shù)、數(shù)組、指針、結構體、文件等。 職工工資管理系統(tǒng)是一個很實用并且使用廣泛的操作系統(tǒng)。此系統(tǒng)可以減少很多工作量,做到設計合理,便于使用,易于操作;界面友好,容錯性高,可在很短的時間內,查找出所需的職工工資資料,提高工作效率。該系統(tǒng)具有添加、顯示、查詢、修改、刪除等基本功能,以方便對工資的各項管理操作。每一條記錄包括一個職工的工號、姓名、工資等信息,系統(tǒng)的各個功能模塊都用函數(shù)的形式來實現(xiàn),可以將職工信息保存在文件中,并從文件中讀取出來。 在本次課程設計中,我也發(fā)現(xiàn)了自己很多的不足,并學到了許多的知識。對以前課本中學到的知識有了更深刻的理解,和靈活的運用。不再像以
20、前一樣,知識淺顯的明白,死板的套用。編寫程序的過程,讓我感覺到了無限的快樂,不僅僅是因為可以將以前學到的相關知識靈活運用,還因為在這個過程中學到了太多以前所沒有掌握的東西。 最后我還掌握到了寫復雜程序的技巧,在寫大程序時應遵守“自頂向下,逐步細化,模塊化”的方法進行設計;c語言提供了豐富的數(shù)據(jù)庫和各種功能的函數(shù),我們要善于使用,使我們的程序達到最簡潔的這將對我以后的c程序學習產生重要的影響。通過這次程序設計,使我加深了對C語言的認識,進一步熟悉了對C語言功能的靈活運用,而且加深了我對程序的理解和編寫能力,通過文獻資料和網(wǎng)絡資料的幫助,使我對C語言程序設計這一基礎學科又一次加深了認識,也意識到了
21、其具有的強大功能和發(fā)展前景。這會對以后的學習有所幫助。附 錄:C語言源程序#include <stdio.h>#include <stdlib.h>#include <string.h>struct workerchar name30;char ID10;int salary1,salary2,salary3,sum;int dq(struct worker wo);void show();void bc(struct worker wo);void add(); void see();void search();void ghcz();void xmcz(
22、);void del();void xmsc();void ghsc();void statistics();void modify();void ghxg(); void xmxg();void reserve();void back();void sort();struct worker wo100; /保存所有的職工信息int Number=0; /記錄總的職工人數(shù)void main()int choose=0;while(true) show();printf("tt=>請選擇:");scanf("%d",&choose);syst
23、em("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: statistics();back();/統(tǒng)計職工工資break;case 6: modify();back();/修改職工信息break; case 7:reserve();
24、back();/保存數(shù)據(jù) break;case 8:sort();break;default:break;fflush(stdin);getchar();system("cls");int 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() printf("n"
25、;);printf("t*職工工資管理系統(tǒng)*nn");printf("t*nn");printf("t1 添加職工信息n");printf("t2 查看職工信息n");printf("t3 查找職工信息n");printf("t4 刪除職工信息n");printf("t5 統(tǒng)計職工工資n");printf("t6 修改職工信息n");printf("t7 保 存 數(shù) 據(jù)n");printf("t8 工 資
26、排 序n");printf("t0 退 出 系 統(tǒng)nn");printf("t*n");void bc(struct worker *wo)FILE *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("請輸入要添加職工個數(shù):&qu
27、ot;);scanf("%d",&numberTemp);for(i=0;i<numberTemp;i+)printf("輸入第%d個職工信息n",i+1);printf("姓名:");scanf("%s",);printf("工號:");scanf("%s",temp.ID);printf("基本工資:");scanf("%d",&temp.salary1);printf("職務工資:
28、");scanf("%d",&temp.salary2);printf("津貼:");scanf("%d",&temp.salary3);woNumber+=temp; /寫入到數(shù)組bc(&temp); /寫入到文件printf("添加成功n");/查看職工信息void see() int i=0;printf("以下是全部職工n");printf("t姓名t工號t基本工資t職務工資t津貼n");while(i<Number)print
29、f("t%st%st%dtt%dtt%dn",,woi.ID,woi.salary1,woi.salary2,woi.salary3);i+;/查找職工信息void search() int n=0;printf("1 按姓名查找n");printf("2 按工號查找n"); scanf("%d",&n);switch(n)case 1: xmcz();break;case 2: ghcz();break;default: printf("輸入錯誤!n");break;
30、void xmcz()/按姓名查找 char name30;int i=0;printf("請輸入要查找職工姓名:");scanf("%s",name);system("cls");printf("t姓名t工號t基本工資t職務工資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.sala
31、ry3);void ghcz()/按工號查找 char id10;int i=0;printf("請輸入要查找職工工號:");scanf("%s",id);system("cls");printf("t姓名t工號t基本工資t職務工資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
32、);/刪除職工信息void del() int n=0;printf("1 按姓名刪除n");printf("2 按工號刪除n");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;i<N
33、umber;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;i<Number;i+)fwrite(&woi,sizeof(struct worker),1,fp);fclose(fp);printf("刪除成功;n");void ghsc()/按工號刪除 FILE *fp=NULL;char id60;in
34、t 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;Number-;/將剩余數(shù)據(jù)寫入文件 擦除以前的數(shù)據(jù)fp=fopen("C:/worker.dat","wb");for (i=0;i<Number;i+)fwrite(&woi,sizeof(struct worker),1,fp)
35、;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.salary3;printf("%s的總工資為:%fn",,sumi); /修改職工信息void modify() int mode=0;printf("請選擇修改查找方式n");printf("1 按姓名查找修改n&quo
36、t;); printf("2 按工號查找修改n"); scanf("%d",&mode);switch(mode)case 1: 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
37、+)if (strcmp(name,);elsebreak;printf("t姓名t工號t基本工資t職務工資t津貼n");printf("t%st%st%dtt%dtt%dn",,woi.ID,woi.salary1,woi.salary2,woi.salary3);printf("請重新輸入該職工信息");printf("姓名:");scanf("%s",);printf("工號:");scanf("%s"
38、,woi.ID);printf("基本工資:");scanf("%d",&woi.salary1);printf("職務工資:");scanf("%d",&woi.salary2);printf("津貼:");scanf("%d",&woi.salary3);/信息修改后重新更新文件里面的數(shù)據(jù) 以保持數(shù)據(jù)一致性fp=fopen("C:/worker.dat","wb");for (i=0;i<Number;
39、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工號t基本工資t職務工資t津貼n");printf("t%st%st%dtt%dtt%dn",,woi.ID,woi.salary1,woi.salary2,woi.salary3);printf("請重新輸入該職工信息");printf("姓名:");printf("姓名:");scanf("%s",);printf("工號:");scanf("%s",woi.ID);printf("基本工資:");scanf("%d"
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 蘭州資源環(huán)境職業(yè)技術大學《液壓流體力學》2023-2024學年第一學期期末試卷
- 濟寧職業(yè)技術學院《傳播效果監(jiān)測》2023-2024學年第一學期期末試卷
- 湖南幼兒師范高等??茖W校《結構耐久性理論》2023-2024學年第一學期期末試卷
- 湖南工業(yè)大學科技學院《嬰幼兒藝術發(fā)展與教育》2023-2024學年第一學期期末試卷
- 衡陽科技職業(yè)學院《地理信息系統(tǒng)A》2023-2024學年第一學期期末試卷
- 湖南交通職業(yè)技術學院《生物醫(yī)藥文獻檢索和專業(yè)英語》2023-2024學年第一學期期末試卷
- 浙江師范大學《發(fā)酵工程制造技術及應用》2023-2024學年第一學期期末試卷
- 鄭州體育職業(yè)學院《工業(yè)設計專業(yè)導論》2023-2024學年第一學期期末試卷
- 浙江工貿職業(yè)技術學院《短視頻策劃與運營》2023-2024學年第一學期期末試卷
- 食品中重金屬殘留的控制手段
- 2024-2025學年成都高新區(qū)七上數(shù)學期末考試試卷【含答案】
- 定額〔2025〕1號文-關于發(fā)布2018版電力建設工程概預算定額2024年度價格水平調整的通知
- 2025年浙江杭州市西湖區(qū)專職社區(qū)招聘85人歷年高頻重點提升(共500題)附帶答案詳解
- 《數(shù)學廣角-優(yōu)化》說課稿-2024-2025學年四年級上冊數(shù)學人教版
- “懂你”(原題+解題+范文+話題+技巧+閱讀類素材)-2025年中考語文一輪復習之寫作
- 2025年景觀照明項目可行性分析報告
- 2025年江蘇南京地鐵集團招聘筆試參考題庫含答案解析
- 2025年度愛讀書學長參與的讀書項目投資合同
- 電力系統(tǒng)分析答案(吳俊勇)(已修訂)
- 化學-河北省金太陽質檢聯(lián)盟2024-2025學年高三上學期12月第三次聯(lián)考試題和答案
- 期末復習試題(試題)-2024-2025學年四年級上冊數(shù)學 北師大版
評論
0/150
提交評論