[置顶] 第十三项目三:CEmployee类继承自CPerson类

/* 
* 程序的版权和版本声明部分 
* Copyright (c)2012, 烟台大学计算机学院学生 
* All rightsreserved. 
* 文件名称: fun.cpp 
* 作 者:李蒙
* 完成日期:2013年 05月 19日 
* 版本号: v1.0 
* 对任务及求解方法的描述部分: 
* 输入描述:略 
* 问题描述:略 
* 程序输出:如下 
*/  
#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);  
    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(10)<<m_szId;
	if(m_nSex==0)
		cout<<setw(7)<<"woman";
	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;  
	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;  
}  

输出结果:

posted @ 2013-05-19 21:59  javawebsoa  Views(224)  Comments(0Edit  收藏  举报