已閱讀5頁,還剩7頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
浙江理工大學信息學院 實驗指導書 實驗名稱:類的多態(tài)性的實現(xiàn) 學時安排:3 實驗類別:設(shè)計性實驗 實驗要求:1 人 1 組 學號: 姓名: 一、實驗目的 1.理解重載運算符的意義。 2.掌握使用成員函數(shù)、友員函數(shù)重載運算符的特點。 3.掌握重載運算符函數(shù)的調(diào)用方法。 4.掌握動態(tài)聯(lián)編的概念。 5.掌握虛函數(shù)和純虛函數(shù)的使用方法。 二、實驗原理介紹 設(shè)計性實驗 具體原理請見實驗內(nèi)容和步驟 實現(xiàn)對抽象類的繼承,通過 operator 函數(shù)調(diào)用的形式,實現(xiàn)運算符的重載 三、實驗設(shè)備介紹 軟件需求: windows 或 linux 下的 c+編譯器 硬件需求: 對于硬件方面的要求,建議配置是 Pentium III 450 以上的 CPU 處理器,64MB 以上的內(nèi)存,200MB 的自由硬盤空間、CD-ROM 驅(qū)動器、能支 持 24 位真彩色的顯示卡、彩色顯示器、打印機。 四、實驗內(nèi)容 某公司的員工有經(jīng)理 Manager、技術(shù)人員 Technicist 和營銷人員 SalsePerson,他們的薪金計算方法如下: 經(jīng)理按月計酬,方法是:基本工資+獎金;技術(shù)人員按月計酬,方法是:基 本工資;營銷人員按月計酬,方法是:基本工資+銷售利潤*5%。 每類人員都有職工編號、姓名、性別、入職時間、職位、基本工資等數(shù)據(jù); 各類人員使用統(tǒng)一接口 get_pay()計算各類人員的月薪,重載 int main() coutmonth; Report re; re.insert(new Technicist(“0001“,“王華“,“男“,CDate(2,4,2011),“技術(shù) “,9000); re.insert(new Technicist(“0002“,“李明“,“女“,CDate(4,10,2009),“技 術(shù)“,10000); map bonus; bonus1 = 1000; bonus2 = 2000; bonus3 = 3000; re.insert(new Manager(“0003“,“朱黎明“,“男“,CDate(11,8,2001),“經(jīng)理 “,12000,bonus); bonus1 = 500; bonus2 = 1500; bonus3 = 2000; re.insert(new Manager(“0004“,“劉改云“,“男“,CDate(8,7,2003),“經(jīng)理 “,10000,bonus); map sales; sales1 = 200000; sales2 = 100000; sales3 = 500000; re.insert(new SalesPerson(“0005“,“李志武“,“男“,CDate(10,11,2007), “銷售“,5000,sales); re.print(month); return 0; /class.h #ifndef CLASS_H_INCLUDED #define CLASS_H_INCLUDED #include #include #include #include #include #include #include“date.h“ using namespace std; class Employee protected: string name; string ID; string sex; string job; CDate date; double basicmoney; public: Employee(string ID,string name,string sex,CDate date,string job,double basicmoney); string getjob()return job; string getname()return name; string getID()return ID; string getsex()return sex; double getbasicmoney()return basicmoney; CDate getdate()return date; virtual double getpay(int m)=0; ; class Report private: list members; list operator(string job); double min_pay(list emp_list ,int month); double max_pay(list emp_list ,int month); void print(list emp_list ,int month); public: Report(); void insert(Employee* p); void print(int n); ; class Manager:public Employee private: map price; public: Manager(string ID,string name,string sex,CDate date,string job,double basicmoney,map price):Employee( ID,name,sex,date,job,basicmoney) this-price=price; double getpay(int m); ; class Technicist:public Employee public: Technicist(string ID,string name,string sex,CDate date,string job,double basicmoney):Employee(ID,name,sex,date,job,basicmoney) double getpay(int m); ; class SalesPerson:public Employee private: map sales; public: SalesPerson(string ID,string name,string sex,CDate date,string job,double basicmoney,map sales):Employee(ID,name,sex,date,job,basicmoney) this-sales=sales; double getpay(int m); ; #endif /fuctions.cpp #include “class.h“ #include #include using namespace std; Employee:Employee(string ID,string name,string sex,CDate date,string job,double basicmoney) this-ID= ID; this-name = name; this-sex = sex; this-date = date; this-basicmoney = basicmoney; this-job = job; double Manager:getpay(int m) return pricem+basicmoney; list Report:operator(string job) list cp; list:iterator it; for(it=members.begin();it!=members.end();it+) if(*it)-getjob()=job) cp.push_back(*it); return cp; void Report:print(int month) cout emp_ls; emp_ls = (*this)“經(jīng)理“; print(emp_ls,month); cout emp_list, int month) vector pay; list:iterator it; for(it = emp_list.begin(); it != emp_list.end(); it +) pay.push_back(*it)-getpay(month); return *min_element(pay.begin(), pay.end() ; double Report:max_pay(list emp_list, int month) vector pay; list:iterator it; for(it = emp_list.begin(); it != emp_list.end(); it +) pay.push_back(*it)-getpay(month); return *max_element(pay.begin(), pay.end() ; void Report:print(list emp_list,int month) list:iterator it; for(it = emp_list.begin();it != emp_list.end();it +) coutgetID()getname()getsex()getdate().format(“ddd“)getbasicmoney()getpay(month) :iterator it; for(it = members.begin(); it != members.end(); it +) delete *it; double Technicist:getpay(int m) return basicmoney; double SalesPerson:getpay(int m) return basicmoney + salesm * 0.05; /date.h /增加友元
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度建筑工程合同結(jié)算與支付方式及必要性3篇
- 二零二五年度國有企業(yè)國有資產(chǎn)無償托管協(xié)議3篇
- 二零二五年度企業(yè)社會責任公益捐贈三方協(xié)議書范本3篇
- 2025版酒店品牌代理合作協(xié)議范本(含市場調(diào)研)3篇
- 江西省上饒市(2024年-2025年小學六年級語文)部編版隨堂測試(上學期)試卷及答案
- 二零二五年度個人承包車間高端設(shè)備研發(fā)與生產(chǎn)合同3篇
- 二零二五年度商品房銷售認籌合同及公積金貸款協(xié)議3篇
- 陜西省手機電子廢棄物綜合利用項目可行性研究報告
- 陜西某鋁模板項目可行性研究報告
- 2025年商場新品發(fā)布活動場地租賃及宣傳合同3篇
- 國有企業(yè)考勤制度管理辦法
- 濾波器計算器
- 人教版六年級上冊道德與法治知識點
- 期貨從業(yè)資格(期貨基礎(chǔ)知識)歷年真題試卷匯編27
- 人工智能學習通超星期末考試答案章節(jié)答案2024年
- 北師大版(2019)必修第二冊Unit 5 Humans and nature Lesson 3 Race to the pole教學設(shè)計
- 《毛概》23版學習通超星期末考試答案章節(jié)答案2024年
- 臨建工程量清單
- 宜賓五糧液股份有限公司招聘考試試卷及答案
- 2024CSCO胰腺癌診療指南解讀
- 窗簾采購投標方案(技術(shù)方案)
評論
0/150
提交評論