第十二週實驗指導--任務2--分別定義Teacher(教師)類和Cadre(幹部)類,採用多重繼承方式由這兩個類派生出新類Teacher_Cadre(教師兼幹部)...
/* (程式頭部註釋開始)
* 程式的版權和版本宣告部分
* Copyright (c) 2011, 煙臺大學計算機學院學生
* All rights reserved.
* 檔名稱:分別定義Teacher(教師)類和Cadre(幹部)類,採用多重繼承方式由這兩個類派生出新類Teacher_Cadre(教師兼幹部)
* 作 者: 雷恆鑫
* 完成日期: 2012 年 04 月 29 日
* 版 本 號: V1.0
* 對任務及求解方法的描述部分
* 輸入描述:1)在兩個基類中都包含姓名、年齡、性別、地址、電話等資料成員。
(2)在Teacher類中還包含資料成員title(職稱),在Cadre類中還包 含資料成員post(職務),在Teacher_Cadre類中還包含 資料成員 wages(工資)。
(3)對兩個基類中的姓名、年齡、性別、地址、電話 等資料成員用相同的名字,在引用這些資料成員時,指定作用域。
(4)在類體中宣告成員函式,在類外定義成員函式。
(5)在派生類Teacher_Cadre的成員函式show中呼叫Teacher類中的display函式,輸出姓名、年齡、性別、職稱、地址、電話,然後再用 cout語句輸出職務與工資。
* 問題描述:* 程式輸出:
* 程式頭部的註釋結束
*/
#include<iostream> #include<string> #include <iomanip> using namespace std; class Teacher { public: Teacher(string nam,int Age,int Sex,char *Department, int phone,string title1); ~Teacher( ); void display(); protected: string name; int m_nAge; int m_nSex;//0:women,1:man char *m_szDepartment; int m_phone; string title; }; Teacher::Teacher(string nam,int Age,int Sex,char *Department,int phone,string title1) { name=nam; m_nAge=Age; m_nSex=Sex; int i; m_szDepartment=new char[30]; for(i=0;i<30;++i) m_szDepartment[i]=*(Department+i); //此處的處理是個重點,處理不好,會在程式中植入非常嚴重且隱蔽性極強的"定時" //strcpy(m_szDepartment,Department); m_phone=phone; title=title1; } Teacher::~Teacher() { delete [] m_szDepartment; } void Teacher::display() { cout << setiosflags(ios :: left) << setw(5) <<name<< setw(5) <<m_nAge << setw(5)<<((m_nSex==0)?"women":"man")<<setw(8)<<m_szDepartment<<setw(5)<<title<<setw(5)<<m_phone; } class Cadre { public: Cadre(string nam,int Age,int Sex,char *Department,int phone,string post1) ; ~Cadre( ); protected: string name; int m_nAge; int m_nSex;//0:women,1:man char *m_szDepartment; int m_phone; string post; }; Cadre::Cadre(string nam,int Age,int Sex,char *Department,int phone,string post1) { name=nam; m_nAge=Age; m_nSex=Sex; int i; m_szDepartment=new char[30]; for(i=0;i<30;++i) m_szDepartment[i]=*(Department+i); m_phone=phone; post=post1; } Cadre::~Cadre() { delete [] m_szDepartment; } class Teacher_Cadre:public Teacher,public Cadre { public: Teacher_Cadre(string nam,int Age,int Sex,char *Department,int phone,string title1,string post1,float wages1) ; //~Teacher_Cadre( ); void show(); friend ostream & operator<<(ostream &,const Teacher_Cadre &);//過載運算子"<<" protected: /*string name; int m_nAge; int m_nSex;//0:women,1:man char *m_szDepartment; int m_phone; */ float wages; }; Teacher_Cadre::Teacher_Cadre(string nam,int Age,int Sex,char *Department,int phone,string title1,string post1,float wages1):Teacher(nam,Age,Sex,Department,phone,title1),Cadre(nam,Age,Sex,Department,phone,post1),wages(wages1){} /*Teacher_Cadre::~Teacher_Cadre() { delete [] m_szDepartment; }*/ void Teacher_Cadre::show() { display(); } ostream & operator<<(ostream &output,const Teacher_Cadre &p) { output<<" 工資為:"; output<<setw(5)<<p.wages<<" "; output<<"職務為:"; output<<p.title<<endl; return output; } int main( ) { string name,title1,post1; char department[10]; int sex,age; int phone; float wages; cout<<"input Teacher_Cadre's name,Age,sex(0:women,1:man),department,phone,title,post,wages:\n"; cin>>name>>age>>sex>>department>>phone>>title1>>post1>>wages; Teacher_Cadre Teacher_Cadre1(name,age,sex,department,phone,title1,post1,wages); Teacher_Cadre1.show(); cout<<Teacher_Cadre1; system("PAUSE"); return 0; }
執行結果:
相關推薦
第十二週實驗指導--任務2--分別定義Teacher(教師)類和Cadre(幹部)類,採用多重繼承方式由這兩個類派生出新類Teacher_Cadre(教師兼幹部)
/* (程式頭部註釋開始) * 程式的版權和版本宣告部分 * Copyright (c) 2011, 煙臺大學計算機學院學生 * All rights reserved. * 檔名稱:分別定義Teacher(教師)類和Cadre(幹部)類,採用多重繼承方式由這兩個類派
第十二週實驗指導--任務2--分別定義Teacher(教師)類和Cadre(幹部)類,採用多重繼承方式由這兩個類派生出新類Teacher_Cadre(教師兼幹部)...
/* (程式頭部註釋開始) * 程式的版權和版本宣告部分 * Copyright (c) 2011, 煙臺大學計算機學院學生 * All rights reserved. * 檔名稱:分別定義Teacher(教師)類和Cadre(幹部)類,採用多重繼承方式由這兩個類派生出
請賀老師幫我看看這個亂碼問題【任務2】分別定義Teacher(教師)類和Cadre(幹部)類,採用多重繼承方式由這兩個類派生出新類Teacher_Cadre
【任務2】(教材P394習題9)分別定義Teacher(教師)類和Cadre(幹部)類,採用多重繼承方式由這兩個類派生出新類Teacher_Cadre(教師兼幹部)。要求: (1)在兩個基類中都包含姓名、年齡、性別、地址、電話等資料成員。 (2)在Teacher類中還包
第十二週任務二 分別定義Teacher(教師)類和Cadre(幹部)類,採用多重繼承方式有這兩個類派生出Teacher_Cadre
/* (程式頭部註釋開始) * 程式的版權和版本宣告部分 * Copyright (c) 2011, 煙臺大學計算機學院學生 * All rights reserved. * 檔名稱:第十二週任務二 分別定義Teacher(教師)類和Cadre(幹部)類, 採用多重繼承方
在程式中定義一個基類Person類,由這個基類派生出Teacher(教師)類和Leader(領導)類。採用多繼承的方式由這兩個類派生出Teacher_Leader類。並且滿足以下要求:
#include using namespace std; #include #include class Person { public: Person(char* name, int age, char *gender, char * address, long phone); void show(v
第十二週專案3 - 圖遍歷演算法實現(2)
/*Copyright (c) 2015, 煙臺大學計算機與控制工程學院 * All rights reserved. * 檔名稱:H1.cpp * 作者:辛志勐 * 完成日期:2015年11月23日 * 版本號:VC6.0 * 問題描述:廣度優先遍歷——BFS * 輸入描述:無 * 程式輸出:圖的
201711671203《Java程式設計》第十二週學習報告(2)
上一份學習報告寫完之後,拖了兩天緩了緩。 -------------------------------------------------------------------------------------------------------------------------------
第十二週Java實驗作業
實驗十一 集合 實驗時間 2018-11-8 1、實驗目的與要求 (1) 掌握Vetor、Stack、Hashtable三個類的用途及常用API; Vector類類似長度可變的陣列,其中只能存放物件,其中的元素通過下標進行訪問。 Vetor類關鍵
201771010135 楊蓉慶《面對物件程式設計(java)》第十二週學習總結
1、實驗目的與要求 (1) 掌握Java GUI中框架建立及屬性設定中常用類的API; (2) 掌握Java GUI中2D圖形繪製常用類的API; (3) 瞭解Java GUI中2D圖形中字型與顏色的設定方法; (4) 瞭解Java
徐思201771010132《面向物件程式設計(Java)》第十二週學習總結
一、理論知識部分 Java的抽象視窗工具箱(Abstract Window Toolkit, AWT)包含在java.awt包中,它提供了許多用來設計GUI的元件類和容器類。 大部分AWT元件都有其Swing的等價元件,Swing元件的名字一般是在AWT元件名前面新增一個字母“J”。 通常把由Compo
王穎奇 20171010129《面向物件程式設計(java)》第十二週學習總結
實驗十二 圖形程式設計 理論: 10.1 AWT與Swing簡介 10.2 框架的建立10.3 圖形程式設計10.4 顯示影象 (具體學習總結在最後) 實驗: 實驗時間 2018-11-14 1、實驗目的與要求 (1) 掌握Java GUI中
第十二週專案3 - 圖遍歷演算法實現(1)
/*Copyright (c) 2015, 煙臺大學計算機與控制工程學院 * All rights reserved. * 檔名稱:H1.cpp * 作者:辛志勐 * 完成日期:2015年11月23日 * 版本號:VC6.0 * 問題描述:實現圖遍歷演算法,輸出圖結構的深度優先(DFS)遍歷序列
第十二週專案2 - 操作用鄰接表儲存的圖
/*Copyright (c) 2015, 煙臺大學計算機與控制工程學院 * All rights reserved. * 檔名稱:H1.cpp * 作者:辛志勐 * 完成日期:2015年11月20日 * 版本號:VC6.0 * 問題描述:操作用鄰接表儲存的圖 * 輸入描述:無 * 程式輸出:(1)
201771010125王瑜《面向物件程式設計(Java)》第十二週學習總結
第十二週學習總結 一 . 理論部分 1.概述:使用者介面,使用者與計算機系統(各種程式)互動的介面 圖形使用者介面,
201772020113李清華《面向物件程式設計(java)》第十二週學習總結
1、實驗目的與要求 (1) 掌握Java GUI中框架建立及屬性設定中常用類的API; (2) 掌握Java GUI中2D圖形繪製常用類的API; (3) 瞭解Java GUI中2D圖形中字型與顏色的設定方法; (4) 瞭解Java GUI中2D影象的載入方法。 2、實驗內容和步驟 實驗1: 匯入
201771010109 焦旭超《面向物件程式設計(java)》第十二週學習總結
1、實驗目的與要求 (1) 掌握Java GUI中框架建立及屬性設定中常用類的API; (2) 掌握Java GUI中2D圖形繪製常用類的API; (3) 瞭解Java GUI中2D圖形中字型與顏色的設定方法; (4) 瞭解Java GUI中2D影象的載入方法。 2、實驗內容和步驟 實驗
201771010110孔維瀅《面向物件程式設計(java)》第十二週學習總結
理論知識部分 1.Java的抽象視窗工具箱(AbstractWindow Toolkit,AWT)包含在java.awt包中,它提供了許 多用來設計GUI的元件類和容器類。 2.Swing使用者介面庫是非基於對等體的GUI工具箱。Swing類庫被放在javax.swing包裡。 3.大部分AWT元件都有
201771010112羅鬆《面向物件程式設計(java)》第十二週學習總結
一、實驗目的與要求 (1) 掌握Java GUI中框架建立及屬性設定中常用類的API; (2) 掌握Java GUI中2D圖形繪製常用類的API; (3) 瞭解Java GUI中2D圖形中字型與顏色的設定方法; (4) 瞭解Java
201771010128王玉蘭《面向物件程式設計(Java)》第十二週學習總結
第一部分:理論知識 1.AWT與Swing簡介 (1)Swing使用者介面庫是非基於對等體的GUI工具箱。 Swing具有更豐富並且更方便的使用者介面元素集合。 Swing對底層平臺的依賴很少,因此與平臺相關的bug很少。 Swing會帶來交叉平臺上的統一視覺體驗。 Swing類庫被放在javax
李曉菁201771010114《面向物件程式設計(java)》第十二週學習總結
一:理論部分 1.(1) 使用者介面(User Interface)使用者與計算機系統(各種程式)互動的介面 (2)圖形使用者介面(Graphical User Interface)以圖形方式呈現的使用者介面 2.AWT:Java 的抽象視窗工具箱( Abstract WindowToolkit, AW