小型公司工資管理系統(tǒng)報告--C++(共29頁)_第1頁
小型公司工資管理系統(tǒng)報告--C++(共29頁)_第2頁
小型公司工資管理系統(tǒng)報告--C++(共29頁)_第3頁
小型公司工資管理系統(tǒng)報告--C++(共29頁)_第4頁
小型公司工資管理系統(tǒng)報告--C++(共29頁)_第5頁
已閱讀5頁,還剩24頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上中國石油大學(華東)信息與控制工程學院程序設計實習報告小型公司工資管理系統(tǒng)的設計與實現(xiàn)專業(yè)班級:電氣工程及其自動化12級1班學號:姓名:XXXXX起止日期:2013.7.222013.7.27指導老師:齊玉娟2013年7月27日專心-專注-專業(yè)目錄一、 實習內(nèi)容二、 設計思路三、 調(diào)試分析四、 程序清單五、 測試結(jié)果六、 實習總結(jié)及心得體會七、 程序的使用及相關說明一、實習內(nèi)容1.1、課程設計的目的 此次課程設計的目的是以程序設計語言(C/C+)為基礎,針對具有一定難度的綜合性題目,進行分析、編程、調(diào)試和運行,進一步掌握面向?qū)ο蠛兔嫦蜻^程程序設計的基本方法和編程技巧,

2、鞏固所學理論知識,使理論與實踐相結(jié)合,提高分析問題、解決問題的能力。通過設計一個簡單的小型公司工資管理系統(tǒng),進一步熟悉C+中類的概念、類的封裝、繼承和多態(tài)的實現(xiàn)方式。了解系統(tǒng)開發(fā)的需要分析,類層次設計,模塊分析,編碼測試,模塊組裝與整體調(diào)試的全過程,逐步熟悉程序設計的方法,并養(yǎng)成良好的編程習慣。1.2、設計題目及要求1 題目:小型公司工資關系系統(tǒng)設計2 設計說明與要求 (1) 公司主要有4類人員:經(jīng)理、技術(shù)員、銷售員、銷售經(jīng)理。要求儲存這些人的職工號姓名、月工資、年齡、性別等信息。 (2) 工資的計算方法A、經(jīng)理:固定月薪為8000元;B、技術(shù)員:工作時間×小時工資(100元每小時)

3、;C、銷售員:銷售額×4%提成;D、銷售經(jīng)理:底薪(5000元)+所轄部門銷售額總額×0.5%;(3) 類的層次結(jié)構(gòu)大體如下:雇員類 技術(shù)員類銷售員類經(jīng)理類銷售經(jīng)理類 (4) 輸入員工基本數(shù)據(jù),要求每類人員不能少于4人,銷售員工不少于8人,員工信息輸出格式參考運行效果。 (5) 實現(xiàn)功能 應用程序中要有菜單,用于選擇各種功能,其中 數(shù)據(jù)輸入:輸入各種數(shù)據(jù); 數(shù)據(jù)統(tǒng)計:統(tǒng)計各種銷售經(jīng)理下屬銷售員的銷售額及限售額之和;銷售經(jīng)理按工資進行的冒泡排序; 數(shù)據(jù)打?。捍蛴「黝悊T工的數(shù)據(jù)信息; 數(shù)據(jù)備份:把各類員工的數(shù)據(jù)星系寫入文件中保存; 推出本系統(tǒng); (6) 菜單說明 數(shù)據(jù)錄入指通過

4、鍵盤輸入各類員工的各項數(shù)據(jù); 數(shù)據(jù)統(tǒng)計指統(tǒng)計各銷售經(jīng)理下屬銷售員的銷售額及銷售額之和;銷售經(jīng)理按工資進行冒泡法排序; 數(shù)據(jù)打印指按照表格的格式在屏幕上輸出個員工的信息; 數(shù)據(jù)備份指將所有員工的信息保存到文件; 退出:結(jié)束程序的運行。 (7) 注意一個銷售經(jīng)理管轄多個銷售員。 (8) 其他功能可以自己擴充(擴充的功能若比較合理可適當加分)。 (9) 要求在控制臺下完成(顯示內(nèi)容都在黑屏下顯示)。二、設計思路1、整體考慮程序應該實現(xiàn)的功能,有數(shù)據(jù)輸入,數(shù)據(jù)統(tǒng)計,數(shù)據(jù)打印,數(shù)據(jù)備份和退出系統(tǒng)5個。2、首先定義一個employee的雇員基類,然后由此派生出technician,manager,sell

