湖南工程學院C語言課程設計報告工資管理系統(tǒng)_第1頁
湖南工程學院C語言課程設計報告工資管理系統(tǒng)_第2頁
湖南工程學院C語言課程設計報告工資管理系統(tǒng)_第3頁
湖南工程學院C語言課程設計報告工資管理系統(tǒng)_第4頁
湖南工程學院C語言課程設計報告工資管理系統(tǒng)_第5頁
已閱讀5頁,還剩30頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、精品 料推薦課 程 設 計 報 告課程名稱c 語言課程設計課題名稱工資管理系統(tǒng)專業(yè)汽車服務工程班級學號姓名指導教師王寧 肖偉平郭芳2014 年1 月 3 日1精品 料推薦湖南工程學院課 程 設 計 任 務 書課程名稱c 課程設計課題工資管理系統(tǒng)專業(yè)班級汽車服務 1202 班學生姓名學號指導老師王寧肖偉平郭芳審批任務書下達日期2013 年12 月 27 日任 務 完 成 日 期2014 年1 月 3 日2精品 料推薦一 、 設 計 內(nèi) 容 與 設 計 要 求1設計內(nèi)容:設計與發(fā)開一個工資管理系統(tǒng),對工號、姓名、編號、姓名、基本工資、扣款、應發(fā)工資、稅金、實發(fā)工資等信息進行管理。主要完成以下功能:

2、1)顯示所有數(shù)據(jù)2)單條顯示3)計算實發(fā)工資4)查找職工信息數(shù)據(jù)5)刪除記錄6)插入記錄7)追加記錄8)保存文件9)讀取文件10)按實發(fā)工資升序排序2 設計要求:1)設計正確,方案合理。2)界面友好,使用方便。3)程序精煉,結構清晰。4)設計報告5000 字以上,含程序設計說明、系統(tǒng)的功能框圖、流程圖、源程序清單等。5) 實際操作過程中遇到的問題及解決方法:設計總結及心得體會.3精品 料推薦6)上機演示。二、進 度 安 排第十七周周五上午 8 :0012:00(查閱相關資料并開始編寫源程序)第十七周周五晚上 18 :3022:30(完成源程序編寫調(diào)試運行課程設計報告)第十七周周六 下午 13

3、:3017:30(完成課程設計報告以及答辯)附:課程設計報告裝訂順序:封面、任務書、目錄、正文、評分、附件(a4 大小的圖紙及程序清單) 。正文的格式 : 一級標題用3 號黑體 , 二級標題用四號宋體加粗, 正文用小四號宋體; 行距為 22。正文的內(nèi)容 : 一、課題的主要功能;二、課題的功能模塊的劃分(要求畫出模塊圖);三、主要功能的實現(xiàn)(至少要有一個主要模塊的流程圖);四、程序調(diào)試; 五、總結;六、附件(所有程序的原代碼,要求對程序?qū)懗霰匾淖⑨專U目傋謹?shù)要求在5000 字以上(不含程序原代碼)。4精品 料推薦一、課題的主要功能主要實現(xiàn)對職工工資信息實現(xiàn)工資的顯示,工資的追加,工資的查詢

4、,職工的刪除,職工的插入,應發(fā)工資的計算等功能。工資管理系統(tǒng)具體提供以下功能:a、工資顯示: 完成全部職工工資信息的顯示,以表格形式顯示出來,并帶有表頭。b、工資追加: 新增職工工資記錄,在追加過程中有相應的提示信息并實現(xiàn)連續(xù)追加的功能。c、工資查詢:對指定的姓名進行定位查詢, 并能顯示出符合條件的查詢結果。查詢的信息不存在時,系統(tǒng)提示:list no * salaryd、刪除職工: 對指定的編號進行定位刪除,刪除成功時不顯示任何信息。若此職工不存在時,系統(tǒng)顯示:not found !e、添加職工: 對指定的編號前進行定位插入,有相應的提示信息。f 、計算應發(fā)工資: 對相應的職工輸入相應的扣款

