码迷,mamicode.com
首页 > 其他好文 > 详细

第10、 11 周-职工有薪水啦

时间:2016-05-13 01:09:09      阅读:190      评论:0      收藏:0      [点我收藏+]

标签:

问题及代码:

/*copyright 计算机与控制工程学院
完成日期:2016年5月8日
作者:马艳艳

问题描述:wu
输入描述:职工信息
输出描述:职工信息
*/
#include <iostream>
#include <cstring>
#include <iostream>

#include <iomanip>

using namespace std;
class CPerson
{
protected:
    char *m_szName;
    char *m_szID;
    int m_nSex;
    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(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<<setw(10)<<m_szName<<setw(25)<<m_szID; //setw:设置输出数据的宽度,使用时应#include <iomanip.h>
    if(m_nSex==0)
        cout<<setw(7)<<"women";
    else
        cout<<setw(7)<<"man";
    cout<<setw(5)<<m_nAge<<endl;
}

CPerson::~CPerson()
{
    delete [ ]m_szName;
   delete [ ]m_szID;
}

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

void CEmployee::show2()//注意派生类输出函数应输出所有成员变量(含基类继承的成员变量)的值
{
    cout<<setw(10)<<"name"<<setw(25)<<"id"<<setw(7)<<"sex"<<setw(5)<<"age"<<setw(12)<<"department"<<setw(10)<<"salary"<<endl;
    cout<<setw(10)<<m_szName<<setw(25)<<m_szID;
    if(m_nSex==0)
cout<<setw(7)<<"women";
    else
        cout<<setw(7)<<"man";
    cout<<setw(5)<<m_nAge;
    //由于基类CPerson的成员变量采用了protected属性,因此可采用上述述代码实现,否则若
    //基类CPerson的成员变量采用了privated属性,则只能使用CPerson::Show();实现
    cout<<setw(12)<<m_szDepartment<<setw(10)<<m_Salary<<endl;
}

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();
    return 0;
}



运行结果:


技术分享

知识点总结:

在继承中用指针,过程中利用string的函数进行复制,就是相当于其中的赋值然后,再利用私有成员的时候用Cperson::show来实现、

第10、 11 周-职工有薪水啦

标签:

原文地址:http://blog.csdn.net/qq_33267291/article/details/51346383

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!