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

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

/*   
* Copyright (c) 2014, 煙臺大學計算機學院   
* All rights reserved.   
* 檔名稱:test.cpp   
* 作    者:樑璨   
* 完成日期:2015 年 5  月  21 日   
* 版 本 號:v1.0   
*   
* 問題描述:定義一個名為CPerson的類,有以下私有成員:姓名、身份證號、性別和年齡,成員函式:建構函式、解構函式、輸出資訊的函式。  
並在此基礎上派生出CEmployee類,派生類CEmployee增加了兩個新的資料成員,分別用於表示部門和薪水。要求派生類CEmployee的建構函式顯示  .呼叫基類CPerson的建構函式,併為派生類CEmployee定義解構函式,定義輸出資訊的函式。  
字串除了用C++擴充的string型別外,按C語言的傳統,還可以用char *表示。請將類宣告中的string全部改為char *後,重新寫一遍程式  
(此時的區別是,類中有指標成員,構造和解構函式需要考慮深複製的問題了。)  
* 程式輸入:。。。  
.* 程式輸出:職員資訊與薪水
#include <iostream>

#include <cstring>

using namespace std;

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

CPerson::CPerson(char *name,char *id,int sex,int age)
{
    m_szName=new char[strlen(name)+1];
    strcpy(m_szName,name);
    m_szId=new char[strlen(id)+1];
    strcpy(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()
{
    delete []m_szName;
    delete []m_szId;
}

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

CEmployee::CEmployee(char *name,char *id,int sex,int age,char *department,double salary):
    CPerson(name,id,sex,age)
{
    m_szDepartment=new char[strlen(department)+1];
    strcpy(m_szDepartment,department);
    m_Salary=salary;
}

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

CEmployee::~CEmployee()
{
    delete []m_szDepartment;
}

int main()
{
    char name[10],id[20],department[50];
    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;
}

執行結果:

相關推薦

11專案2-職員薪水2

/* * Copyright (c) 2014, 煙臺大學計算機學院 * All rights reserved. * 檔名稱:test.cpp * 作 者:樑璨 * 完成日期:2015 年 5 月 21 日 * 版 本 號:v

11補充專案2-職員薪水1

/* *Copyright(C) 2016,計算機與控制工程學院 *All rights reserved. *檔名:zhang.cpp *作者:張志新 *完成日期:2016年5月16日 *版本號:v

十一週專案3-職員薪水2

問題及程式碼: /* *Copyright(c)2014,煙臺大學計算學院 *All rights reserved. *檔名稱:test.cpp *作者:陳銀麗 *完成日期:2015年5月31日 *版本號:v1.0 * *問題描述:字元除了用C++擴充的string型別

十一週上機實踐專案2——職員薪水2

(2)字串除了用C++擴充的string型別外,按C語言的傳統,還可以用char 表示。請將類宣告中的string全部改為char 後,重新寫一遍程式(此時的區別是,類中有指標成員,構造和解構函式需要考

2015年大一下11專案4-點、圓關係3直線與圓的交點

/* *Copyright (c) 2014,煙臺大學計算機學院 *All rights reserved. *檔名稱:Annpion.cpp *作者:王耀鵬 *完成日期:2015年5月21日 *版本號:v1.0 * *問題描述:以Point為基類,派生出一個Circle(

11專案2-職員薪水

/* * Copyright (c) 2014, 煙臺大學計算機學院 * All rights reserved. * 檔名稱:test.cpp * 作 者:樑璨 * 完成日期:2015 年 5 月 20 日 * 本 號:v1.

十一週上機實踐專案——職員薪水拓展

/* *程式的版權和版本宣告部分: *Copyright(c)2013,煙臺大學計算機學院學生 *All rights reserved. *檔名稱:職員有薪水了 *作者:劉中林 *完成日期:2014年5月11日 *版本號:v0.1 *對任務及求解方法的描述部分: *輸入

11專案2職員薪水

#include <iostream> using namespace std; class CPerson { protected: string m_szName; string m_szId; int m_nSex;//0:wo

11專案2-職員薪水

#include <iostream> #include <cstring> using namespace std; class CPerson { protected: string m_szName; string m_szId

十一週專案2--職員薪水

/* *Copyright (c) 2014, 煙臺大學計算機學院 *All rights reserved. *檔名稱:test.cpp *作者:於凱 *完成日期:2015年5月20日 *版本號:v1.0 */ #include <iostream> #inc

十一週專案2-職員薪水

/* * 程式的版權和版本宣告部分 * Copyright (c)2013, 煙臺大學計算機學院學生 * All rightsreserved. * 檔名稱:.cpp * 作者:王英華 * 完成日期: 2014年5月6日 * 版本號: v1.0 * 輸入描述:略 * 問題描

十週專案2——職員薪水

問題及程式碼: /* *Copyright (c)2015,煙臺大學計算機與控制工程學院 *All rights reserved. *檔名稱:person.cpp *作 者:趙敏 *完成日期:2015年5月21日 *版 本 號:v1.0 * *問題描述:定義一個名為

十一週-專案2-職員薪水

/* * 程式的版權和版本宣告部分: * Copyright (c) 2013.煙臺大學計算機學院。 * All rights reserved. * 檔名稱: * 作 者:馮冬影 * 完成日期:2014 年 5月 6日 * 版 本 號:v1.0 * 對任務及求解方

C++11專案21參考——百錢百雞

                【專案2:窮舉法解決組合問題】先閱讀例題,領會窮舉法(意為“窮盡式列舉”,也稱列舉)的思想,然後自行選題進行解決,掌握這種程式設計的一般方法。任務:利用窮舉的方法解決下面的問題(選做一道即算完成任務,其他可以抽時間自由安排,多做會使你更聰明。)(1)百錢百雞問題:中國古代數學家

11專案2:求最大公約數

#include <iostream> using namespace std; //自定義函式的原型(即函式宣告) int gcd(int,int); int main() { int a,b,g; cin>>a>>b;

C++11專案26參考——誰是小偷?

【專案2:窮舉法解決組合問題】先閱讀例題,領會窮舉法(意為“窮盡式列舉”,也稱列舉)的思想,然後自行選題進行解決,掌握這種程式設計的一般方法。任務:利用窮舉的方法解決下面的問題(選做一道即算完成任務,其

11專案62-迴文、素數

/* *Copyright (c) 2014 ,煙臺大學計算機學院 *All right reserved. *檔名稱:迴文、素數.cpp *作 者:王偉誠 *完成日期:2014年11月11日 *版 本 號:1.0 * *問題描述:迴文

11專案2 編寫printchs函式

/* *Copyright (c)2013,煙臺大學計算機學院 *All rights reserved. *檔名稱:test.cpp *作者:孫玲倩 *完成日期:2013年11月5日 *版本號:v1.0 *問題描述:根據main函式中對printchs函式

11專案2拓展

#include <iostream> using namespace std; //自定義函式的原型(即函式宣告) int gcd(int,int); int gcds(int,int,int,int); int main() { int a,b,c,

11專案5

/* 煙臺大學計算機學院 檔名稱:xiangmu.cpp 作者:於琛 完成日期:2017年11月12日 問題描述:  設計一個程式,採用深度優先遍歷演算法的思路,解決迷宮問題。   (1)建立迷宮對應的圖資料結構,並建立其鄰接表表示。   (