5、,系統(tǒng)將自行計算出相應職工的應發(fā)工資并以表格形式顯示出來,并帶有表頭。5精品 料推薦二、課題功能模塊的劃分本程序由八個模塊構成,其中主模塊是由系統(tǒng)函數(shù)搭建而成,其重要功能是顯示出功能主菜單,由用戶作出選擇進入子菜單。在子菜單中操作完畢后,能夠準確返回到功能主菜單。2.1 系統(tǒng)主要模塊流程圖:主函數(shù)初輸顯計查刪插追保入示算找除入加存退始信信應信信信記文出息息發(fā)息息息錄件系化功功工功功功功功統(tǒng)能能資能能能能能2.2 模塊說明初始化模塊init()將表格清零輸入模塊create()輸入職工工資信息顯示模塊list()顯示職工工資信息計算模塊calc()計算職工的應發(fā)工資查找模塊search()查詢職

6、工工資信息刪除模塊dele()刪除職工工資信息插入模塊insert()插入職工工資信息追加模塊append()追加職工工資信息6精品 料推薦保存模塊save()保存信息退出模塊quit()退出系統(tǒng)三、主要功能的實現(xiàn)(下面以刪除模塊和查找模塊為例)3.1 刪除模塊的流程圖開始主菜單delete a record輸 入 職 工 編 號退出系統(tǒng)3.2 查找模塊的流程圖7精品 料推薦開始主菜單search record on name輸 入 職 工 姓 名顯 示 相 應 信 息退出系統(tǒng)四、程序調(diào)試4.1 功能主菜單選擇界面4.2 初始化功能在主菜單中選擇“ init list”進行初始化。8精品 料推

7、薦4.3 輸入功能在主菜單中選擇“ enter list”進入輸入界面。在no 列輸入 表示完成輸入,然后系統(tǒng)會提示按任意鍵進入主菜單。4.4 顯示功能在主菜單中選擇“ list all”進入顯示界面。這里的扣款、應發(fā)工資、稅金、實發(fā)工資為零是因為還沒有進行應發(fā)工資的計算。9精品 料推薦4.5 計算應發(fā)工資在主菜單中選擇“ calc the salary”進入計算應發(fā)工資界面。輸入相應的扣款后,系統(tǒng)會提示按任意鍵繼續(xù),然后會提示按任意鍵進入主菜單。4.6 查找功能在主菜單中選擇“ search recordon name”進入查找界面。根據(jù)系統(tǒng)提示按姓名查找職工工資信息,按任意鍵進入主菜單。1

8、0精品 料推薦4.7 刪除功能在主菜單中選擇“ delete a record ”進入刪除界面。根據(jù)系統(tǒng)提示按編號刪除某一職工。若成功刪除,系統(tǒng)顯示下面的界面;若沒有此編號的職工,則系統(tǒng)提示“notfound !”。然后,按任意鍵進入主菜單。4.8 插入功能在主菜單中選擇“ insertrecordto list”進入插入界面。要在某編號前插入一職11精品 料推薦工,根據(jù)系統(tǒng)的提示先輸入編號,再輸入此職工的信息。然后按任意鍵進入主菜單。4.9 追加功能在主菜單中選擇“ append recordto file”進入追加界面。輸入一組需要追加的信息后,輸入追加到哪個文件,系統(tǒng)顯示追加成功。然后按

9、任意鍵進入主菜單。4.10 保存文件在主菜單中選擇“ save data to file”進行保存文件操作。根據(jù)系統(tǒng)提示輸入保存12精品 料推薦的文件名,然后按任意鍵進入主菜單。4.11 讀取文件在主菜單中選擇“ load data from the file”讀取文件。根據(jù)系統(tǒng)提示輸入需要讀取的文件名,然后按任意鍵進入主菜單。4.12 退出系統(tǒng)在主菜單中選擇“ quit ”退出系統(tǒng)。界面消失。13精品 料推薦五、總結機械工程學院課程設計評分表課程名稱:工資管理系統(tǒng)項目評價設計方案的合理性與創(chuàng)造性設計與調(diào)試結果設計說明書的質(zhì)量答辯陳述與回答問題情況課程設計周表現(xiàn)情況綜合成績教師簽名:日期:14

10、精品 料推薦六、附件源程序代碼:/*頭文件( .h )*/#include stdio.h /*i/o函數(shù) */# include bios.h /*rom基本輸入輸出函數(shù)*/#include dos.h/*dos接口函數(shù) */#include conio.h /*屏幕操作函數(shù)*/#include stdlib.h /*其它說明 */#include string.h /*字符串函數(shù) */#include mem.h/*內(nèi)存操作函數(shù)*/#include ctype.h /*字符操作函數(shù)*/#include alloc.h /*動態(tài)地址分配函數(shù)*/*變量定義 */typedef struct z