5、er,四個分別為技術(shù)員類,經(jīng)理類,銷售員類;再由manager派生出銷售經(jīng)理類sellmanager。每個類中的數(shù)據(jù)成員都是protected型的,所有的繼承都是公有繼承,基類中定義有數(shù)據(jù)輸入函數(shù)。3、程序里定義了四個對象數(shù)組,technician te4;manager ma4;seller se8;sellmanager sm4,中的數(shù)據(jù)代表各類成員人數(shù)。4、整個程序由主函數(shù)的一個while循環(huán)控制,根據(jù)輸入的操作選項通過一個switch語句判斷該進行什么操作,每一個case后面對應一個函數(shù),每個函數(shù)對應一個操作,1對應數(shù)據(jù)輸入,2對應數(shù)據(jù)統(tǒng)計,3對應數(shù)據(jù)打印,4對應數(shù)據(jù)備份,5對應退出系

6、統(tǒng)。5、數(shù)據(jù)統(tǒng)計、打印以及備份都以表格形式輸出。表格通過制表符進行設計。表頭表尾表中、菜單還有分隔符均單獨定義成void 型的函數(shù)。6、主函數(shù)中用到了兩個switch語句,switch(a)控制數(shù)據(jù)的輸入、數(shù)據(jù)統(tǒng)計、數(shù)據(jù)打印、數(shù)據(jù)備份和退出系統(tǒng),而switch(b)定義在switch(a)中a=1的情況下,用于對雇員的數(shù)據(jù)進行輸入。7、在進行銷售經(jīng)理的數(shù)據(jù)輸出時,考慮其與銷售員之間所屬關系,排序時通過if語句先判斷所屬關系,再進行冒泡法排序,這是要用到雙重循環(huán)。8、考慮各種數(shù)據(jù)類型還有所需的C+內(nèi)的函數(shù),要引用<iostream> <string> <fstrea

7、m> <iomanip>這四個頭文件。<fstream>用于數(shù)據(jù)備份,用backup進行數(shù)據(jù)的輸出。<iomanip>用其setw()設置輸出數(shù)據(jù)的寬度,便于表格的制作;三、程序調(diào)試由于該程序比較大,所以我在編寫的過程中難免會出現(xiàn)很多錯誤,通過我的努力終于還是克服了重重困難,獲得了想要的結(jié)果。在無數(shù)次的失敗后我獲得了很多經(jīng)驗,同時也讓我對C+有了更家深入的了解。下面就我在編寫程序過程中遇到的錯誤及調(diào)試分析過程來加以說明。在定義類的過程中給成員數(shù)據(jù)賦初值十分重要,在編寫程序時我將employee類編成了這樣class employee /雇員基類prot

8、ected:string name;int num;int age;char sex;double wage; 結(jié)果在編譯的過程中遇到了很多錯誤其中前幾個錯誤如下:C:UsersyangkaiDesktopC+e.cpp(19) : error C2628: 'employee' followed by 'void' is illegal (did you forget a ''?)C:UsersyangkaiDesktopC+e.cpp(22) : error C2065: 'name' : undeclared identif

9、ierC:UsersyangkaiDesktopC+e.cpp(24) : error C2065: 'sex' : undeclared identifier大致上就是說name、sex、age、num、和wage未定義,經(jīng)過思考我發(fā)現(xiàn)是這四個成員數(shù)據(jù)未賦初值,因此我在類中又加上了:public:employee()name="0" num=0;age=0;sex='0' wage=0;經(jīng)此修改后,前面的錯誤果然沒有了,由此我得出對成員數(shù)據(jù)賦初值是類定義的過程中必不可少的環(huán)節(jié)。在排序的過程中我也犯了一個致命的錯誤,那就是將冒泡法和選擇法弄混

