C--第7次實驗報告講解(共9頁)_第1頁
C--第7次實驗報告講解(共9頁)_第2頁
C--第7次實驗報告講解(共9頁)_第3頁
C--第7次實驗報告講解(共9頁)_第4頁
C--第7次實驗報告講解(共9頁)_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、精選優(yōu)質文檔-傾情為你奉上C語言程序設計課程實驗報告(第 7 次)學 院:數(shù)學與計算機學院姓 名:張元杰學 號:3專 業(yè):軟件工程班 級:1班同 組 人:實驗地點:6A-2實驗時間:指導教師:實驗名稱:繼承與派生(二)所使用的開發(fā)工具及環(huán)境:硬件 PC機一臺實驗目的:1 理解繼承和派生的概念;2 理解繼承在面向對象程序設計中的重要作用;3 掌握通過繼承派生出一個新類的方法;4 進一步學習簡單面向對象程序的編寫; 實驗內容:1. 教師干部類/50分設計一個基類Person類,再派生出教師類(Teacher)、干部類(Cadre),再采用多重繼承派生出新類:Teacher_Cadre要求如下:1)

2、Person類包含:姓名、年齡、性別、地址、電話等;在 Teacher類中新增加:title(職稱) ,在 Cadre 類中新增加:post(職務) ,在 Teacher_Cadre中新增加:wages(工資)成員; 2)Person類,Teacher類,Cadre類都包含:display()函數(shù),分別輸出本類中的成員信息; 3)在Teacher類,Cadre類中的姓名、年齡、性別、地址、電話等數(shù)據成員使用相同名字,在派生類中引用這些數(shù)據成員時,采用指定作用域的方式; 4)在派生類 Teacher_Cadre 的成員函數(shù) Show()中調用 Teacher 類中的 display()函數(shù),輸出

3、姓名、年齡、性別、地址、電話,職稱;另外同時再輸出其他成員變量。 5)使用對象數(shù)組保存輸入的對象;2. 小型公司人員管理某小型公司有四類人員: 總經理、 技術人員、 銷售經理、 推銷員。 設計一個基類 employee派生出 manager(總經理) 、technician(技術人員) 、salesmanager(銷售經理) 、saleman(推銷員)。銷售經理既是經理又是銷售人員,兼具兩類人員的特點,因此同時繼承 manager 和salesman 兩個類。 /50分1)類定義 employee類: 基本信息:編號、姓名、性別、出生日期、職位、薪水等;出生日期使用自定義的 Date(日期)類

4、;其中:基本信息為 private 屬性,成員函數(shù)為 public 屬性;多個構造函數(shù):缺省構造函數(shù)、帶參數(shù)的構造函數(shù)、帶默認參數(shù)的構造函數(shù);可以從外部訪問類成員函數(shù); Date 類: 成員變量:年、月、日 成員函數(shù):SetYear(int year)、SetMonth(int month)、SetDay(int day)、GetYear()、GetMonth()、GetDay() 派生類 technician:新增屬性:工作時間 派生類 saleman:新增屬性:銷售額、所屬部門 2)實現(xiàn)人員信息的錄入與顯示; 3)計算并顯示個人月薪: 月薪計算辦法:總經理拿固定月薪 8000 元,技術人員

5、按每小時25元領取月薪;推銷員的月薪按當月銷售額的4%提成; 銷售經理固定月薪5000元加所管轄部門當月銷售總額的 5 。實驗提示 在基類中,除了定義構造函數(shù)和析構函數(shù),還應統(tǒng)一定義對各類人員信息應有的操作,規(guī)范類族中各派生類的基本行為,但是各類人員的月薪計算方法不同,不能在基類employee 中統(tǒng)一確定計算方法。各類人員信息的顯示內容不同,同樣不能在基類employee中統(tǒng)一確定顯示方法。在基類中實現(xiàn)上述功能的函數(shù)體應為空,在派生類中根據同名覆蓋原則定義各自的同名函數(shù)實現(xiàn)具體功能。 將基類 employee 分成兩個獨立文檔:employee.h(類聲明頭文件) 和 employy.cpp

6、(類實現(xiàn)文件) “職位”的類型設定為 int;結果與分析:Sy7-1:#include<iostream>#include<string>using namespace std;class Personpublic:Person()Person(string na,int ag,string se,string ad,string te):name(na),age(ag),sex(se),addr(ad),tel(te)void display();private:string name;int age;string sex;string addr;string tel