11、1/*定義數(shù)據(jù)結構 */char no11;/*編號 */char name15;/*姓名 */float jbgz; /*基本工資 */float koukuan; /*扣款 */float yfgz; /*應發(fā)工資 */float shuijin; /*稅金 */float sfgz; /*實發(fā)工資 */struct z1 *next;/*后繼指針 */salary; /*結構體類型名 */struct z1 *head;/*鏈表頭指針 */*函數(shù)原型 */15精品 料推薦void init();/*初始化 */void create(); /*創(chuàng)建鏈表 */void calc();/*計

12、算應發(fā)工資 */void delete(); /*刪除 */void search(); /*查找 */void save();/*保存文件 */void load();/*讀取文件 */void insert(); /*插入 */void append(); /*追加 */void list(); /*顯示所有數(shù)據(jù) */void print(salary *p); /*輸出單條記錄 */float fax(float x); /*計算稅金 */int menu_select();/*主菜單 */*主函數(shù)開始 */main()int i;clrscr();for(;)switch(menu_s

13、elect() /*調(diào)用菜單函數(shù)返回一個整數(shù)值 */case 0:init();break;/*初始化 */case 1:create();break;/*輸入數(shù)據(jù)創(chuàng)建雙鏈表 */case 2:list();break;/*顯示所有數(shù)據(jù) */case 3:calc();break;/*計算實發(fā)工資 */case 4:search();break;/*查找職工信息數(shù)據(jù) */case 5:delete();break;/*刪除記錄 */case 6:insert();break;/*插入記錄 */case 7:append();break; /*追加記錄 */case 8:save();break

14、;/*保存文件 */16精品 料推薦case 9:load(); break;/*讀取文件 */case 10:exit(0);/*退出 */* 菜單函數(shù),函數(shù)返回值為整型,代表所選的菜單項*/menu_select()char *f= /*定義菜單字符串數(shù)組*/*menu*, /*菜單的標題行 */ 0. init list, /*初始化雙鏈表 */ 1. enter list, /*輸入數(shù)據(jù),創(chuàng)建鏈表*/ 2. list all n,/*顯示所有記錄 */ 3. calc the salary, /*計算實發(fā)工資 */ 4. search record on name, /*查找記錄 */

15、 5. delete a record, /*刪除記錄 */ 6. insert record to list, /*插入記錄 */ 7. append record to file, /*追加記錄 */ 8. save data to the file,/*保存文件 */ 9. load data from the file,/*讀取文件 */ 10. quit ; /*退出 */char s80;int i;int key=0; /*記錄所壓鍵值 */int c=0;gotoxy(1,25); /*移動光標 */printf(press any key enter menu.n);/*壓任

16、意鍵進入主菜單 */getch();clrscr(); /*清屏 */textcolor(yellow); /*設置文本顏色為黃色*/textbackground(blue); /*設置背景顏色為蘭色 */17精品 料推薦gotoxy(10,2);putch(0xda); /*輸出左上角邊框*/for(i=1;i44;i+)putch(0xc4); /*輸出上邊框水平線*/putch(0xbf); /*輸出右上角邊框 */for(i=3;i22;i+)/*輸出左右兩邊的垂直線*/gotoxy(10,i);putch(0xb3);gotoxy(54,i);putch(0xb3);gotoxy(1

17、0,22);putch(0xc0); /*輸出左上角邊框*/for(i=1;i44;i+)putch(0xc4); /*輸出下邊框水平線*/putch(0xd9); /*輸出右下角邊框*/window(11,3,53,21); /*制作顯示菜單的窗口,大小根據(jù)菜單條數(shù)設計*/clrscr();/*清屏 */for(i=0;i8; /*對所壓的鍵進行判斷*/gotoxy(10,i+1);18精品 料推薦textbackground(blue);/*設置背景顏色為藍色*/cprintf(%s,fi); /*輸出菜單項 */if(key=72) i=i=1?11:i-1; /*如壓向上光標鍵,i減

18、1,如已到第一行再上移,則到最后一行 */if(key=89)i=i=11?1:i+1;/*如壓向下光標鍵,i 加 1,如已到最后一行再下移,則到第一行 */gotoxy(10,i+1); /*光標移動i 的下一項 */textbackground(lightgreen); /*將背景顏色設為淺綠*/cprintf(%s,fi); /*輸出菜單項 */c=i-1; /*給代表菜單選項的整數(shù)賦值*/textbackground(black); /*設置背景顏色為黑色*/window(1,1,80,25); /*恢復原窗口大小*/return c; /*返回代表菜單選項的整數(shù)值*/* 初始化函數(shù)

19、*/void init()head=null;/* 輸入數(shù)據(jù),創(chuàng)建鏈表*/void create()int x; /*記錄行坐標 */int i; /*記錄輸入記錄數(shù)*/int flag=0; /*做結束標記 */float temp;/*定義臨時變量*/salary *info,*p; /*定義臨時變量*/if(head!=null)init(); /*如果頭指針為空,調(diào)用初始化函數(shù)*/19精品 料推薦p=head; /*從頭指針開始*/for(;)if(flag=1)break;/*如果 flag=1 ,結束輸入 */i=0;x=0;/*確定移動的行坐標*/clrscr(); /*清屏 *

20、/gotoxy(1,3);printf(*gongziguanli*);/*輸出標題 */gotoxy(1,4);printf(-enter end-);/*提示輸入 結束 */gotoxy(1,5);printf(|-|);/*輸出表格的起始線*/gotoxy(1,6);printf(|no|name| jbgz |);/*輸出字段標題,注意空格數(shù)*/for(;)gotoxy(1,7+x);printf(|-|-|-|);/*輸出表格的水平線*/info=(salary *)malloc(sizeof(salary);/*申請一個記錄空間*/if(!info)printf(nout of m

21、emory);/*如沒有得到空間,輸出內(nèi)存溢出信息*/exit(0);/*退出程序 */info-next=null;/*新結點的后繼為空*/gotoxy(1,8+x);printf(|); /*輸出數(shù)據(jù)間的分割線*/gotoxy(12,8+x);printf(|);gotoxy(29,8+x);printf(|);gotoxy(38,8+x);printf(|);gotoxy(2,8+x);/*光標到輸入編號位置*/20精品 料推薦inputs(info-no,10);/*輸入編號,并驗證長度不超過10*/if(info-no0=)flag=1;break; /*編號首字符為 結束輸入 */

22、gotoxy(13,8+x); /*光標到輸入姓名位置*/inputs(info-name,14); /*輸入姓名,并驗證長度不超過14*/gotoxy(30,8+x); /*光標到輸入基本工資位置*/scanf(%f,&temp); /*輸入基本工資到臨時變量*/info-jbgz=temp; /*基本工資賦值 */info-koukuan=0; /*初始扣款為0,待計算工資時輸入*/info-sfgz=0; /*初始實發(fā)工資為0,待計算工資時計算*/info-shuijin=0; /*初始稅金為0,待計算工資時計算*/info-yfgz=0; /*初始應發(fā)工資為0,待計算工資時計算*/if

23、(p=null)/*如果 p 為空,說明輸入的是第一個結點*/head=info;/*頭指針 */info-next=null; /*info的后繼是空 */else /*插入的結點不是第一結點,則插入在頭結點之前*/info-next=p;/*新結點的后繼指向原來的頭結點*/p=info; /*新結點變?yōu)閜 結點,暫時的頭結點*/head=info; /*新結點變?yōu)轭^結點*/x+=2;/*因為水平線,將光標下移兩行*/gotoxy(1,8+x);i+;/*輸入記錄數(shù)加1*/if(i%9=0)break; /*輸入 9 個記錄,換一頁輸入*/21精品 料推薦gotoxy(1,8+x);prin

24、tf(|-|-|-|);/*輸出結尾水平線*/* 字符串輸入和驗證函數(shù)*/inputs(char *s, int count)char p255;doscanf(%s,p);/*輸入字符串 */if(strlen(p)count)printf(n too long! n);/*進行長度校驗,超過count 值重輸入 */while(strlen(p)count);strcpy(s,p); /*將輸入的字符串拷貝到字符串s 中 */* 顯示鏈表 */void list()int i=0,n; /*記錄輸出行數(shù) */salary *p; /*定義移動指針 */clrscr(); /*清屏 */p=

25、head; /*從頭指針開始*/if(head!=null)clrscr(); /*清屏 */printf(nnn); /*換行 */printf(*salary*n);/*輸出標題信息 */printf(|no|name|jbgz | koukuan|yfgz | shuijin |sfgz|n); /*輸出字段標題 */22精品 料推薦printf(|-|-|-|-|-|-|-|n);doprintf(|%-10s|%-15s|%9.2f|%9.2f|%9.2f|%9.2f|%9.2f|n, p-no,p-name, p-jbgz,p-koukuan,p-yfgz,p-shuijin,p-

26、sfgz);printf(|-|-|-|-|-|-|-|n);p=p-next;while(p!=null);/*顯示所有內(nèi)容*/printf(*end*n);getch();/* 輸出指針所指結點信息*/void print(salary *p)if(p)/*如果指針不為空,則顯示信息*/clrscr(); /*清屏 */printf(nnn); /*換行 */printf(*salary*n); /*輸出標題信息 */printf(|no|name|jbgz | koukuan|yfgz | shuijin |sfgz|n); /*輸出字段標題 */23精品 料推薦printf(|-|-|

27、-|-|-|-|-|n); /*輸出分割線 */printf(|%-10s|%-15s|%9.2f|%9.2f|%9.2f|%9.2f|%9.2f|n, p-no,p-name,p-jbgz,p-koukuan,p-yfgz,p-shuijin,p-sfgz);/*輸出結點信息*/printf(*end*n); /*輸出結束標記 */* 計算實發(fā)工資 */void calc()int x; /*行坐標 */int i=0; /*記錄數(shù) */float temp; /*臨時變量扣款 */salary *p; /*移動指針 */clrscr();/*清屏 */p=head; /*從頭指針開始*/w

28、hile(p!=null) /*當 p 不為空時,也就是有記錄時,外循環(huán)控制換頁*/x=0;clrscr();gotoxy(1,3);printf(*gongziguanli*);/* 輸出標題 */gotoxy(1,5);printf(|-|);gotoxy(1,6);/*下面輸出字段標題*/printf(|no|name| jbgz | koukuan| yfgz |shuijin| sfgz24精品 料推薦|);while(p!=null) /*當 p 不為空時,也就是有記錄時,內(nèi)循環(huán)控制處理9 條 */gotoxy(1,7+x);printf(|-|-|-|-|-|-|-|);goto

29、xy(1,8+x);printf(|);gotoxy(12,8+x);printf(|);gotoxy(29,8+x);printf(|);gotoxy(38,8+x);printf(|);gotoxy(49,8+x);printf(|);gotoxy(58,8+x);printf(|);gotoxy(67,8+x);printf(|);gotoxy(76,8+x);printf(|);gotoxy(2,8+x);printf(%-10s,p-no); /*輸出編號 */gotoxy(13,8+x);printf(%-15s,p-name); /*輸出姓名 */gotoxy(30,8+x);p

30、rintf(%.2f,p-jbgz);/*輸出基本工資 */gotoxy(39,8+x);scanf(%f,&temp); /*輸入扣款 */p-koukuan=temp; /*扣款字段賦值 */p-yfgz=p-jbgz-p-koukuan; /*計算應發(fā)工資 =基本工資 - 扣款 */gotoxy(50,8+x);printf(%.2f,p-yfgz);/*輸出應發(fā)工資 */gotoxy(59,8+x);p-shuijin=(p-yfgz-1000)*fax(p-yfgz); /*否則按稅率計算稅金 */printf(%.2f,p-shuijin); /*輸出稅金 */gotoxy(68,

31、8+x);p-sfgz=p-yfgz-p-shuijin; /*計算實發(fā)工資 */25精品 料推薦printf(%-8.2f,p-sfgz); /*輸出實發(fā)工資 */x+=2;/*行坐標下移兩行*/i+;/*記錄數(shù)加1*/if(i%9=0)break; /*記錄數(shù)超過9 條,跳出內(nèi)循環(huán)*/p=p-next;/*指針后移,處理下一條*/gotoxy(1,7+x);printf(|-|-|-|-|-|-|-|n); /*輸出結束行 */printf(press any key congtinue.n);getch();/* 根據(jù)應發(fā)工資,計算稅率*/float fax(float x)float f1;if(xno)return p; /*比較相等,查找成功,返回指針*/p=p-next; /*不相等指針后移*/printf(not foundn); /*沒有找到 */return null; /*返回為空指針 */* 刪除結點 */void delete()salary *p,*q=null; /*定義臨時變量,p 指向要刪除的結點p*/char s11; /*要刪除結點的編號*/clrscr(); /*清屏 */printf(please deleted non); /*提示輸入信息*/scanf(%s,s);/*輸入要刪除的職工編號*/p=q=head; /*從頭指針

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論