1. 程式人生 > >第11周專案2-職員有薪水啦

第11周專案2-職員有薪水啦

/*   
* Copyright (c) 2014, 煙臺大學計算機學院   
* All rights reserved.   
* 檔名稱:test.cpp   
* 作    者:樑璨   
* 完成日期:2015 年 5  月  20 日   
* 本 號:v1.0   
*   
* 問題描述:定義一個名為CPerson的類,有以下私有成員:姓名、身份證號、性別和年齡,成員函式:建構函式、解構函式、輸出資訊的函式。  
並在此基礎上派生出CEmployee類,派生類CEmployee增加了兩個新的資料成員,分別用於表示部門和薪水。要求派生類CEmployee的建構函式顯示  
呼叫基類CPerson的建構函式,併為派生類CEmployee定義解構函式,定義輸出資訊的函式。  
* 程式輸入:。。。  
* 程式輸出:職員資訊與薪水 

#include <iostream>

#include <cstring>

using namespace std;

class CPerson
{
protected:
    string m_szName;
    string m_szId;
    int m_nSex;//0:woman,1:man
    int m_nAge;
public:
    CPerson(string name,string id,int sex,int age);
    void show1();
    ~CPerson();
};

CPerson::CPerson(string name,string id,int sex,int age)
{
    m_szName=name;
    m_szId=id;
    m_nSex=sex;
    m_nAge=age;
}

void CPerson::show1()
{
    cout<<'\t'<<"name\t\t"<<"id\t"<<"sex\t"<<"age\n";
    cout<<'\t'<<m_szName<<'\t'<<m_szId<<'\t';
    if(m_nSex==1) cout<<"man";
    else cout<<"woman";
    cout<<'\t'<<m_nAge<<'\12';
}

CPerson::~CPerson() {}

class CEmployee: public CPerson
{
private:
    string m_szDepartment;
    double m_Salary;
public:
    CEmployee(string name,string id,int sex,int age,string department,double salary);
    void show2();
    ~CEmployee();
};

CEmployee::CEmployee(string name,string id,int sex,int age,string department,double salary):
    CPerson(name,id,sex,age),m_szDepartment(department),m_Salary(salary) {}

void CEmployee::show2()
{
    cout<<'\t'<<"name\t\t"<<"id\t"<<"sex\t"<<"age\t"<<"department\t"<<"salary\n";
    cout<<'\t'<<m_szName<<'\t'<<m_szId<<'\t';
    if(m_nSex==1) cout<<"man";
    else cout<<"woman";
    cout<<'\t'<<m_nAge<<'\t'<<m_szDepartment<<'\t'<<m_Salary<<'\12';
}

CEmployee::~CEmployee(){}

int main()
{
    string name,id,department;
    int sex,age;
    double 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();
    return 0;
}

執行結果: