二、實驗要求熟悉面向對象程序設計思想,掌握類、類的派生、靜態成員、多態性、異常處理、文件讀寫的實際綜合應用。
1. 編寫一個小型公司的工資管理程序。該公司主要有4類人員:經理、兼職技術人員、銷售員和銷售經理。要求每位職工的工號能夠自動編號(從10000起編號)。其中月薪計算方法為:經理固定月薪8000元,兼職技術人員100元/小時,銷售員為當月銷售額的4%,銷售經理保底工資5000元另加其所管部門銷售額的5‰。
(1) 能夠輸入多位兼職技術人員的信息。
(2) 能夠輸入多位銷售人員的信息,并能在自動計算銷售總額的基礎上,自動計算銷售經理的月薪。
(3) 基類Employee中計算月薪的成員函數,要求為純虛函數,以便約束四個子類重寫計算月薪函數。
(4) 實現計算職工當月工資并寫入文件的功能。
(5) 實現從文件中讀取職工當月工資并顯示的功能。
(6) 軟件運行界面友好。
2. 鍛煉小組合作能力。每個班內,學生自由結成開發小組,以小組形式完成軟件開發。每個小組要求學生3-4名(最好3名學生),必須分工明確、體現合作意識。
三、項目分工…
四、軟件設計 0.效果圖:包括但不限于類的設計,函數的設計,異常處理,文件讀寫等
1.類的繼承關系類和主要函數分開設計。
通過對實驗要求的分析研究,我們可以得到各類職工之間的上下級關系,以及他們各自信息之間的相似性和差異性。例如各職工姓名,工號,職位的相似性,和職位不同導致計算工資的方式也不同。
通過這些關系可以抽象出不同的類,存儲各職工的信息,即封裝他們的屬性和方法。
首先定義Employee職工基類,用基類派生出不同職位所代表的類:經理(Manger),銷售(Salesman),銷售經理(SalesManager),兼職技術人員(Technician)。繼承關系如下
2.類的設計各類具體的屬性和方法就不詳細描述了
整個程序在用戶輸入和打開文件時可能會出現錯誤,例如在輸入選擇時不小心輸入了字母或者符號或者輸入給定選項之外的數字;建立文件或打開文件失敗等錯誤。 為了不讓程序崩潰,我們需要處理這些異常,即提高程序的容錯率。
在用戶輸入選項時添加以下代碼:
cout<< "請輸入您的選擇(1-3): ";
int choose; cin >>choose;
while (1) {//判斷是否輸入數字
if (!cin)
{cout<< "非法輸入,請輸入數字:";
cin.clear(); cin.ignore(1024,'\n');
cin >>choose; continue;
}
...//繼續執行
當用戶輸入為數字時通過switch…case…default語句選擇要執行的內容
2.文件操作異常在寫入文件時用if語句測試文件是否建立成功:
ofstream out("Employee.txt"); //建立Employee.txt文件,寫入職工工資信息
if (!out) //測試建立文件是否成功
{cout<< "建立文件失敗!"<< endl;
exit(0);
}
在讀取文件時用try…catch…throw語句測試打開文件是否成功:
ifstream in("Employee.txt"); //打開Employee.txt,讀取職工工資信息
try {if (!in) throw 1; } //測試打開文件是否成功
catch (int) {cout<< "打開文件失敗!"<< endl;
exit(0);
}
五、程序代碼代碼: https://download.csdn.net/download/weixin_45468907/87229002
你是否還在尋找穩定的海外服務器提供商?創新互聯www.cdcxhl.cn海外機房具備T級流量清洗系統配攻擊溯源,準確流量調度確保服務器高可用性,企業級服務器適合批量采購,新人活動首月15元起,快前往官網查看詳情吧
分享題目:C++大作業/課程設計小型公司工資管理軟件-創新互聯
文章轉載:http://vcdvsql.cn/article48/ceeoep.html
成都網站建設公司_創新互聯,為您提供網站導航、網站建設、微信公眾號、虛擬主機、外貿網站建設、App開發
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