




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、中國石油大學(xué)(華東)信息與控制工程學(xué)院程序設(shè)計實習(xí)報告小型公司工資管理系統(tǒng)的設(shè)計與實現(xiàn)專業(yè)班級:電氣工程及其自動化12級1班學(xué)號:12053117姓名:XXXXX起止日期:2013.7.222013.7.27指導(dǎo)老師:齊玉娟2013年7月27日目錄一、 實習(xí)內(nèi)容二、 設(shè)計思路三、 調(diào)試分析四、 程序清單五、 測試結(jié)果六、 實習(xí)總結(jié)及心得體會七、 程序的使用及相關(guān)說明一、實習(xí)內(nèi)容1.1、課程設(shè)計的目的 此次課程設(shè)計的目的是以程序設(shè)計語言(C/C+)為基礎(chǔ),針對具有一定難度的綜合性題目,進(jìn)行分析、編程、調(diào)試和運(yùn)行,進(jìn)一步掌握面向?qū)ο蠛兔嫦蜻^程程序設(shè)計的基本方法和編程技巧,鞏固所學(xué)理論知識,使理論與
2、實踐相結(jié)合,提高分析問題、解決問題的能力。通過設(shè)計一個簡單的小型公司工資管理系統(tǒng),進(jìn)一步熟悉C+中類的概念、類的封裝、繼承和多態(tài)的實現(xiàn)方式。了解系統(tǒng)開發(fā)的需要分析,類層次設(shè)計,模塊分析,編碼測試,模塊組裝與整體調(diào)試的全過程,逐步熟悉程序設(shè)計的方法,并養(yǎng)成良好的編程習(xí)慣。1.2、設(shè)計題目及要求1 題目:小型公司工資關(guān)系系統(tǒng)設(shè)計2 設(shè)計說明與要求 (1) 公司主要有4類人員:經(jīng)理、技術(shù)員、銷售員、銷售經(jīng)理。要求儲存這些人的職工號姓名、月工資、年齡、性別等信息。 (2) 工資的計算方法A、經(jīng)理:固定月薪為8000元;B、技術(shù)員:工作時間×小時工資(100元每小時);C、銷售員:銷售額
3、15;4%提成;D、銷售經(jīng)理:底薪(5000元)+所轄部門銷售額總額×0.5%;(3) 類的層次結(jié)構(gòu)大體如下:雇員類 技術(shù)員類銷售員類經(jīng)理類銷售經(jīng)理類 (4) 輸入員工基本數(shù)據(jù),要求每類人員不能少于4人,銷售員工不少于8人,員工信息輸出格式參考運(yùn)行效果。 (5) 實現(xiàn)功能 應(yīng)用程序中要有菜單,用于選擇各種功能,其中 數(shù)據(jù)輸入:輸入各種數(shù)據(jù); 數(shù)據(jù)統(tǒng)計:統(tǒng)計各種銷售經(jīng)理下屬銷售員的銷售額及限售額之和;銷售經(jīng)理按工資進(jìn)行的冒泡排序; 數(shù)據(jù)打?。捍蛴「黝悊T工的數(shù)據(jù)信息; 數(shù)據(jù)備份:把各類員工的數(shù)據(jù)星系寫入文件中保存; 推出本系統(tǒng); (6) 菜單說明 數(shù)據(jù)錄入指通過鍵盤輸入各類員工的各項數(shù)據(jù)
4、; 數(shù)據(jù)統(tǒng)計指統(tǒng)計各銷售經(jīng)理下屬銷售員的銷售額及銷售額之和;銷售經(jīng)理按工資進(jìn)行冒泡法排序; 數(shù)據(jù)打印指按照表格的格式在屏幕上輸出個員工的信息; 數(shù)據(jù)備份指將所有員工的信息保存到文件; 退出:結(jié)束程序的運(yùn)行。 (7) 注意一個銷售經(jīng)理管轄多個銷售員。 (8) 其他功能可以自己擴(kuò)充(擴(kuò)充的功能若比較合理可適當(dāng)加分)。 (9) 要求在控制臺下完成(顯示內(nèi)容都在黑屏下顯示)。二、設(shè)計思路1、整體考慮程序應(yīng)該實現(xiàn)的功能,有數(shù)據(jù)輸入,數(shù)據(jù)統(tǒng)計,數(shù)據(jù)打印,數(shù)據(jù)備份和退出系統(tǒng)5個。2、首先定義一個employee的雇員基類,然后由此派生出technician,manager,seller,四個分別為技術(shù)員類,
5、經(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語句判斷該進(jìn)行什么操作,每一個case后面對應(yīng)一個函數(shù),每個函數(shù)對應(yīng)一個操作,1對應(yīng)數(shù)據(jù)輸入,2對應(yīng)數(shù)據(jù)統(tǒng)計,3對應(yīng)數(shù)據(jù)打印,4對應(yīng)數(shù)據(jù)備份,5對應(yīng)退出系統(tǒng)。5、數(shù)據(jù)統(tǒng)計、打印以及
6、備份都以表格形式輸出。表格通過制表符進(jìn)行設(shè)計。表頭表尾表中、菜單還有分隔符均單獨(dú)定義成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ù)進(jìn)行輸入。7、在進(jìn)行銷售經(jīng)理的數(shù)據(jù)輸出時,考慮其與銷售員之間所屬關(guān)系,排序時通過if語句先判斷所屬關(guān)系,再進(jìn)行冒泡法排序,這是要用到雙重循環(huán)。8、考慮各種數(shù)據(jù)類型還有所需的C+內(nèi)的函數(shù),要引用<iostream> <string> <fstream> <iom
7、anip>這四個頭文件。<fstream>用于數(shù)據(jù)備份,用backup進(jìn)行數(shù)據(jù)的輸出。<iomanip>用其setw()設(shè)置輸出數(shù)據(jù)的寬度,便于表格的制作;三、程序調(diào)試由于該程序比較大,所以我在編寫的過程中難免會出現(xiàn)很多錯誤,通過我的努力終于還是克服了重重困難,獲得了想要的結(jié)果。在無數(shù)次的失敗后我獲得了很多經(jīng)驗,同時也讓我對C+有了更家深入的了解。下面就我在編寫程序過程中遇到的錯誤及調(diào)試分析過程來加以說明。在定義類的過程中給成員數(shù)據(jù)賦初值十分重要,在編寫程序時我將employee類編成了這樣class employee /雇員基類protected:string
8、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 identifierC:Usersyan
9、gkaiDesktopC+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é)。在排序的過程中我也犯了一個致命的錯誤,那就是將冒泡法和選擇法弄混淆了。具體的程序如下:fo
10、r(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)什么錯誤,但是在運(yùn)行時發(fā)現(xiàn)得到的結(jié)果卻并不是安公子由少到多的排序,顯然是不符合要求的,由于沒有錯誤提示,找起錯誤來相對麻煩了許多,在查找過C+課本上關(guān)于選擇和排序后我才發(fā)現(xiàn)原來是自己在編譯的過程中將兩種方法混合起來了,弄清楚原因后我很容易就將錯誤改正了過來,再次編譯后發(fā)現(xiàn)顯示的結(jié)果符合要求了。經(jīng)過這一次的分析和
11、調(diào)試我對選擇法和冒泡法有了更加深刻了解。在編寫程序備份的過程中我也犯了個原則上的錯誤,那就是在使用ofstream 和backup前未加上應(yīng)有的頭文件,結(jié)果在編譯時出現(xiàn)了不少錯誤,其中第一個錯誤是:C:UsersyangkaiDesktopC+e.cpp(349) : error C2079: 'backup' uses undefined class 'basic_ofstream<char,struct std:char_traits<char> >'從這里我找到了錯誤的原因,再加上頭文件#include<fstream>
12、再經(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;sex='0
13、9;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;class techni
14、cian: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<<"經(jīng)
15、理的編號:"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>>amoun
16、t;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)<<name<<&
17、quot;"<<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_belong_to_nu
18、m()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();line();voi
20、d 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<<" 請選擇您所需的操作
21、 "<<endl; cout<<" 數(shù)據(jù)輸入:1,并按回車鍵 "<<endl;cout<<" 數(shù)據(jù)統(tǒng)計:2,并按回車鍵 "<<endl;cout<<" 數(shù)據(jù)打印:3,并按回車鍵 "<<endl;cout<<" 數(shù)據(jù)備份:4,并按回車鍵 "<<endl;cout<<" 退出系統(tǒng):5,并按回車鍵 "<<endl; cout<<""
22、;<<endl;cout<<"請選擇一個操作:"cin>>a;cout<<endl;void cijimulu()cout<<" 小型公司工資管理系統(tǒng) "<<endl; cout<<""<<endl;cout<<" 請選擇您所需的操作 "<<endl; cout<<"技術(shù)員數(shù)據(jù)輸入: 1,并按回車鍵 "<<endl;cout<<"經(jīng)
23、理數(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<<endl;void b
24、iaotou() /統(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.show_belong_to
26、_num()=sma.show_num()cout<<""<<endl;seb.tongjishuju();sum=sum+seb.show_amount();cout<<""<<endl;cout<<""<<setw(8)<<"銷售額總計: "<<" "<<setw(21)<<sum<<" "<<endl;cout<<&
27、quot;"<<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.show_num()<
28、;<""<<setw(12)<<smk.show_name()<<""<<setw(12)<<smk.show_sex()<<""<<setw(12)<<smk.show_age()<<""<<setw(12)<<smk.show_wage()<<""<<endl;biaowei();void displaying()int k;cou
29、t<<"請等待."<<endl<<endl;cout<<"職工基本情況一覽表如下"<<endl<<endl;cout<<"技術(shù)員"<<endl<<endl;biaotou();for(k=0;k<4;k+)biaozhong();cout<<""<<setw(12)<<tek.show_num()<<""<<setw(12)
30、<<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<<endl;
31、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()<<""<
32、;<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)<<smk.show_na
33、me()<<""<<setw(12)<<smk.show_sex()<<""<<setw(12)<<smk.show_age()<<""<<setw(12)<<smk.show_wage()<<""<<endl; biaowei();line();cout<<"銷售員"<<endl<<endl;cout<<"
34、"<<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、lt;<setw(8)<<sek.show_sex()<<""<<setw(8)<<sek.show_age()<<""<<setw(8)<<sek.show_wage()<<""<<setw(20)<<sek.show_belong_to_num()<<""<<endl;cout<<""<<endl<<endl
37、; 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(12)<<&qu
39、ot;工資"<<""<<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()<<"&quo
40、t;<<setw(12)<<tek.show_age()<<""<<setw(12)<<tek.show_wage()<<""<<endl; backup<<""<<endl; backup<<"經(jīng)理"<<endl<<endl;backup<<""<<endl; backup<<""<<
41、setw(12)<<"職工號"<<""<<setw(12)<<"姓名"<<""<<setw(12)<<"性別"<<""<<setw(12)<<"年齡"<<""<<setw(12)<<"工資"<<""<<endl;for(
42、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_age()<<
43、""<<setw(12)<<mak.manager_wage()<<""<<endl; backup<<""<<endl; backup<<"銷售經(jīng)理"<<endl<<endl;backup<<""<<endl; backup<<""<<setw(12)<<"職工號"<<&quo
44、t;"<<setw(12)<<"姓名"<<""<<setw(12)<<"性別"<<""<<setw(12)<<"年齡"<<""<<setw(12)<<"工資"<<""<<endl;for(k=0;k<4;k+)backup<<""<
45、;<endl;backup<<""<<setw(12)<<smk.show_num()<<""<<setw(12)<<smk.show_name()<<""<<setw(12)<<smk.show_sex()<<""<<setw(12)<<smk.show_age()<<""<<setw(12)<<smk.sho
46、w_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、"<<endl; backup<<""<<setw(8)<<sek.show_num()<<""<<setw(8)<<sek.show_name()<<""<<setw(8)<<sek.show_sex()<<""<<setw(8)<<sek.show_age()<<""<<setw(8)<<se
49、k.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 4:
溫馨提示
- 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-2026學(xué)年南陽市社旗縣三年級數(shù)學(xué)第一學(xué)期期末考試模擬試題含解析
- 2025-2026學(xué)年龍山縣三年級數(shù)學(xué)第一學(xué)期期末檢測模擬試題含解析
- 2025-2026學(xué)年福建省廈門市金林灣實驗學(xué)校數(shù)學(xué)三上期末復(fù)習(xí)檢測試題含解析
- 2024年江蘇省常州市鐘樓區(qū)三上數(shù)學(xué)期末模擬試題含解析
- 2025年執(zhí)業(yè)醫(yī)師考試知識點(diǎn)復(fù)習(xí)及試題及答案
- 2025年普及知識衛(wèi)生資格考試試題及答案
- 少數(shù)民族文化的保護(hù)與發(fā)展試題及答案
- 2025年執(zhí)業(yè)護(hù)士考試技巧分享試題及答案
- 執(zhí)業(yè)藥師考試難點(diǎn)分析與試題及答案
- 行政法學(xué)考試挑戰(zhàn)題目及答案
- 2025年全國防災(zāi)減災(zāi)日班會 課件
- SL631水利水電工程單元工程施工質(zhì)量驗收標(biāo)準(zhǔn)第1部分:土石方工程
- (二調(diào))武漢市2025屆高中畢業(yè)生二月調(diào)研考試 英語試卷(含標(biāo)準(zhǔn)答案)+聽力音頻
- 公積金提取單身聲明
- 產(chǎn)業(yè)園區(qū)物業(yè)管理服務(wù)交接方案
- 平板電腦樣機(jī)功能測試報告
- 小學(xué)五年級英語一般疑問句練習(xí)題
- SAP_PS-PS模塊配置和操作手冊
- 煤矸石綜合利用填溝造地復(fù)墾項目可行性研究報告-甲乙丙資信
- 綠化養(yǎng)護(hù)報價表(共8頁)
- 小升初幼升小學(xué)生擇校重點(diǎn)中學(xué)入學(xué)簡歷自薦信自我介紹word模板 女生版
評論
0/150
提交評論