7、;class Teacher: public Personpublic:Teacher(string na,int ag,string se,string ad,string te,string ti):Person(na,ag,se,ad,te),title(ti)void display();private:string title; /職稱;class Cadre: public Personpublic:Cadre(string na,int ag,string se,string ad,string te,string po):Person(na,ag,se,ad,te),post(

8、po)void display();string Post()return post;private: string post; /職務;class Teacher_Cadre:public Teacher,Cadrepublic:Teacher_Cadre(string na,int ag,string se,string ad,string te,string ti,string po,double wa):Teacher(na,ag,se,ad,te,ti),Cadre(na,ag,se,ad,te,po),wages(wa)void show();private:double wage

9、s;void Person:display()cout<<"Name:"<<name<<endl;cout<<"Age:"<<age<<endl;cout<<"Sex:"<<sex<<endl;cout<<"Address:"<<addr<<endl;cout<<"Tel:"<<tel<<endl;void Teach

10、er:display()Person:display();cout<<"Title:"<<title<<endl;void Cadre:display()Person:display();cout<<"Post:"<<post<<endl;void Teacher_Cadre:show()Teacher:display();cout<<"Post:"<<Post()<<endl;cout<<"Wages:&

11、quot;<<wages<<endl<<endl;int main()Teacher_Cadre tc3=Teacher_Cadre("張三",33,"男","成都","","教授","教務處主任",7999), Teacher_Cadre("李思",25,"女","重慶","","講師","助理",5677), Teac

12、her_Cadre("王武",27,"男","廣州","","副教授","講師",6299);for(int i=0;i<3;i+)tci.show();system("pause");return 0;Sy7-2:#include<iostream>#include<string> using namespace std;class Date /時間類public:Date(int ye=0,int mo=0,int da=

13、0):year(ye),month(mo),day(da)void SetYear(int year)year=year;void SetMonth(int month)month=month;void SetDay(int day)day=day;int GetYear()return year;int GetMonth()return month;int GetDay()return day;private:int year;int month;int day;class Employee /雇員類public:Employee()Employee(int nu,string na,str

14、ing se,int ye,int mo,int da,string ti):num(nu),name(na),sex(se),birthday(ye,mo,da),title(ti)void Setwages(double wa)wages=wa;void display();Date birthday;private:double wages;int num;string name;string sex;string title;class Manager: virtual public Employee /經理類public:Manager()Manager(int nu,string

15、na,string se,int ye,int mo,int da,string ti):Employee(nu,na,se,ye,mo,da,ti)Setwages(8000);void display();class Technician:public Employee /技術人員類public:Technician(int nu,string na,string se,int ye,int mo,int da,string ti,double wo):Employee(nu,na,se,ye,mo,da,ti), WorkTime(wo)Setwages(WorkTime*25);voi

16、d display();private:double WorkTime;class Saleman: virtual public Employee /銷售員類public:Saleman(int nu,string na,string se,int ye,int mo,int da,string ti,double sa,string de):Employee(nu,na,se,ye,mo,da,ti),department(de),sale(sa)Setwages(sale*0.04);double Getsale()return sale;void display();private:d

17、ouble sale;string department;class Salesmanager:public Saleman,Manager /銷售經理類public:Salesmanager(int nu,string na,string se,int ye,int mo,int da,string ti,double sa,string de):Saleman(nu,na,se,ye,mo,da,ti,sa,de),Manager(nu,na,se,ye,mo,da,ti),Employee(nu,na,se,ye,mo,da,ti)Setwages(5000+Getsale()*0.00

18、5);void display();int main()Manager m1(101,"張三","男",1987,4,3,"經理");m1.display();cout<<endl;Technician te1(301,"李嗣","男",1988,4,23,"技術人員",200);te1.display();cout<<endl;Saleman sm1(201,"王武","男",1990,6,3,"銷售

19、員",20000,"副食部");sm1.display();cout<<endl;Saleman sm2(202,"陳琪","女",1992,12,17,"銷售員",40000,"副食部");sm2.display();cout<<endl;Salesmanager sma1(210,"趙柳","女",1986,4,29,"銷售經理",60000,"副食部");sma1.display();system("pause");return 0;void Employee:display()/基本信息:編號、姓名、性別、出生日期、職位、薪水等;cout<<"編號:"<<num<<endl;cout<<"姓名:"<<name<<endl;cout<<

溫馨提示

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

評論

0/150

提交評論