




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、目錄需求分析.1概要設(shè)計.3詳細(xì)設(shè)計.12調(diào)試分析.12用戶手冊.13測試數(shù)據(jù).17附錄.31需求分析源文件采納多文件的工程結(jié)構(gòu)。數(shù)據(jù)存儲采納文件形式。標(biāo)準(zhǔn)C+輸入輸出程序完成企業(yè)人事工資治理,能夠?qū)崿F(xiàn)工資的錄入、統(tǒng)計(整個單位的平均工資、最高工資、最低工資和工資均方差;各部門的平均工資、最高工資、最低工資和工資均方差)、查詢(按工號或姓名查詢)、修改、刪除等功能。程序執(zhí)行的命令:錄入職職員資信息;選擇需要執(zhí)行的操作(添加、統(tǒng)計、刪除、修改、查詢);輸出結(jié)果。概要設(shè)計設(shè)計類的數(shù)據(jù)類型定義class messageprivate:char bornplace10,duty10;/籍貫 職務(wù) in
2、t ID;/身份證號public:char name10,bumen10;/姓名 部門 int number; /工號int basesalary;/差不多工資int jobsalary;/崗位工資int yljj;/醫(yī)療基金int sj;/稅金int jiangjin;/獎金friend void modify(int x); /友員函數(shù)friend int del(int x); /友員函數(shù) 程序模塊錄入操作:void writen(int x),該模版要緊實(shí)現(xiàn)工資信息的錄入;添加操作:void add(int x),該模版要緊實(shí)現(xiàn)工資信息的添加;刪除操作:void del(int x),
3、該模版要緊實(shí)現(xiàn)工資信息的刪除;修改操作:void modify(int x),該模版要緊實(shí)現(xiàn)工資信息的修改;查詢操作:void find(int x) ,該模版要緊實(shí)現(xiàn)工資信息的查詢(按名字查詢或按工號查詢);統(tǒng)計操作:void count(int x),該模版要緊實(shí)現(xiàn)工資信息的統(tǒng)計(統(tǒng)計單位的平均工資、最高工資、最低工資、工資均方差;統(tǒng)計部門的平均工資、最高工資、最低工資、工資均方差)。 3程序模塊結(jié)構(gòu)void main()菜單(輸入選擇);操作;三、詳細(xì)設(shè)計(1)類模塊class messageprivate:char bornplace10,duty10;/籍貫 職務(wù) int ID;/身
4、份證號public:char name10,bumen10;/姓名 部門 int number; /工號int basesalary;/差不多工資int jobsalary;/崗位工資int yljj;/醫(yī)療基金int sj;/稅金 int jiangjin;/獎金message() /*構(gòu)造函數(shù)void xinxi(char a_name,char a_bornplace,char a_duty,char a_bumen,int a_ID,int a_number,int a_basesalary,int a_jobsalary,int a_jiangjin,int a_yljj,int a
5、_sj)strcpy(name,a_name); strcpy(bornplace,a_bornplace); strcpy(duty,a_duty); strcpy(bumen,a_bumen); ID=a_ID; number=a_number; basesalary=a_basesalary; jobsalary=a_jobsalary; jiangjin=a_jiangjin; yljj=a_yljj; sj=a_sj; message &operator=(const message &s) /*運(yùn)算符重載 strcpy(name,);strcpy(bornplace,s
6、.bornplace);strcpy(duty,s.duty);strcpy(bumen,s.bumen);ID=s.ID;number=s.number;basesalary=s.basesalary;jobsalary=alary;jiangjin=s.jiangjin;yljj=s.yljj;sj=s.sj;return * this;friend void modify(int x); /*友元函數(shù)friend int del(int x);void put()coutname bornplace duty bumen ID number basesalary jobsal
7、ary jiangjin yljj sjendl;message() /*析構(gòu);(2)主函數(shù)流程圖 開始int b,or,i輸入i值i=1錄入i=2添加i=3刪除i=4修改i =5查找i=6統(tǒng)計i=7退出結(jié)束(3)錄入、添加函數(shù)流程圖開始開始cout(請輸入您要添加的信息)cout(姓名,工號,職務(wù),身份證號,籍貫,差不多工資,崗位工資,獎金,醫(yī)療住房基金,稅金)cin(name,num,duty,ID,bornplace,basesalary,jobsalary,jiangjin,yljj,sj)結(jié)束刪除函數(shù)流程圖開始開始int i,j,temp,flag=-1,char ming輸入刪除的
8、名字name=mingitemp,jtemp-1aj=bi,i+,j+i+沒有找到要刪除的人endmessage a30;fstream ap(wenjian.txt,ios:in|ios:out); /文件打開操作 coutming; /輸入要刪除的人員姓名 coutendl; for(j=0,i=0;itemp;i+) /推斷是否刪除 if(strcmp(,ming)=0)/標(biāo)記要刪除的信息 flag=i; if(flag=-1)cout沒有要刪除的信息。endl;return 0; for(j=0,i=0;itemp,jtemp-1; )/刪除信息if(flag!=i)aj
9、=bi; /刪除信息i+;j+;elsei+;(5)修改函數(shù)流程圖startstartint i,j,char name輸入=ming輸入修改的信息(名字,工號,職務(wù),身份證號,籍貫,工資)cin(name,num,duty,ID,bornplace,basesalary,jobsalary,jiangjin,yljj,sj)沒找到要修改的endcoutming;coutendl;coutflagendl;cout請輸入修改信息:endl; cout姓名: ;cout籍貫: bflag.bornplace;cout職務(wù): bflag.duty;cout
10、部門: bflag.bumen;cout身份證號: bflag.ID;cout工號: bflag.number;cout差不多工資: bflag.basesalary;cout崗位工資: alary;cout獎金: bflag.jiangjin;cout醫(yī)療住房基金: bflag.yljj;cout稅金: bflag.sj;coutendl;(6)查找函數(shù)流程圖開始開始int i,j,k,num;char ming,k=1輸入要查詢的名字=ming輸入要查詢的工號bi.putBi.num=numm沒有找到要查找的姓名沒有找到要查找的工號結(jié)束1:按姓名查詢cou
11、tming; message b30;fstream sp(wenjian.txt,ios:in|ios:out); for(j=0,i=0;itemp;i+)if(strcmp(,ming)=0)cout姓名 籍貫 職務(wù) 部門 身份證號 工號 差不多工資 崗位工資 獎金 醫(yī)療住房基金 稅金 endl;bi.put();2.按工號查詢:coutnu; message b30;for(i=0;itemp;i+)if(bi.number=nu)cout姓名 籍貫 職務(wù) 部門 身份證號 工號 差不多工資 崗位工資 獎金 醫(yī)療住房基金 稅金 a_bumenbi.bumen=a_bumen
12、i=0,j=0,jtempi+j+sum=sum+bi.basesalary+alary+bi.jiangjin-bi.yljj-bi.sj;ui=bi.basesalary+alary+bi.jiangjin-bi.yljj-bi.sj;i=0,j=0,jtempbi.bumen=a_bumensum=sum+basesalary+.jobsalary+.jiangjin-.yljj-.sj;ui=.basesalary+jobsalary+.jiangjin-.yljj-sj;i+j+end按部門統(tǒng)計 for(j=0,i=0;itemp;i+)if(strcmp
13、(bi.bumen,a_bumen)=0)sum=sum+bi.basesalary+alary+bi.jiangjin-bi.yljj-bi.sj; /實(shí)發(fā)工資ui=bi.basesalary+alary+bi.jiangjin-bi.yljj-bi.sj;j+;int max;int min; max=u0;min=u0;int bb;for(i=0;imax)bb=Ui;Ui=max;max=bb; /最高工資for(i=0;itemp;i+)if(Uimin)bb=Ui;Ui=min;min=Ui;/最低工資for(i=0;itemp;i+) bi.base
14、salary=abs(sum/(j+0.0)-bi.basesalary);/工資均方差sum1=sum1+bi.basesalary;2.單位統(tǒng)計int U20;for(i=0;i20;i+)Ui=0;for(j=0,i=0;itemp;i+)sum=sum+bi.basesalary+alary+bi.jiangjin-bi.yljj-bi.sj;/實(shí)發(fā)工資Ui=bi.basesalary+alary+bi.jiangjin-bi.yljj-bi.sj;j+;int max;int min; max=U0;min=U0;int bb;for(i=0;imax)b
15、b=Ui;Ui=max;max=bb; /最高工資for(i=0;itemp;i+)if(Uimin)bb=Ui;Ui=min;min=Ui;/最低工資for(i=0;itemp;i+) bi.basesalary=abs(sum/(j+0.0)-bi.basesalary);/工資均方差sum1=sum1+bi.basesalary;四、調(diào)試分析1、開始使用文件保存時出現(xiàn)不能為read錯誤,后通過查閱資料解決了問題;2、刪除部分程序開始不能推斷是否找到了要刪除的人員信息,后來加了flag標(biāo)記后能夠推斷了;3、統(tǒng)計部分程序在求均方差的時候出現(xiàn)算法錯誤,后來查閱了均方差公式后改正了過來4、使用友
16、員函數(shù)能夠解決類外作用域問題。五、用戶手冊1.本程序的運(yùn)行環(huán)境為doc操作系統(tǒng);2進(jìn)入界面后,按照提示輸入選擇;3.選擇1:執(zhí)行工資信息錄入操作;4.選擇2:執(zhí)行工資信息添加操作;5.選擇3:執(zhí)行工資信息刪除操作;6.選擇4:執(zhí)行工資信息修改操作;7.選擇5:執(zhí)行工資信息查詢操作;8.選擇6:執(zhí)行工資信息統(tǒng)計操作;9.選擇7:退出工資治理系統(tǒng);10.輸入后按回車鍵,即可輸出信息,按提示輸入即可。六、測試數(shù)據(jù)(1)選擇1:工資錄入選擇(2):添加工資信息(3)選擇3:刪除工資信息(4)選擇4:修改工資信息(5)選擇5:查找工資信息(6)選擇6:統(tǒng)計工資信息(7)選擇7:退出七、附錄#includ
17、eiostream.h#include stdlib.h#include stdio.h#includestring.h#includemessage.hclass messageprivate:char bornplace10,duty10;/籍貫 職務(wù) int ID;/身份證號public:char name10,bumen10;/姓名 部門 int number; /工號int basesalary;/差不多工資int jobsalary;/崗位工資int yljj;/醫(yī)療基金int sj;/稅金 int jiangjin;/獎金message() /*構(gòu)造函數(shù)void xinxi(ch
18、ar a_name,char a_bornplace,char a_duty,char a_bumen,int a_ID,int a_number,int a_basesalary,int a_jobsalary,int a_jiangjin,int a_yljj,int a_sj)strcpy(name,a_name);strcpy(bornplace,a_bornplace);strcpy(duty,a_duty);strcpy(bumen,a_bumen);ID=a_ID;number=a_number;basesalary=a_basesalary;jobsalary=a_jobsal
19、ary;jiangjin=a_jiangjin;yljj=a_yljj;sj=a_sj;message &operator=(const message &s) /*運(yùn)算符重載 strcpy(name,); strcpy(bornplace,s.bornplace);strcpy(duty,s.duty);strcpy(bumen,s.bumen);ID=s.ID;number=s.number;basesalary=s.basesalary;jobsalary=alary;jiangjin=s.jiangjin;yljj=s.yljj;sj=s.sj;return *
20、 this;friend void modify(int x); /*友元函數(shù)friend int del(int x);void put() /定義put函數(shù),以便于其他函數(shù)的調(diào)用coutname bornplace duty bumen ID number basesalary jobsalary jiangjin yljj sjendl;message() /*析構(gòu);void main()int i,b;int or;cout*歡迎進(jìn)入企業(yè)工資治理系統(tǒng)*endl;cout*1.工資信息錄入操作*endl;cout*2.工資信息增加操作*endl;cout*3.工資信息刪除操作*endl;
21、cout*4.工資信息修改操作*endl;cout*5.工資信息查找操作*endl;cout*6.工資信息統(tǒng)計操作*endl;cout*7.退出*endl;cout*請輸入你要進(jìn)行的操作選項*i;coutendl;while(i!=10) switch(i) default: cout你輸入的有誤,請重新輸入。endl;break; case 1: coutb; coutendl; writein(b); break; case 2:/添加 add(b); b+; break; case 3:/刪除 del(b); b-; break; case 4:/修改 modify(b); break;
22、 case 5:/查詢 cout endl;cout請輸入您要選擇的查詢方式:endl;cout1.按姓名查找操作 endl;cout2.按工號查找操作 endl; coutor;if(or=1) namfind(b);else if(or=2)numfind(b); break; case 6:/統(tǒng)計int cc; coutendl;cout請輸入您要選擇的查詢方式:endl;cout1.按部門統(tǒng)計 endl;cout2.按單位統(tǒng)計 endl; coutor;:cincc;if(cc=1) bmcount(b);else if(cc=2)dwcount(); break; case 7: e
23、xit(0); cout*歡迎進(jìn)入企業(yè)工資治理系統(tǒng)*endl;cout*1.工資信息錄入操作*endl;cout*2.工資信息增加操作*endl;cout*3.工資信息刪除操作*endl;cout*4.工資信息修改操作*endl;cout*5.工資信息查找操作*endl;cout*6.工資信息統(tǒng)計操作*endl;cout*7.退出*endl;cout*請輸入你要進(jìn)行的操作選項*i;coutendl;void writein(int x) /工資信息錄入message a10;char a_name10,a_bornplace10,a_duty10,a_bumen10; /姓名 籍貫 職務(wù) 部門
24、int j,a_ID,a_basesalary,a_jobsalary,a_jiangjin,a_yljj,a_sj,a_number;/身份證號 差不多工資 崗位工資 獎金 醫(yī)療住房基金 稅金 fstream f(wenjian.txt,ios:out);/打開文件if(!f) coutCan not open filen.;for(j=0;jx;j+)cout姓名: a_name;cout籍貫: a_bornplace;cout職務(wù): a_duty;cout部門: a_bumen;cout身份證號: a_ID;cout工號: a_number;cout差不多工資: a_basesalary
25、;cout崗位工資: a_jobsalary;cout獎金: a_jiangjin;cout醫(yī)療住房基金: a_yljj;cout稅金: a_sj;coutendl;aj.xinxi(a_name,a_bornplace,a_duty,a_bumen,a_ID,a_number,a_basesalary,a_jobsalary,a_jiangjin,a_yljj,a_sj); f.write(char *)&aj,sizeof(aj );/保存錄入的信息f.close(); /關(guān)閉文件coutendl;ifstream in(wenjian.txt,ios:in);message b10;fo
26、r(j=0;jx;j+)if(!in.eof() in.read(char *)&bj,sizeof(aj); bj.put();else exit(0);in.close();void add(int x) /工資信息添加 char a_name10,a_bornplace10,a_duty10,a_bumen10;int a_ID,a_basesalary,a_jobsalary,a_jiangjin,a_yljj,a_sj,a_number,temp=30; message c;cout輸入要增加的人員的信息:endl; cout姓名: a_name;cout籍貫: a_bornplac
27、e;cout職務(wù): a_duty;cout部門: a_bumen;cout身份證號: a_ID;cout工號: a_number;cout差不多工資: a_basesalary;cout崗位工資: a_jobsalary;cout獎金: a_jiangjin;cout醫(yī)療住房基金: a_yljj;cout稅金: a_sj;coutendl;c.xinxi(a_name,a_bornplace,a_duty,a_bumen,a_ID,a_number,a_basesalary,a_jobsalary,a_jiangjin,a_yljj,a_sj); ofstream out(wenjian.tx
28、t,ios:app);out.write(char *)&c,sizeof(class message);/保存到文件中out.close();cout增加成功!endl;int del(int x) /工資信息刪除int i,j,temp,flag=-1;char ming10;system(cls); ifstream in(wenjian.txt);message b30,c;for(j=0;j30;j+)if(!in.eof() in.read(char *)&bj,sizeof(class message);elsetemp = j-1;break;cout文件內(nèi)保存的信息有:end
29、l; /輸出文件內(nèi)的人員信息cout姓名 地址 職務(wù) 部門 身份證號 工號 工資 endl;for(j=0;jtemp;j+)bj.put();in.close(); fstream sp(wenjian.txt,ios:in|ios:out);for(j=0;j30;j+)if(!sp.eof() sp.read(char *)&bj,sizeof(class message);elsetemp = j-1;break;sp.close();message a30;fstream ap(wenjian.txt,ios:in|ios:out); coutming; coutendl; for(
30、j=0,i=0;itemp;i+) if(strcmp(,ming)=0)/標(biāo)記要刪除的信息 flag=i; if(flag=-1)cout沒有要刪除的信息。endl;return 0; for(j=0,i=0;itemp,jtemp-1; )/刪除信息if(flag!=i)aj=bi;i+;j+;elsei+;ap.close();ofstream np(wenjian.txt);for(i=0;itemp-1;i+)np.write(char *)&ai,sizeof(class message);/寫入文件 np.close();cout刪除成功!endl;return 1
31、;void modify(int x) /工資信息修改char ming10;int i,j,temp,flag;message b30; ifstream sp(wenjian.txt);for(j=0;j30;j+)if(!sp.eof() sp.read(char *)&bj,sizeof(class message); /打開文件elsetemp = j-1;break; sp.close(); coutming;coutendl; cout原文件信息是:endl;for(i=0;itemp;i+) /輸出文件內(nèi)保存的信息if(strcmp(,ming)=0)flag =
32、 i; bi.put();coutendl;coutflagendl;coutendl;cout請輸入修改信息:endl; cout姓名: ;cout籍貫: bflag.bornplace;cout職務(wù): bflag.duty;cout部門: bflag.bumen;cout身份證號: bflag.ID;cout工號: bflag.number;cout差不多工資: bflag.basesalary;cout崗位工資: alary;cout獎金: bflag.jiangjin;cout醫(yī)療住房基金: bflag.yljj;cout稅金: bflag.sj
33、;coutendl;ofstream in(wenjian.txt);for(i=0;itemp;i+)if(!in)coutCan not open!endl; in.write(char *)&bi,sizeof(class message); coutendl; in.close();void namfind(int x) /按姓名查找操作int j,temp,i;char ming10;coutming;coutendl;cout那個人的信息是:endl; message b30;fstream sp(wenjian.txt,ios:in|ios:out); for(j=0;j30;j
34、+)if(!sp.eof() sp.read(char *)&bj,sizeof(class message);elsetemp = j-1;break;for(j=0,i=0;itemp;i+)if(strcmp(,ming)=0)cout姓名 籍貫 職務(wù) 部門 身份證號 工號 差不多工資 崗位工資 獎金 醫(yī)療住房基金 稅金 endl;bi.put();sp.close();void numfind(int x) /按工號查找操作int nu,i,j,temp; coutnu;coutendl;cout那個人的信息是:endl; message b30;fstream sp(w
35、enjian.txt,ios:in|ios:out); for(j=0;j30;j+) if(!sp.eof() sp.read(char *)&bj,sizeof(class message); else temp = j-1;break; for(i=0;itemp;i+)if(bi.number=nu)cout姓名 籍貫 職務(wù) 部門 身份證號 工號 差不多工資 崗位工資 獎金 醫(yī)療住房基金 稅金 endl;bi.put();sp.close();void bmcount(int x) /按部門統(tǒng)計操作int i,j,sum=0,sum1=0,temp;char a_bumen10;couta_bumen;coutendl; message b30;fstream sp(wenjian.txt,ios:in|ios:out); for(j=0;j30;j+) if(!sp.eof() sp.read(char *)&bj,sizeof(class message); else temp = j-1;break; int U20;for(i=0;i20;i+)Ui=0;for(j=0,i=
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025屆高考化學(xué)二輪復(fù)習(xí)瘋狂專練5氧化還原反應(yīng)含解析
- 人行道無障礙設(shè)施施工方案
- 公司培訓(xùn)合同范本
- 佛山洗滌污水處理施工方案
- 三年級口算題目大全集1000道
- 三年級口算題目匯編1000道
- 南京建筑造價咨詢合同范本
- 買賣工廠廢料合同范本模板
- 農(nóng)舍田園養(yǎng)殖合同范例
- 農(nóng)村道路砍青合同范本
- GB/T 19470-2004土工合成材料塑料土工網(wǎng)
- GB/T 18913-2002船舶和航海技術(shù)航海氣象圖傳真接收機(jī)
- 高中教師先進(jìn)事跡材料范文六篇
- 烹飪專業(yè)英語課件
- 3d3s基本操作命令教程課件分析
- 人教版三年級語文下冊晨讀課件
- 傳染病防治法培訓(xùn)講義課件
- 河南大學(xué)版(2020)信息技術(shù)六年級下冊全冊教案
- 法律方法階梯實(shí)用版課件
- DB32T 4353-2022 房屋建筑和市政基礎(chǔ)設(shè)施工程檔案資料管理規(guī)程
- 白描課件講義整理
評論
0/150
提交評論