2012C++程序設計實驗報告【10.2】

/* (程序頭部註釋開始)
* 程序的版權和版本聲明部分
* Copyright (c) 2011, 煙臺大學計算機學院學生
* All rights reserved.
* 文件名稱:                      
* 作    者:      王琳                      
* 完成日期:    2012     年   4    月   23  日
* 版 本 號:     10-2

* 對任務及求解方法的描述部分
* 問題描述:定義一個名爲CPerson的類,有以下私有成員:姓名、身份證號、性別和年齡,成員函數:構造函數、析構函數、輸出信息的函數。並在此基礎上派生出CEmployee類,派生類CEmployee增加了兩個新的數據成員,分別用於表示部門和薪水。要求派生類CEmployee的構造函數顯示調用基類CPerson的構造函數,併爲派生類CEmployee定義析構函數,定義輸出信息的函數。

* 程序頭部的註釋結束
*/

源程序:

#include <iostream>

#include <string.h>

#include <iomanip>//setw:設置輸出數據的寬度,使用時應#include <iomanip.h> 

using namespace std;

class CPerson 
{
protected:
	char *m_szName;
	char *m_szId;
	int m_nSex;//0:women,1:man
	int m_nAge;

public:
	CPerson(char *name,char *id,int sex,int age);
	void Show1();
	~CPerson();  //需要釋放建立對象時動態分配的內存
};

class CEmployee:public CPerson
{
private:
	char *m_szDepartment;
	float m_Salary;

public:
	CEmployee(char *name,char *id,int sex,int age,char *department,float salary);
	void Show2();
	~CEmployee();
};

//定義需要釋放建立對象時動態分配的內存的函數
CPerson::~CPerson()
{
	delete []m_szName;
	delete []m_szId;
}

CPerson::CPerson(char *name,char *id,int sex,int age):m_szName(name),m_szId(id), m_nSex(sex),m_nAge(age){} 


void CPerson::Show1()
{
	cout << setw(6)  << m_szName << setw(18) << m_szId << setw(8)<<((m_nSex==0)?"women":"man")<<setw(10)<<m_nAge; 
}

void CEmployee::Show2()  
{  
   cout<< "name" << setw(10) << "id" << setw(19) << "sex" << setw(10) << "age" << setw(16) << "department" << setw(11) << "salary" << endl;      
   Show1();    
   cout <<setw(16)<< m_szDepartment << setw(11) << m_Salary << endl;      
}    


CEmployee::CEmployee(char *name,char *id,int sex,int age,char *department,float salary):CPerson(name,id,sex,age)  
{  
    m_szDepartment = department ; 

    m_Salary = salary ;  
} 

//釋放內存
CEmployee::~CEmployee()
{
	delete []m_szDepartment;
}

int main()
{
	char name[10],id[19],department[10];
	int sex,age;
	float salary;
	cout<<"input employee's name,id,sex(0:women,1:man),age,department,salary:\n";
	cin>>name>>id>>sex>>age>>department>>salary;
	CEmployee employee1(name,id,sex,age,department,salary);
	employee1.Show2();
	system("pause");
	return 0;
}


運行結果:

input employee's name,id,sex(0:women,1:man),age,department,salary:
Tom 370102198703255357 0 25 computer 2345.6
name        id                sex       age      department     salary
   Tom370102198703255357   women        25        computer     2345.6
請按任意鍵繼續. . .

 

 感想:今天收穫不小啊,不僅將程序編出來了,而且,在博文裏面再也不用出現黑框框了,哈哈,悲催的是,假期跟同學學了怎樣將黑框框和黑框框裏面的字變成其他顏色,可是,現在竟然把那條語句給 。。。忘了。。。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章