版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、<p> C++面向對象技術課程設計報告</p><p><b> 公</b></p><p><b> 司</b></p><p><b> 人</b></p><p><b> 員</b></p><p>&
2、lt;b> 管</b></p><p><b> 理</b></p><p><b> 系</b></p><p><b> 統(tǒng)</b></p><p> 面向對象技術與C++課程設計任務書</p><p><b>
3、 目 錄</b></p><p><b> 系統(tǒng)功能要求</b></p><p> 系統(tǒng)功能分析和設計思路、系統(tǒng)功能模塊</p><p><b> 系統(tǒng)流程圖</b></p><p> 調(diào)試過程及系統(tǒng)使用說明 </p><p><b> 程
4、序代碼 </b></p><p><b> 總結、心得與體會 </b></p><p><b> 一.系統(tǒng)功能要求</b></p><p> 某小型公司,主要有四類人員:經(jīng)理、一般工人、銷售員以及銷售經(jīng)理?,F(xiàn)在、需要建立一個小型的公司人員管理系統(tǒng),能夠以文件方式存儲這些人員的各類信息并能按照其編號查詢輸出
5、所輸入的所有信息,還要按照公司的要求計算出每名員工一個月的工資。</p><p><b> 要求:</b></p><p> 可以錄入并保存四類人員的信息</p><p> 可以按照職工的類別以及姓名查詢并顯示四類人員的信息</p><p> 可以按照規(guī)定的方法計算每名員工每月所得的工資</p>&
6、lt;p> 月薪計算方法: 經(jīng)理拿固定工資8000 兼職技術人員按每小時100元領取月薪 兼職推銷月的月薪按該推銷員當月銷售額的4%提成; 銷售經(jīng)理既拿固定月薪也領取銷售提成,固定月薪為5000元,銷售提成為所管 轄部門當月銷售總額的5% </p>
7、<p><b> 可以退出本系統(tǒng)</b></p><p> 二.系統(tǒng)功能分析和設計思路、系統(tǒng)功能模塊</p><p> 我們使用面向對象程序設計方法的思路進行分析,得出了整個系統(tǒng)應該涉及兩個基類的信息和操作,首先是公司雇員這一個大基類,其它諸如經(jīng)理等的類應該由此類派生;再有、為了方便實現(xiàn)各類信息以文件方式的儲存以及實現(xiàn)各種功能和界面,我們決定再創(chuàng)建一個
8、系統(tǒng)類。所以我們接下來所要做的一切工作都要圍繞這兩個類(公司雇員類 employee以及系統(tǒng)類 system)來展開。</p><p> ?。?)公司雇員類 employee:可以說這是本系統(tǒng)的一個“總基類”,我們按照預期的設計及要求由它(公司雇員類 employee)派生出了經(jīng)理類 manager、一般工人類 worker、銷售員類 sale以及銷售經(jīng)理類 sale_manager。由于考慮到各個小的分類之間在
9、形式下差不多,為了不出現(xiàn)“二義性”的問題,我們主要在各個類之間采取定義虛基類以及純虛函數(shù)的思路進行調(diào)用。另外、由于我們對鏈表的運用以及鏈表的掌握還不是很熟練,再加上為了使各個類方便與系統(tǒng)類 system進行直接連接,我們遂決定采用對象數(shù)組存放文件中讀入或讀出的各類公司人員信息。但是我們發(fā)現(xiàn)這樣做有一個缺陷:因為無法事先確定各類人員及各類人員的各種信息,所以無法確定對象數(shù)組的大小。這里我們討論后決定事先確定一個較大的數(shù)組空間來決定這個問題
10、,當然,解決這個問題的最好方法還是采用異質鏈表來存放從文件中讀取的信息。</p><p> ?。?)系統(tǒng)類 system:由于這個系統(tǒng)涉及到了文件的應用,所以系統(tǒng)類 system是必不可少的。我們對問題分析、討論以后決定,系統(tǒng)類 system的主要成員函數(shù)要包括:提供輸入各類數(shù)據(jù)的 inform、確認各類輸入成功的 success、添加各類信息的 in_information、用于各類查詢的 search、計算并
11、顯示總工資的 out_total_salary以及用于各個選項之間輸出界面的 interface。</p><p> ?。?)由于考慮到這應該是一個完整的管理系統(tǒng),加上我們希望這個系統(tǒng)的界面能夠做到清晰、明了,我們經(jīng)討論后決定采用一個總操作界面,三個分操作界面。</p><p> 總操作界面應該包括 (分別對應 1.輸入信息 2.查詢信息并顯示 3.計算總工資并顯示 4.退出)</
12、p><p> 輸入信息界面中又因該包括 1.經(jīng)理類 2.工人類 3.銷售員類 4.銀行經(jīng)理類 5.退出。</p><p> 查詢信息并顯示界面中又應該包括 1.經(jīng)理類 2.工人類 3.銷售員類 4.銀行經(jīng)理類 5.退出。</p><p> 計算總工資并顯示界面中又應該包括 1.經(jīng)理類 2.工人類 3.銷售員類 4.銀行經(jīng)理類 5.退出。</p>&l
13、t;p><b> 三.系統(tǒng)流程圖</b></p><p> 四.調(diào)試過程及系統(tǒng)使用說明</p><p> 對此程序進行調(diào)試需要一個功能、一個功能地逐個調(diào)試,如遇到出現(xiàn)與先前期望的結果不符的話需要使用C++自帶的程序調(diào)試工具逐一進行改正。在這當中需注意的是由于幾個關于工資的計算變量我們設定成了float型,所以在組建過程中會出現(xiàn)如下警告:“warning C
14、4244: '=' : conversion from 'double' to 'float', possible loss of data”,我們一開始也挺納悶的,因為我們并沒有設置任何double型變量,怎么會在警告中出現(xiàn)“從double型轉變?yōu)閒loat型很可能引起數(shù)據(jù)丟失”的警告呢?后來請教老師后發(fā)現(xiàn),警告是由于這個C++系統(tǒng)把一般的小數(shù)都按double類型數(shù)據(jù)處理,而我們在定義的
15、時候是用的float類型,所以系統(tǒng)認為有數(shù)據(jù)丟失。</p><p><b> 進入主菜單后</b></p><p> 選1-1為輸入經(jīng)理類的記錄;1-2為輸入工人類的記錄;1-3為輸入銷售員類的記錄;1-4為輸入銷售經(jīng)理類的記錄;1-5為退出此界面并返回到主界面。</p><p> 選2-1為查找經(jīng)理類的記錄;2-2為查找工人類的記錄;2
16、-3為查找銷售員類的記錄;2-4為查找銷售經(jīng)理類的記錄;2-5為退出此界面并返回到主界面。以上操作的詳細流程請參照流程圖3。</p><p> 選3-1為計算經(jīng)理類的總工資;3-2為計算工人類的總工資;3-3為計算銷售員類的總工資;3-4為計算銷售經(jīng)理類的總工資;3-5為退出此界面并返回到主界面。以上操作的詳細流程請參照流程圖4。</p><p> 選4會輸出“謝謝您使用本系統(tǒng),次再見
17、!”并退出程序。</p><p><b> 五.程序代碼</b></p><p> #include<iostream.h></p><p> #include<string.h></p><p> class employee</p><p><b>
18、 {</b></p><p> protected:</p><p> char *name; </p><p> int grade; </p><p> float accump
19、ay; </p><p> static int employeeNo; </p><p><b> public: </b></p><p> employee();
20、 </p><p> ~employee(); </p><p> virtual void pay()=0; </p><p> virtual void promote(int increment=0);
21、 </p><p> virtual void displaystatus()=0; </p><p><b> };</b></p><p> class technician:public employee</p><p><b> {</b><
22、/p><p><b> private:</b></p><p> float hourlyrate; </p><p> int workhours; </p><p><b> public:<
23、/b></p><p> technician(); </p><p> void promote(int); </p><p> void pay(); </p><p>
24、 void displaystatus(); </p><p><b> };</b></p><p> class manager:virtual public employee</p><p><b> {</b></p><p>
25、 protected:</p><p> float monthlypay; </p><p><b> public:</b></p><p> manager(); </p><p&g
26、t; void promote(int); </p><p> void pay(); </p><p> void displaystatus(); </p><p>
27、<b> };</b></p><p> class salesman:virtual public employee</p><p><b> {</b></p><p> protected:</p><p> float commrate;
28、 </p><p> float sales; </p><p> public: </p><p> salesman(); </p><p> void promote(int);
29、 </p><p> void pay(); </p><p> void displaystatus(); </p><p><b> };</b></p><p> class salesma
30、nager:public manager,public salesman</p><p><b> {</b></p><p><b> public:</b></p><p> salesmanager();</p><p> void promote(int);</p>&
31、lt;p> void pay();</p><p> void displaystatus();</p><p><b> };</b></p><p> int employee::employeeNo=00;</p><p> employee::employee()</p><p
32、><b> {</b></p><p> char namestr[50];</p><p> cout<<"請輸入一個雇員的姓名:";</p><p> cin>>namestr;</p><p> name=new char[strlen(namestr)+
33、1];</p><p> strcpy(name,namestr);</p><p> employeeNo++;</p><p><b> grade=1;</b></p><p> accumpay=0.0;</p><p><b> }</b></p&g
34、t;<p> employee::~employee()</p><p><b> {</b></p><p> delete[]name;</p><p><b> }</b></p><p> void employee::promote(int increment)&l
35、t;/p><p><b> {</b></p><p> grade+=increment;</p><p><b> }</b></p><p> technician::technician()</p><p><b> {</b></p
36、><p> hourlyrate=100;</p><p><b> }</b></p><p> void technician::promote(int)</p><p><b> {</b></p><p> employee::promote(2);</p
37、><p><b> }</b></p><p> void technician::pay()</p><p> {cout<<"請輸入"<<name<<"本月的工作時數(shù):";</p><p> cin>>workhours;&l
38、t;/p><p> accumpay=hourlyrate*workhours;</p><p> cout<<"兼職技術人員"<<name<<"編號"<<employeeNo<<"本月工資"<<accumpay<<endl;</p>
39、<p><b> }</b></p><p> void technician::displaystatus()</p><p><b> {</b></p><p> cout<< "兼職技術人員"<<name<<"編號"&l
40、t;<employeeNo<<"級別為"<<grade<<"級,已付本月工資"<<accumpay<<endl;</p><p><b> }</b></p><p> salesman::salesman()</p><p><
41、b> {</b></p><p> commrate=0.04;</p><p><b> }</b></p><p> void salesman::promote(int)</p><p><b> {</b></p><p> employ
42、ee::promote(0);</p><p><b> }</b></p><p> void salesman::pay()</p><p><b> {</b></p><p> cout<<"請輸入"<<name<<"
43、本月的銷售額:";</p><p> cin>>sales;</p><p> accumpay=sales*commrate;</p><p> cout<<"兼職推銷員"<<name<<"編號"<<employeeNo<<"本
44、月工資"<<accumpay<<endl;</p><p><b> }</b></p><p> void salesman::displaystatus()</p><p><b> {</b></p><p> cout<<"兼職
45、推銷員"<<name<<"編號"<<employeeNo<<"級別為"<<grade<<"級,已付本月工資"<<accumpay<<endl;</p><p><b> }</b></p><p>
46、manager::manager()</p><p><b> {</b></p><p> monthlypay=8000;</p><p><b> }</b></p><p> void manager::promote(int)</p><p><b&g
47、t; {</b></p><p> employee::promote(3);</p><p><b> }</b></p><p> void manager::pay()</p><p><b> {</b></p><p> accumpay=m
48、onthlypay;</p><p> cout<<"經(jīng)理"<<name<<"編號"<<employeeNo<<"本月工資"<<accumpay<<endl;</p><p><b> }</b></p>&
49、lt;p> void manager::displaystatus()</p><p><b> {</b></p><p> cout<<"經(jīng)理"<<name<<"編號"<<employeeNo<<"級別為"<<grade&
50、lt;<"級,已付本月工資"<<accumpay<<endl;</p><p><b> }</b></p><p> salesmanager::salesmanager()</p><p><b> {</b></p><p> mont
51、hlypay=5000;</p><p> commrate=0.05;</p><p><b> }</b></p><p> void salesmanager::promote(int)</p><p><b> {</b></p><p> employee
52、::promote(2);</p><p><b> }</b></p><p> void salesmanager::pay()</p><p><b> {</b></p><p> cout<<"請輸入"<<employee::name&l
53、t;<"所管轄部門本月的銷售總額";</p><p> cin>>sales;</p><p> accumpay=monthlypay+commrate*sales;</p><p> cout<<"銷售經(jīng)理"<<name<<"編號"<&l
54、t;employeeNo<<"本月工資"<<accumpay<<endl;</p><p><b> }</b></p><p> void salesmanager::displaystatus()</p><p><b> {</b></p>
55、<p> cout<<"銷售經(jīng)理"<<name<<"編號"<<employeeNo<<"級別為"<<grade<<"級,已付本月工資"<<accumpay<<endl;</p><p><b> }<
56、;/b></p><p> int main()</p><p> {cout<<" ******************************************* "<<endl; </p><p> cout<<"
57、 公 司 人 事 管 理 系 統(tǒng) "<<endl; </p><p> cout<<" ******************************************* "<<endl;<
58、/p><p> cout<<""<<endl;</p><p> cout<<""<<endl;</p><p> cout<<""<<endl;</p><p> biaohao: cout<<
59、"*************************************************************************"<<endl; </p><p> cout<<"* 1.經(jīng)理 *"
60、<<endl;</p><p> cout<<"* 2.兼職技術人員 *"<<endl; </p><p> cout<<"* 3.銷售經(jīng)理
61、 *"<<endl;</p><p> cout<<"* 4.兼職銷售員 *"<<endl;</p><p> cout<<
62、;"* 5.退出 *"<<endl;</p><p> cout<<"*************************************************************************"<
63、;<endl; </p><p> cout<<"請選擇功能:"<<endl;</p><p><b> int a;</b></p><p><b> cin>> a;</b></p><p><b> switch(
64、a)</b></p><p> {case 5:break;</p><p> case 1:{ manager m1;</p><p> employee* a;</p><p><b> a=&m1;</b></p><p> a->promote();&l
65、t;/p><p><b> a->pay();</b></p><p> a->displaystatus();}goto biaohao; </p><p><b> break;</b></p><p> case 2:{technician t1;</p>&l
66、t;p> employee* b;</p><p><b> b=&t1;</b></p><p> b->promote();</p><p><b> b->pay();</b></p><p> b->displaystatus();}goto bia
67、ohao;break;</p><p> case 3:{salesmanager sm1;</p><p> employee* c;</p><p><b> c=&sm1;</b></p><p> c->promote();</p><p><b> c-
68、>pay();</b></p><p> c->displaystatus();}goto biaohao;break;</p><p> case 4:{salesman s1;</p><p> employee* d;</p><p><b> d=&s1;</b></
69、p><p> d->promote();</p><p><b> d->pay();</b></p><p> d->displaystatus();}goto biaohao;break;</p><p> default:cout<<"您輸入有誤,請重試!"&l
70、t;<endl;goto biaohao;break;</p><p><b> }</b></p><p><b> return 0;</b></p><p><b> }</b></p><p> 六.總結、心得與體會</p><p>
71、; 通過這次課題設計,我覺得做好一個程序,靈活運用是關鍵。把基礎學好不一定能把程序編好,但基礎知識不好,一定編不出好程序。做大規(guī)模的程序不只是一個人努力就行了,一定要有團隊合作能力。編程最主要是思路清晰,只要你把思路理順了,就有利于你在編程的過程中少走彎路。 </p><p> 運行正確的程序并不一定是好程序,編程員時刻要牢記的一條就是自己寫的程序不僅是給自己看的,也要讓別人能輕易地看懂。我們在分塊設計時就因
72、為都太“以自我為中心“了,直接導致最后把程序匯總的時候才發(fā)現(xiàn)”錯誤“一大堆!當然、這也使我們更加體會到了程序可讀性的重要之所在。</p><p> 要想學好C++我覺得除了在課堂上認真學習之外也要做好以下幾點:</p><p> 1.認真對待每一個程序的編寫 2.做好對每一個所編程序的總結 3.寫程序盡量要規(guī)范、嚴謹,效率盡量要高 4.養(yǎng)成自我測試的習慣 5.多看一些別人編的程序,把好
73、的思路和方法記下來,以備不時之需 6.要有恃之以恒的精神以及嚴謹?shù)目茖W研究作風 </p><p> 在這短短的一個星期的努力奮斗中、在姜老師的辛勤指導下。我們終于把本次課題設計順利完成?;叵肫鹫n題設計過程中面對程序錯誤一大堆的失望與成功完成程序中每一個模塊的喜悅時,我真正的體會到了:1.團隊合作的好壞直接影響到了做好一件工作的質量與效率;2.細節(jié)決定成敗;3.學術不管是哪一門,只要你用心去對待它,它也會用心地來
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- c++課程設計--人員管理系統(tǒng)公司
- c++課程設計--公司人員管理系統(tǒng)
- c++課程設計---公司人員信息管理系統(tǒng)
- c++程序設計課程設計---公司人員管理系統(tǒng)
- c++課程設計報告--高校人員管理系統(tǒng)
- c++課程設計--公司職員管理系統(tǒng)
- c++課程設計---公司人事管理系統(tǒng)
- c++酒店管理系統(tǒng)課程設計
- c++課程設計--某公司的庫存管理系統(tǒng)
- c++酒店管理系統(tǒng)課程設計
- 銷售管理系統(tǒng)c++課程設計
- c++課程設計報告--公司設備管理系統(tǒng)
- 《c++》課程設計倉庫管理系統(tǒng)
- c++課程設計-學生管理系統(tǒng)
- c++學生管理系統(tǒng)課程設計
- c++課程設計--酒店管理系統(tǒng)
- c++課程設計--小型公司工資管理系統(tǒng)
- ”小型公司工資管理系統(tǒng)設計“c++課程設計
- 小型公司工資管理系統(tǒng)設計 c++課程設計
- c++課程設計--圖書管理系統(tǒng)
評論
0/150
提交評論