職工工資管理系統(tǒng)課程設計報告

上傳人:good****022 文檔編號:116483165 上傳時間:2022-07-05 格式:DOC 頁數(shù):37 大?。?82KB
收藏 版權申訴 舉報 下載
職工工資管理系統(tǒng)課程設計報告_第1頁
第1頁 / 共37頁
職工工資管理系統(tǒng)課程設計報告_第2頁
第2頁 / 共37頁
職工工資管理系統(tǒng)課程設計報告_第3頁
第3頁 / 共37頁

下載文檔到電腦,查找使用更方便

15 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《職工工資管理系統(tǒng)課程設計報告》由會員分享,可在線閱讀,更多相關《職工工資管理系統(tǒng)課程設計報告(37頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、目 錄一、需求分析2二、概要設計2三、詳細設計5四、調試分析18五、用戶手冊19六、測試數(shù)據(jù)19七、附錄23一、 需求分析職工工資管理系統(tǒng) 功能設計要求 (1)輸入記錄:將每一個職工的姓名、ID號以及基本工資、職務工資、崗位津貼、醫(yī)療保險、公積金的數(shù)據(jù)作為一個記錄。該軟件能建立一個新的數(shù)據(jù)文件或給已建立好的數(shù)據(jù)文件增加記錄。(2)顯示記錄:根據(jù)用戶提供的記錄或者根據(jù)職工姓名顯示一個或幾個職工的各項工資和平均工資。(3)修改記錄:可以對數(shù)據(jù)文件的任意記錄的數(shù)據(jù)進行修改并在修改前后對記錄內容進行顯示。(4)查找記錄:可以對數(shù)據(jù)文件的任意記錄的數(shù)據(jù)進行查找并在查找前后對記錄內容進行顯示。 (5)刪除

2、記錄:可刪除數(shù)據(jù)文件中的任一記錄。 (6) 統(tǒng)計: (A)計算各項工資平均工資及總工資, (B)統(tǒng)計符合指定條件(如職工工資前三項之和在3000元以上、30002000元、20001000元) 以內的工資職工人數(shù)及占總職工人數(shù)的百分比。(C)按字符表格形式打印全部職工工資信息表及平均工資(包括各項總的平均工資)。 (7)保存數(shù)據(jù)文件功能。 例如:職工工資信息表 ID號 姓名 基本工資 職務工資 津貼 醫(yī)療保險- 公積金- 總工資 01 張望 1286 794 198 109 135 2034 02 李明 1185 628 135 94 114 1740 03 王小民 895 438 98 64

3、 73 1294 04 張效章 1350 868 210 116 150 2162 05 彭山 745 398 84 61 68 1098 各項平均工資 1092.2 625.2 145 88.8 108(要求:1.源文件采用多文件的工程結構2.數(shù)據(jù)存儲采用文件形式3.標準的C輸入輸出4.功能完善,適當?shù)淖⑨專?.關于文件的內容需要自學)二、概要設計1、程序總體功能框架: 總量顯示主菜單查找功能顯示功能刪除功能輸入功能退出程序添加功能修改功能按姓名刪除按工號查找修改工號修改姓名修改職務工資修改基本工資修改醫(yī)療保險修改津貼修改公積金按姓名查找按工號刪除2、一些數(shù)據(jù)結構的介紹:struct wor

4、ker 定義職工的結構體int num; 職工工號char name20; 職工姓名int jibengongzi; 職工的基本工資int zhiwugongzi; 職工的職務工資int jintie; 職工的津貼int yiliaobaoxian; 職工的醫(yī)療保險int gongjijin; 職工的公積金int qiansan; 職工前三項工資(基本工資、職務工資、津貼)之和 int sum; 職工的總工資worker100; 建立最多為100,、名為worker的結構體3、定義主要的函數(shù): void menu();void Input();void Modify();void Search

5、();void Add();void Delete();void Show();void Exit();4、幾個主要函數(shù)介紹:清屏函數(shù):system(cls); 將前面操作的屏幕清楚,但不會清除數(shù)據(jù)菜單函數(shù):menu(); 顯示主菜單,便于選擇輸入函數(shù):Input(); 用于輸入數(shù)據(jù) 修改函數(shù):Modify(); 用于修改數(shù)據(jù) 查找函數(shù):Search(); 用于查找信息 添加函數(shù):Add(); 用于增加信息 刪除函數(shù):Delete(); 用于刪除信息 顯示函數(shù):Show(); 用于顯示信息 退出函數(shù):Exit(); 用于退出該系統(tǒng) 選擇函數(shù):select(); 用于選擇顯示信息或返回到菜單 保

