CPerson类——个人信息表

来源:互联网 发布:淘宝冰点价什么意思 编辑:程序博客网 时间:2024/04/29 14:41
/**【项目3】定义一个名为CPerson的类,有以下私有成员:姓名、身份证号、性别和年龄,成员函数:构造函数、析构函数、输出信息的函数。并在此基础上派生出CEmployee类,派生类CEmployee增加了两个新的数据成员,分别用于表示部门和薪水。* 程序的版权和版本声明部分* Copyright (c)2012, 烟台大学计算机学院学生* All rightsreserved.* 文件名称: object.cpp* 攻城菜鸟:蛋蛋* 完成日期:2013年  5 月  12 日* 版本号:  vc++* 输入描述:姓名、身份证号、性别和年龄、部门及薪水* 问题描述:要求派生类CEmployee的构造函数显示调用基类CPerson的构造函数,并为派生类CEmployee定义析构函数,定义输出信息的函数。* 程序输出:两点及其中点坐标及该线段长度*/#include<iostream>#include<iomanip>#include<string>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){        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 Show1(){        cout<<setw(5)<<"姓名"<<setw(20)<<"身份证号"<<setw(13)<<"性别"<<setw(10)<<"年龄"<<endl;        cout<<setw(5)<<m_szName<<setw(24)<<m_szId;        if(m_nSex==0)        cout<<setw(8)<<"woman";        if(m_nSex==1) cout<<setw(8)<<"man";        cout<<setw(8)<<m_nAge<<endl;        }    ~CPerson(){        delete []m_szName;        delete []m_szId;        }  //需要释放建立对象时动态分配的内存};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):CPerson(name,id,sex,age){        m_szDepartment=new char[strlen(department)+1];        strcpy(m_szDepartment,department);        m_Salary=salary;    }    void Show2(){        Show1();        cout<<setw(5)<<"部门"<<setw(14)<<"薪水"<<endl;        cout<<setw(10)<<m_szDepartment<<setw(9)<<m_Salary<<endl;    }    ~CEmployee(){        delete []m_szDepartment;    }};int main(){    char name[3],id[18],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;}