![課程設計報告范文_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/7/df35494f-fb37-4107-b4f7-ead1d019c624/df35494f-fb37-4107-b4f7-ead1d019c6241.gif)
![課程設計報告范文_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/7/df35494f-fb37-4107-b4f7-ead1d019c624/df35494f-fb37-4107-b4f7-ead1d019c6242.gif)
![課程設計報告范文_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/7/df35494f-fb37-4107-b4f7-ead1d019c624/df35494f-fb37-4107-b4f7-ead1d019c6243.gif)
![課程設計報告范文_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/7/df35494f-fb37-4107-b4f7-ead1d019c624/df35494f-fb37-4107-b4f7-ead1d019c6244.gif)
![課程設計報告范文_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/7/df35494f-fb37-4107-b4f7-ead1d019c624/df35494f-fb37-4107-b4f7-ead1d019c6245.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、目 錄一、需求分析·········································2二、概要設計······
2、183;··································2三、詳細設計··············&
3、#183;··························5四、調(diào)試分析······················
4、···················18五、用戶手冊·····························
5、3;···········19六、測試數(shù)據(jù)·····································
6、183;···19七、附錄·············································23
7、一、 需求分析職工工資管理系統(tǒng) 功能設計要求 (1)輸入記錄:將每一個職工的姓名、ID號以及基本工資、職務工資、崗位津貼、醫(yī)療保險、公積金的數(shù)據(jù)作為一個記錄。該軟件能建立一個新的數(shù)據(jù)文件或給已建立好的數(shù)據(jù)文件增加記錄。(2)顯示記錄:根據(jù)用戶提供的記錄或者根據(jù)職工姓名顯示一個或幾個職工的各項工資和平均工資。(3)修改記錄:可以對數(shù)據(jù)文件的任意記錄的數(shù)據(jù)進行修改并在修改前后對記錄內(nèi)容進行顯示。(4)查找記錄:可以對數(shù)據(jù)文件的任意記錄的數(shù)據(jù)進行查找并在查找前后對記錄內(nèi)容進行顯示。 (5)刪除記錄:可刪除數(shù)據(jù)文件中的任一記錄。 (6) 統(tǒng)計: (A)計算各項工資平均工資及總工資, (B)統(tǒng)計符合指定
8、條件(如職工工資前三項之和在3000元以上、30002000元、20001000元) 以內(nèi)的工資職工人數(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 73 1294 04 張效章 1350 868 210 116 150 2162 05 彭山 745 39
9、8 84 61 68 1098 ¼ ¼ ¼ ¼ ¼ ¼ ¼ ¼ 各項平均工資 1092.2 625.2 145 88.8 108(要求:1.源文件采用多文件的工程結構2.數(shù)據(jù)存儲采用文件形式3.標準的C輸入輸出4.功能完善,適當?shù)淖⑨專?.關于文件的內(nèi)容需要自學)二、概要設計1、程序總體功能框架: 總量顯示主菜單查找功能顯示功能刪除功能輸入功能退出程序添加功能修改功能按姓名刪除按工號查找修改工號修改姓名修改職務工資修改基本工資修改醫(yī)療保險修改津貼修改公積金按姓名查找按工號刪除2、一些數(shù)據(jù)結構的介紹:struct w
10、orker 定義職工的結構體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 Sear
11、ch();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(); 用于
12、選擇顯示信息或返回到菜單 保存信息的函數(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 fir
13、st to enter the system *n"); printf("tt* please select Input! *n"); printf("tt* *n"); 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(&
14、quot;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<=7) switch(n) case 1:Input();brea
15、k; case 2:Modify();break; case 3:Search();break; case 4:Add();break; case 5:Delete();break; case 6:Show();break; case 7:Exit();break; else menu();菜單函數(shù)中包括輸入函數(shù)、修改函數(shù)、查找函數(shù)、添加函數(shù)、刪除函數(shù)、顯示函數(shù)、退出函數(shù)。根據(jù)菜單中各個函數(shù)代表的數(shù)字選擇相應的數(shù)字進行操作。 3、 詳細設計#include "stdio.h"#include "string.h"struct worker /定義結構體
16、int num; char name20; int jibengongzi; int zhiwugongzi; int jintie; int yiliaobaoxian; int gongjijin; int qiansan; int sum; worker100;void menu(); /定義幾個主要的函數(shù)void Input();void Modify();void Search();void Add();void Delete();void Show();void Exit();int main() /主函數(shù) system("cls"); menu();void
17、menu() /菜單函數(shù) 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"); printf("tt* 1-
18、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("t
19、tn"); printf("nn"); printf("ttInput your choose(1-7):"); /選擇需要進行的功能,選擇1-7之間的數(shù) scanf("%d",&n); if(n>=1&&n<=7) switch(n) /根據(jù)選擇不同的數(shù),實現(xiàn)不同的功能 case 1:Input();break; case 2:Modify();break; case 3:Search();break; case 4:Add();break; case 5:Delete();break;
20、 case 6:Show();break; case 7:Exit();break; else menu(); /如果選擇的數(shù)不在1至7之間,返回菜單重新輸入void Input() /輸入函數(shù) int i,p; clrscr(); printf("nnHow many people?(0-100):"); /輸入需要輸入信息的職工人數(shù) scanf("%d",&p); if(p>=0&&p<=100) /輸入職工的信息 printf("nn"); printf("Please input
21、data:n"); printf("n"); f1(); for(i=0;i<p;i+) input(i); workeri.sum=workeri.jibengongzi+workeri.zhiwugongzi +workeri.jintie-workeri.yiliaobaoxian-workeri.gongjijin; /計算職工的總工資 workeri.qiansan=workeri.jibengongzi+workeri.zhiwugongzi+workeri.jintie; /職工前三項工資(基本工資、職務工資、津貼)之和 else Input(
22、); /如果輸入的職工人數(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"); /選擇
23、方式的界面 printf("tt*n"); printf("tt* *n"); 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&q
24、uot;,&d); if(d!=1&&d!=2) printf("ninput error! Press any key to continue."); getchar(); Modify(); /選擇的數(shù)字錯誤,返回修改函數(shù)重新選擇 else if(d=1) do printf("nPlease input the name:"); /輸入需要修改職工的姓名 scanf("%s",m); for(i=0;i<n;i+) if(strcmp(m,)=0) j=i; if(j=-1)
25、 printf("nNot find!Please input again!n"); /沒有找到該職工,重新輸入 while(j=-1); else do printf("nPlease input the num:"); /輸入需要修改職工的工號 scanf("%d",&k); for(i=0;i<n;i+) if(k=workeri.num) j=i; if(j=-1) printf("nNot find!Please again!n"); /沒有找到該職工,重新輸入 while(j=-1); p
26、rintf("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.
27、yiliaobaoxian *n"); printf("tt* *n"); printf("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
28、:%s",); printf("nchange to:"); scanf("%s",); printf("nafter modify:%s",);break; case 2:printf("nbefore modify:%d",workerj.num); printf("nchange to:"); scanf("%d",&workerj.num); printf("nafte
29、r 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 modify:%d",workerj
30、.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); pri
31、ntf("nafter modify:%d",workerj.jintie);break; case 6:printf("nbefore modify:%d",workerj.yiliaobaoxian); printf("nchange to:"); scanf("%d",&workerj.yiliaobaoxian); printf("nafter modify:%d",workerj.yiliaobaoxian);break; case 7:printf("nbefore
32、 modify:%d",workerj.gongjijin); printf("nchange to:"); scanf("%d",&workerj.gongjijin); printf("nafter modify:%d",workerj.gongjijin);break; default:printf("Error!choice again!n");break; getchar(); printf("n"); f2(); workerj.sum=workerj.jibeng
33、ongzi+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 key to back!"); /返回到菜單 getchar(); menu();void Search()
34、 /查找函數(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"
35、;); printf("tt* 2.By number to search *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(&q
36、uot;%d",&k); for(i=0;i<n;i+) if(k=workeri.num) j=i; if(j=-1) printf("Not find!Please input again!n"); /沒有找到該職工,重新輸入 while(j=-1); printf("n"); f2(); output(j); /輸出信息 else if(d=1) do printf("nPlease input the name:"); /輸入需要查找的職工姓名 scanf("%s",m); for(
37、i=0;i<n;i+) if(strcmp(m,)=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! Press any key to continue."); /輸入錯誤,按enter鍵繼續(xù) getchar(); Search
38、(); /返回到查找函數(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 information:nn")
39、; /輸入添加的職工信息 f1(); for(i=n;i<k;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(); m
40、enu(); /返回到菜單 for(i=n;i<k;i+) if(fwrite(&workeri,sizeof(struct worker),1,fp)!=1) /判斷是否寫入了數(shù) printf(" 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(
41、); fp=fopen("D:zggz.txt","rb"); /打開只讀文件 printf("nn"); printf("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(&qu
42、ot;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("ninput error! Press any key to continue."); /輸入錯誤,按ent
43、er鍵繼續(xù) getchar(); Delete(); /返回到刪除函數(shù) else if(d=1) do printf("nPlease input the name:"); /輸入需要刪除的職工姓名 scanf("%s",m); for(i=0;i<n;i+) if(strcmp(m,)=0) j=i; if(j=-1) printf("nNot find!Please again!n"); /沒有找到該職工,重新輸入 while(j=-1); else do printf("nPlease i
44、nput the num:"); /輸入需要刪除的職工工號 scanf("%d",&k); for(i=0;i<n;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;i<n-1;i+) workeri=workeri+1; /刪除信息后,將后面的職工信息按原來的順序補充 for(i=0;i<n-1;i
45、+) output(i); printf("Save it?nn1.Yes 2.Non"); /詢問是否保存刪除后的職工信息 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&qu
46、ot;); /清屏 f2(); for(i=0;i<p;i+) output(i); printf("nnaverage salary:n"); for(i=0;i<p;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
47、("n(qian san xiang)renshu baifenbin"); for(i=0;i<p;i+) /統(tǒng)計前三項工資在各個范圍內(nèi)的人數(shù) if(workeri.qiansan>3000) a+; else if(workeri.qiansan>=2000 && workeri.qiansan<=3000) b+; else if(workeri.qiansan>=1000 && workeri.qiansan<=2000) c+; /顯示前三項工資在各個范圍內(nèi)的人數(shù)及所占人數(shù)的百分比printf(" over 3000:%-7d%6d%n",a,(a*100/p); printf(" 20003000:%-7d%6d%n",b,(b*10
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 智慧農(nóng)業(yè)園區(qū)開發(fā)與運營合作協(xié)議
- 事業(yè)單位工會活動方案
- 稅務顧問服務協(xié)議書
- 云計算服務平臺建設合同
- 樁基工程施工專業(yè)分包規(guī)定合同
- 合同付款補充協(xié)議書
- 煙草產(chǎn)品購銷合同
- 公司商鋪租賃合同書
- 獨家代理銷售合同
- 辦公效率提升解決方案實踐
- 視頻號運營規(guī)則
- 初三語文總復習全程計劃表
- 九年級初中語文閱讀理解專題訓練及答案
- 班規(guī)班約高一班規(guī)班約及考核細則
- 《幼兒文學》 課件全套 第1-8章 幼兒文學概述- 圖畫書
- 41篇小學三年級語文課外閱讀練習題及答案
- 《旅游學概論》第一章
- 馬克筆繪圖方法培訓PPT課件(內(nèi)容詳細)
- 二年級下冊綜合實踐活動教案-遇到危險怎么辦 全國通用
- 幼兒園中班開學第一課文案(55句)
- 網(wǎng)絡測試報告模板網(wǎng)絡測試報告模板八篇
評論
0/150
提交評論