6、存信息的函數(shù):save(): 用于保存信息 保存人數(shù)的函數(shù):P(); 用于保存已保存數(shù)據(jù)的人數(shù)5、本程序模塊結構 主函數(shù)模塊 int main() system(cls); menu();執(zhí)行主函數(shù)后,執(zhí)行菜單函數(shù)。 菜單函數(shù)模塊void menu() int n; system(cls); printf(nnn); printf(tt*n); printf(tt* *n); printf(tt* If you were the first to enter the system *n); printf(tt* please select Input! *n); printf(tt* *n);

7、 printf(tt* 1-Input *n); printf(tt* 2-Modify *n); printf(tt* 3-Search *n); printf(tt* 4-Add *n); printf(tt* 5-Delete *n); printf(tt* 6-Show *n); printf(tt* 7-Exit *n); printf(tt* *n); printf(tt*n); printf(ttn); printf(nn); printf(ttInput your choose(1-7):); scanf(%d,&n); if(n=1&n=1&n=0&p=100) /輸入職工的

8、信息 printf(nn); printf(Please input data:n); printf(n); f1(); for(i=0;ip;i+) input(i); workeri.sum=workeri.jibengongzi+workeri.zhiwugongzi +workeri.jintie-workeri.yiliaobaoxian-workeri.gongjijin; /計算職工的總工資 workeri.qiansan=workeri.jibengongzi+workeri.zhiwugongzi+workeri.jintie; /職工前三項工資(基本工資、職務工資、津貼)之

9、和 else Input(); /如果輸入的職工人數(shù)超過100,返回輸入函數(shù)重新輸入 save(p); /保存輸入的職工信息 select(); /選擇顯示信息或返回到菜單void Modify() /修改函數(shù) int i,j=-1,d,k,t,n;char m20; FILE *fp; /定義一個文件指針 system(cls); /清屏 n=P(); printf(nn); printf(Choose the way you want to modify:n); /選擇通過何種方式修改信息 printf(nn); /選擇方式的界面 printf(tt*n); printf(tt* *n);

10、 printf(tt* 1.By name to modify *n); printf(tt* *n); printf(tt* 2.By number to modify *n); printf(tt* *n); printf(tt*n); printf(ninput your selection:); scanf(%d,&d); if(d!=1&d!=2) printf(ninput error! Press any key to continue.); getchar(); Modify(); /選擇的數(shù)字錯誤,返回修改函數(shù)重新選擇 else if(d=1) do printf(nPlea

11、se input the name:); /輸入需要修改職工的姓名 scanf(%s,m); for(i=0;in;i+) if(strcmp(m,workeri.name)=0) j=i; if(j=-1) printf(nNot find!Please input again!n); /沒有找到該職工,重新輸入 while(j=-1); else do printf(nPlease input the num:); /輸入需要修改職工的工號 scanf(%d,&k); for(i=0;in;i+) if(k=workeri.num) j=i; if(j=-1) printf(nNot fi

12、nd!Please again!n); /沒有找到該職工,重新輸入 while(j=-1); printf(nWhat do you want to modify?nn); /需要修改信息的界面 printf(tt*n); printf(tt* *n); printf(tt* 1.name 2.number *n); printf(tt* *n); printf(tt* 3.jibengongzi 4.zhiwugongzi *n); printf(tt* *n); printf(tt* 5.jintie 6.yiliaobaoxian *n); printf(tt* *n); printf(

13、tt* 7.gongjijin *n); printf(tt* *n); printf(tt*n); printf(nPlease input your selection:); /選擇需要修改的信息 scanf(%d,&t); switch(t) /通過選擇的數(shù)字,實現(xiàn)修改該信息 case 1:printf(nbefore modify:%s,workerj.name); printf(nchange to:); scanf(%s,workerj.name); printf(nafter modify:%s,workerj.name);break; case 2:printf(nbefore

14、 modify:%d,workerj.num); printf(nchange to:); scanf(%d,&workerj.num); printf(nafter modify:%d,workerj.num);break; case 3:printf(nbefore modify:%d,workerj.jibengongzi); printf(nchange to:); scanf(%d,&workerj.jibengongzi); printf(nafter modify:%d,workerj.jibengongzi);break; case 4:printf(nbefore modif

15、y:%d,workerj.zhiwugongzi); printf(nchange to:); scanf(%d,&workerj.zhiwugongzi); printf(nafter modify:%d,workerj.zhiwugongzi);break; case 5:printf(nbefore modify:%d,workerj.jintie); printf(nchange to:); scanf(%d,&workerj.jintie); printf(nafter modify:%d,workerj.jintie);break; case 6:printf(nbefore mo

16、dify:%d,workerj.yiliaobaoxian); printf(nchange to:); scanf(%d,&workerj.yiliaobaoxian); printf(nafter modify:%d,workerj.yiliaobaoxian);break; case 7:printf(nbefore modify:%d,workerj.gongjijin); printf(nchange to:); scanf(%d,&workerj.gongjijin); printf(nafter modify:%d,workerj.gongjijin);break; defaul

