C++作业4-继承和派生1

一、龙三

#include <iostream>    
#include <string>    
using namespace std;    
class Person{    
public:    
    Person(string s)
	{    
        name=s;    
    }    
    void display( )
	{    
        cout<<"Name: "<<name<<endl;    
    }    
private:    
    string name;    
};    
class Student: public Person   
{    
public:    
    Student(string s, int g):Person(s)     
    {grade=g;}    
    void display1( )
	{    
        display();      
        cout<<"Grade: "<<grade<<endl;    
    }    
private:    
    int grade;    
};    
int main( )    
{    
    Student s("龙三",19);    
    s.display1();         
    return 0;    
}    


三、职员薪水

#include <iostream>  
#include <string.h>  
#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[20];  
for(int i=0;i<20;++i)  
m_szName[i]=*(name+i);  
m_szId=new char[30];  
for(int j=0;j<30;++j)  
m_szId[j]=*(id+j);  
m_nSex=sex;  
m_nAge=age;  
}   


CEmployee::CEmployee(char *name,char *id,int sex,int age,char *department,float salary):CPerson(name,id,sex,age)  
{  
	m_szDepartment=new char[20];  
	for(int i=0;i<20;++i)  
		m_szDepartment[i]=*(department+i);  
	m_Salary=salary;  
}  
void CPerson ::Show1()  
{  
	cout<<setw(5)<<m_szName<<setw(20)<<m_szId<<setw(9)<<((m_nSex==0)?"women":"men")<<setw(6)<<m_nAge;  
}  

void CEmployee::Show2()  
{  
	cout<<setw(6)<<"name"<<setw(19)<<"id"<<setw(9)<<"sex"<<setw(7)<<"age"<<setw(12)<<"department"<<setw(8)<<"salary"<<endl;  
	Show1();  
	cout<<setw(11)<<m_szDepartment<<setw(9)<<m_Salary<<endl;  
}  
CPerson::~CPerson()  
{  
	delete []m_szName;  
	delete []m_szId;  
}  
CEmployee::~CEmployee()  
{  
	delete []m_szDepartment;  
}  
int main()  
{  
	char name[10],id[19],department[10];  
	int sex,age;  
	float salary;  
	cout<<"请输入雇员姓名,ID,性别(0:女,1:男),a年龄,部门,薪水:\n";  
	cin>>name>>id>>sex>>age>>department>>salary;  
	CEmployee employee1(name,id,sex,age,department,salary);  
	employee1.Show2();  
	system("pause");  
	return 0;  
}  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值