10、淆了。具體的程序如下:for(int i=0;i<4;i+) for(int j=i+1;j<4;j+)if(smi.show_wage()<smj.show_wage()sellmanager g;g=smi;smi=smj;smj=g;在編寫的過程中我將i寫成了j,雖然在編譯的過程中沒有出現(xiàn)什么錯誤,但是在運行時發(fā)現(xiàn)得到的結(jié)果卻并不是安公子由少到多的排序,顯然是不符合要求的,由于沒有錯誤提示,找起錯誤來相對麻煩了許多,在查找過C+課本上關于選擇和排序后我才發(fā)現(xiàn)原來是自己在編譯的過程中將兩種方法混合起來了,弄清楚原因后我很容易就將錯誤改正了過來,再次編譯后發(fā)現(xiàn)顯示的結(jié)果符合

11、要求了。經(jīng)過這一次的分析和調(diào)試我對選擇法和冒泡法有了更加深刻了解。在編寫程序備份的過程中我也犯了個原則上的錯誤,那就是在使用ofstream 和backup前未加上應有的頭文件,結(jié)果在編譯時出現(xiàn)了不少錯誤,其中第一個錯誤是:C:UsersyangkaiDesktopC+e.cpp(349) : error C2079: 'backup' uses undefined class 'basic_ofstream<char,struct std:char_traits<char> >'從這里我找到了錯誤的原因,再加上頭文件#include&l

12、t;fstream>再經(jīng)過編譯后頓時發(fā)現(xiàn)原來的錯誤全都消失不見了。四、程序清單#include <iostream>#include <string>#include <iomanip>#include <fstream>using namespace std;int i,j,a,b,sum;class employee /雇員基類protected:string name;int num;int age;char sex;double wage;public:employee()name="0"num=0;age=0;

13、sex='0'wage=0;void set()cout<<"其姓名:"cin>>name;cout<<"性別(M/W):"cin>>sex;cout<<"年齡:"cin>>age;int show_num()return num;string show_name()return name;char show_sex()return sex;int show_age()return age;double show_wage()return wage

14、;class technician:public employee /技術(shù)員派生類protected:int workhour;public:void set()cout<<"技術(shù)員的編號:"cin>>num;employee:set();cout<<"工作時間:"cin>>workhour;cout<<endl;wage=100*workhour;technician te4;class manager:public employee /經(jīng)理派生類public:void set()cout&l

15、t;<"經(jīng)理的編號:"cin>>num;employee:set();cout<<endl;int manager_wage()return 8000;manager ma4;class seller:public employee /銷售員派生類protected:double amount;int belong_to_num;public:void set()cout<<"銷售員的編號:"cin>>num;employee:set();cout<<"銷售額:"cin

16、>>amount;cout<<"所屬銷售經(jīng)理的編號:"cin>>belong_to_num;wage=amount*0.04;cout<<endl;int show_belong_to_num()return belong_to_num;double show_amount()return amount;void tongjishuju()cout<<""<<setw(12)<<num<<""<<setw(12)<<

17、name<<""<<setw(12)<<amount<<""<<endl;seller se8;class sellmanager:public employee /銷售經(jīng)理派生類protected:int sum_amount;public:void set()cout<<"銷售經(jīng)理的編號:"cin>>num;employee:set();cout<<endl;for (int i=0;i<4;i+)if (num=sei.show

18、_belong_to_num()sum_amount=sum_amount+sei.show_amount();wage=5000+sum_amount*0.005;void tongjishuju()cout<<"職工號為 "<<num<<" 銷售經(jīng)理 "<<name<<" 下屬銷售員的業(yè)績?yōu)椋?quot;<<endl;cout<<""<<endl;cout<<""<<setw(12)

19、<<"職工號"<<""<<setw(12)<<"姓名"<<""<<setw(12)<<"銷售額 "<<""<<endl;sellmanager sm4;void line()cout<<"-"<<endl<<endl;void shurute() /輸入技術(shù)員循環(huán) for(i=0;i<4;i+)tei.set

20、();line();void shuruma() /輸入經(jīng)理循環(huán) for(i=0;i<4;i+)mai.set();line();void shuruse() /輸入銷售員循環(huán) for(j=0;j<8;j+)sej.set();line();void shurusm() /輸入銷售經(jīng)理循環(huán) for(i=0;i<4;i+)smi.set();line();void mulu()cout<<" 小型公司工資管理系統(tǒng) "<<endl; cout<<""<<endl;cout<<&qu

21、ot; 請選擇您所需的操作 "<<endl; cout<<" 數(shù)據(jù)輸入:1,并按回車鍵 "<<endl;cout<<" 數(shù)據(jù)統(tǒng)計:2,并按回車鍵 "<<endl;cout<<" 數(shù)據(jù)打?。?,并按回車鍵 "<<endl;cout<<" 數(shù)據(jù)備份:4,并按回車鍵 "<<endl;cout<<" 退出系統(tǒng):5,并按回車鍵 "<<endl; cout<&l

22、t;""<<endl;cout<<"請選擇一個操作:"cin>>a;cout<<endl;void cijimulu()cout<<" 小型公司工資管理系統(tǒng) "<<endl; cout<<""<<endl;cout<<" 請選擇您所需的操作 "<<endl; cout<<"技術(shù)員數(shù)據(jù)輸入: 1,并按回車鍵 "<<endl;cout&l

23、t;<"經(jīng)理數(shù)據(jù)輸入: 2,并按回車鍵 "<<endl;cout<<"銷售員數(shù)據(jù)輸入: 3,并按回車鍵 "<<endl;cout<<"銷售經(jīng)理數(shù)據(jù)輸入:4,并按回車鍵 "<<endl;cout<<"返回上一級: 5,并按回車鍵 "<<endl; cout<<""<<endl;cout<<"請選擇一個操作:"cin>>b;cout<&l

24、t;endl;void biaotou() /統(tǒng)計時的表格結(jié)構(gòu)cout<<""<<endl; cout<<""<<setw(12)<<"職工號"<<""<<setw(12)<<"姓名"<<""<<setw(12)<<"性別"<<""<<setw(12)<<"年齡

25、"<<""<<setw(12)<<"工資"<<""<<endl;void biaozhong()cout<<""<<endl;void biaowei()cout<<""<<endl; void tongjishuju()int a,b,sum;for(a=0;a<4;a+)sum=0;sma.tongjishuju();for(b=0;b<8;b+)if(seb.s

26、how_belong_to_num()=sma.show_num()cout<<""<<endl;seb.tongjishuju();sum=sum+seb.show_amount();cout<<""<<endl;cout<<""<<setw(8)<<"銷售額總計: "<<" "<<setw(21)<<sum<<" "<<endl;

27、cout<<""<<endl;cout<<"銷售經(jīng)理按工資排序為:"<<endl;biaotou();for(int i=0;i<4;i+) for(int j=i+1;j<4;j+)if(smi.show_wage()<smj.show_wage()sellmanager g;g=smi;smi=smj;smj=g;for (int k=0;k<4;k+)biaozhong();cout<<""<<setw(12)<<smk.

28、show_num()<<""<<setw(12)<<smk.show_name()<<""<<setw(12)<<smk.show_sex()<<""<<setw(12)<<smk.show_age()<<""<<setw(12)<<smk.show_wage()<<""<<endl;biaowei();void displayi

29、ng()int k;cout<<"請等待."<<endl<<endl;cout<<"職工基本情況一覽表如下"<<endl<<endl;cout<<"技術(shù)員"<<endl<<endl;biaotou();for(k=0;k<4;k+)biaozhong();cout<<""<<setw(12)<<tek.show_num()<<""<

30、;<setw(12)<<tek.show_name()<<""<<setw(12)<<tek.show_sex()<<""<<setw(12)<<tek.show_age()<<""<<setw(12)<<tek.show_wage()<<""<<endl; biaowei();line();cout<<"經(jīng)理"<<endl

31、<<endl;biaotou();for(k=0;k<4;k+)biaozhong();cout<<""<<setw(12)<<mak.show_num()<<""<<setw(12)<<mak.show_name()<<""<<setw(12)<<mak.show_sex()<<""<<setw(12)<<mak.show_age()<<&q

32、uot;"<<setw(12)<<mak.manager_wage()<<""<<endl; biaowei();line();cout<<"銷售經(jīng)理"<<endl<<endl;biaotou();for(k=0;k<4;k+)biaozhong();cout<<""<<setw(12)<<smk.show_num()<<""<<setw(12)<&l

33、t;smk.show_name()<<""<<setw(12)<<smk.show_sex()<<""<<setw(12)<<smk.show_age()<<""<<setw(12)<<smk.show_wage()<<""<<endl; biaowei();line();cout<<"銷售員"<<endl<<endl;cout&

34、lt;<""<<endl;cout<<""<<setw(8)<<"職工號"<<""<<setw(8)<<"姓名"<<""<<setw(8)<<"性別"<<""<<setw(8)<<"年齡"<<""<<setw(8)

35、<<"工資"<<""<<setw(20)<<"所屬部門經(jīng)理"<<""<<endl;for(k=0;k<8;k+)cout<<""<<endl; cout<<""<<setw(8)<<sek.show_num()<<""<<setw(8)<<sek.show_name()<<

36、""<<setw(8)<<sek.show_sex()<<""<<setw(8)<<sek.show_age()<<""<<setw(8)<<sek.show_wage()<<""<<setw(20)<<sek.show_belong_to_num()<<""<<endl;cout<<""<<end

37、l<<endl; cout<<"-"<<endl<<endl;void copy()ofstream backup("qt.txt");int k;cout<<"請等待."<<endl<<endl;backup<<"職工基本情況一覽表如下"<<endl<<endl;backup<<"技術(shù)員"<<endl<<endl;backup<<

38、;""<<endl; backup<<""<<setw(12)<<"職工號"<<""<<setw(12)<<"姓名"<<""<<setw(12)<<"性別"<<""<<setw(12)<<"年齡"<<""<<setw(1

39、2)<<"工資"<<""<<endl;for(k=0;k<4;k+)backup<<""<<endl;backup<<""<<setw(12)<<tek.show_num()<<""<<setw(12)<<tek.show_name()<<""<<setw(12)<<tek.show_sex()<&

40、lt;""<<setw(12)<<tek.show_age()<<""<<setw(12)<<tek.show_wage()<<""<<endl; backup<<""<<endl; backup<<"經(jīng)理"<<endl<<endl;backup<<""<<endl; backup<<"&

41、quot;<<setw(12)<<"職工號"<<""<<setw(12)<<"姓名"<<""<<setw(12)<<"性別"<<""<<setw(12)<<"年齡"<<""<<setw(12)<<"工資"<<""<

42、<endl;for(k=0;k<4;k+)backup<<""<<endl;backup<<""<<setw(12)<<mak.show_num()<<""<<setw(12)<<mak.show_name()<<""<<setw(12)<<mak.show_sex()<<""<<setw(12)<<mak.show_

43、age()<<""<<setw(12)<<mak.manager_wage()<<""<<endl; backup<<""<<endl; backup<<"銷售經(jīng)理"<<endl<<endl;backup<<""<<endl; backup<<""<<setw(12)<<"職工號"

44、;<<""<<setw(12)<<"姓名"<<""<<setw(12)<<"性別"<<""<<setw(12)<<"年齡"<<""<<setw(12)<<"工資"<<""<<endl;for(k=0;k<4;k+)backup<<&q

45、uot;"<<endl;backup<<""<<setw(12)<<smk.show_num()<<""<<setw(12)<<smk.show_name()<<""<<setw(12)<<smk.show_sex()<<""<<setw(12)<<smk.show_age()<<""<<setw(12)&l

46、t;<smk.show_wage()<<""<<endl; backup<<""<<endl; backup<<"銷售員"<<endl<<endl;backup<<""<<endl;backup<<""<<setw(8)<<"職工號"<<""<<setw(8)<<"

47、;姓名"<<""<<setw(8)<<"性別"<<""<<setw(8)<<"年齡"<<""<<setw(8)<<"工資"<<""<<setw(20)<<"所屬部門經(jīng)理"<<""<<endl;for(k=0;k<8;k+)backup&

48、lt;<""<<endl; backup<<""<<setw(8)<<sek.show_num()<<""<<setw(8)<<sek.show_name()<<""<<setw(8)<<sek.show_sex()<<""<<setw(8)<<sek.show_age()<<""<<setw

49、(8)<<sek.show_wage()<<""<<setw(20)<<sek.show_belong_to_num()<<""<<endl;backup<<""<<endl<<endl; int main()while (a!=5)mulu();line();switch(a)case 1: while (b!=5)cijimulu();line();switch(b)case 1:shurute();continue;case 2:shuruma();continue;case 3:shuruse();continue;case

溫馨提示

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

最新文檔

評論

0/150

提交評論