17、t:printf(Error!choice again!n);break; getchar(); printf(n); f2(); workerj.sum=workerj.jibengongzi+workerj.zhiwugongzi+workerj.jintie -workerj.yiliaobaoxian-workerj.gongjijin; /職工的總工資 output(j); printf(nSave it?nn1.Yes 2.Non); /詢問是否保存修改后的信息 scanf(%d,&i); if(i=1) save(n); /保存修改后的信息 printf(nPress any k

18、ey to back!); /返回到菜單 getchar(); menu();void Search() /查找函數(shù) int i,j=-1,k,d,n;char m20; n=P(); system(cls); /清屏 printf(Choose the way you want to search:n); /選擇通過何種方式查找信息 printf(nn); /選擇方式的界面 printf(tt*n); printf(tt* *n); printf(tt* 1.By name to search *n); printf(tt* *n); printf(tt* 2.By number to se

19、arch *n); printf(tt* *n); printf(tt*n); printf(nn); printf(Please input your selection:); /選擇查找的方式 scanf(%d,&d); if(d=2) do printf(nPlease input the number:); /輸入需要查找的職工工號 scanf(%d,&k); for(i=0;in;i+) if(k=workeri.num) j=i; if(j=-1) printf(Not find!Please input again!n); /沒有找到該職工,重新輸入 while(j=-1); p

20、rintf(n); f2(); output(j); /輸出信息 else if(d=1) do printf(nPlease input the name:); /輸入需要查找的職工姓名 scanf(%s,m); for(i=0;in;i+) if(strcmp(m,workeri.name)=0) j=i; if(j=-1) printf(Not find!Please input again!n); /沒有找到該職工,重新輸入 while(j=-1); printf(n); f2(); output(j); /輸出信息 if(d!=1&d!=2) printf(nInput error!

21、 Press any key to continue.); /輸入錯誤,按enter鍵繼續(xù) getchar(); Search(); /返回到查找函數(shù) select(); /選擇顯示信息或返回到菜單void Add() /添加函數(shù) int i,k,m,n; FILE *fp; /定義一個文件指針 system(cls); /清屏 n=P(); printf(nnHow many people do you want to add:); /輸入需要添加的職工人數(shù) scanf(%d,&m); k=m+n; if(k=100) printf(nnPlease input their informat

22、ion:nn); /輸入添加的職工信息 f1(); for(i=n;ik;i+) input(i); workeri.sum=workeri.jibengongzi+workeri.zhiwugongzi+workeri.jintie -workeri.yiliaobaoxian-workeri.gongjijin; /職工的總工資 if(fp=fopen(D:zggz.txt,ab)=NULL) /如果文件為空,則不能打開文件 printf(nCan not open file.n); /不能打開文件 getchar(); menu(); /返回到菜單 for(i=n;ik;i+) if(f

23、write(&workeri,sizeof(struct worker),1,fp)!=1) /判斷是否寫入了數(shù) printf(file write error.n); /文件寫入錯誤 fclose(fp); /關閉文件 select(); /選擇顯示信息或返回到菜單 else Add(); /返回到添加函數(shù)void Delete() /刪除函數(shù) int i,j=-1,d,k,t,n;char m20; FILE *fp; /定義一個文件指針 system(cls); /清屏 n=P(); fp=fopen(D:zggz.txt,rb); /打開只讀文件 printf(nn); printf(

24、Choose the way you want to delete:n); /選擇通過何種方式刪除信息 printf(nn); /刪除函數(shù)的界面 printf(tt*n); printf(tt* *n); printf(tt* 1.By name to delete *n); printf(tt* *n); printf(tt* 2.By number to delete *n); printf(tt* *n); printf(tt*n); printf(ninput your selection:); /選擇刪除的方式 scanf(%d,&d); if(d!=1&d!=2) printf(n

25、input error! Press any key to continue.); /輸入錯誤,按enter鍵繼續(xù) getchar(); Delete(); /返回到刪除函數(shù) else if(d=1) do printf(nPlease input the name:); /輸入需要刪除的職工姓名 scanf(%s,m); for(i=0;in;i+) if(strcmp(m,workeri.name)=0) j=i; if(j=-1) printf(nNot find!Please again!n); /沒有找到該職工,重新輸入 while(j=-1); else do printf(nPl

26、ease input the num:); /輸入需要刪除的職工工號 scanf(%d,&k); for(i=0;in;i+) if(k=workeri.num) j=i; if(j=-1) printf(nNot find!Please again!n); /沒有找到該職工,重新輸入 while(j=-1); printf(n); f2(); for(i=j;in-1;i+) workeri=workeri+1; /刪除信息后,將后面的職工信息按原來的順序補充 for(i=0;in-1;i+) output(i); printf(Save it?nn1.Yes 2.Non); /詢問是否保存

27、刪除后的職工信息 scanf(%d,&i); if(i=1) save(n-1); /保存刪除后的職工信息 printf(nPress any key to back!); /按enter鍵繼續(xù) getchar(); menu(); /返回到菜單void Show() /顯示函數(shù) int i,p,a=0,b=0,c=0,j=0,k=0,l=0,m=0,n=0; p=P(); system(cls); /清屏 f2(); for(i=0;ip;i+) output(i); printf(nnaverage salary:n); for(i=0;ip;i+) /各項工資的總和 j+=workeri

28、.jibengongzi; k+=workeri.zhiwugongzi; l+=workeri.jintie; m+=workeri.yiliaobaoxian; n+=workeri.gongjijin; printf(%13d %11d %12d %7d %15d,j/p,k/p,l/p,m/p,n/p); printf(n(qian san xiang)renshu baifenbin); for(i=0;i3000) a+; else if(workeri.qiansan=2000 & workeri.qiansan=1000 & workeri.qiansan=2000) c+;

29、/顯示前三項工資在各個范圍內的人數(shù)及所占人數(shù)的百分比printf( over 3000:%-7d%6d%n,a,(a*100/p); printf( 20003000:%-7d%6d%n,b,(b*100/p); printf( 10002000:%-7d%6d%n,c,(c*100/p); printf(n); printf(Press any key to back.); getchar(); menu(); /返回到菜單void Exit() /退出函數(shù) int i,p,a=0,b=0,c=0,j=0,k=0,l=0,m=0,n=0; p=P(); system(cls); /清屏 f2

30、(); for(i=0;ip;i+) output(i); printf(nnaverage salary:n); for(i=0;ip;i+) /各項工資的總和 j+=workeri.jibengongzi; k+=workeri.zhiwugongzi; l+=workeri.jintie; m+=workeri.yiliaobaoxian; n+=workeri.gongjijin; printf(%13d %11d %12d %7d %15d,j/p,k/p,l/p,m/p,n/p); printf(n(qian san xiang)renshu baifenbin); for(i=0

31、;i3000) a+; else if(workeri.qiansan=2000 & workeri.qiansan=1000 & workeri.qiansan=2000) c+; /顯示前三項工資在各個范圍內的人數(shù)及所占人數(shù)的百分比 printf( over 3000:%-7d%6d%n,a,(a*100/p); printf( 20003000:%-7d%6d%n,b,(b*100/p); printf( 10002000:%-7d%6d%n,c,(c*100/p); printf(n); getchar(); system(cls); /清屏 printf(nnnnnnnn); /退出

32、系統(tǒng)的界面 printf(t*n); printf(t * *n); printf(t * Thank you for the use of staff wage management system! *n); printf(t * *n); printf(t * *n); printf(t * Good-bye! *n); printf(t * *n); printf(t*n); printf(ttnn); getchar();f1() printf(num name jibengongzi zhiwugongzi jintie yiliaobaoxian gongjijinnn);f2() printf(num name jibengongzi zhiwugongzi jintie yiliaobaoxi

展開閱讀全文
溫馨提示:
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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關資源

更多
正為您匹配相似的精品文檔
關于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對上載內容本身不做任何修改或編輯。若文檔所含內容侵犯了您的版權或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!