将本章5.8节中的程序片段加以补充完善,成为一个完整的程序。在程序中使用继承和组合。在定义Professor类对象Prof1时给出所有数据的初值,然后修改prof1的生日数据,最后输出prof1的全部最新数据。
   
class Teacher 
{
	public:
	...
	private:
		int num;
		string name;
		char sex;
};
class Birthday
{
	public:
	...
	private:
		int year;
		int month;
		int day;
};
class Professor:public:Teacher
{
	public:
	...
	private:
		Birthday birth;
};
    
    
    输入
   
    先输入原始数据
    
    num
    
    name
    
    sex
    
    birthday year
    
    birthday month
    
    birthday date
    
    area
    
    然后输入修改的新
    
    birthday year
    
    birthday month
    
    birthday date
   
    
    
    输出
   
    分别输出
    
    original data:
    
    和
    
    new data:
    
    格式参考样例
   
    
    
    样例输入
   
    3012
    
    Zhang
    
    f
    
    1949
    
    10
    
    1
    
    125.4
    
    1950
    
    6
    
    1
   
    
    
    样例输出
   
    original data:
    
    num:3012
    
    name:Zhang
    
    sex:f
    
    birthday:10/1/1949
    
    area:125.4
    
    new data:
    
    num:3012
    
    name:Zhang
    
    sex:f
    
    birthday:6/1/1950
    
    area:125.4
   
    
    
    代码
   
#include<iostream>
#include<string>
using namespace std;
class Teacher
{
 public:
  Teacher(int n,string nam,string s){num=n;name=nam;sex=s;
  }
  void display(){
   cout<<"num:"<<num<<endl;
   cout<<"name:"<<name<<endl;
   cout<<"sex:"<<sex<<endl;
  }
  protected:
  int num;
  string name;
  string sex;
};
class Birthday
{
 protected:
  int year;
  int month;
  int day;
 public:
  Birthday(int y,int m,int d){year=y;month=m;day=d;
  } 
  void show(){
   cout<<"birthday:"<<month<<"/"<<day<<"/"<<year<<endl;
  }
  void show1(int y,int m,int d){
   year=y;
   month=m;
   day=d;
  }
};
class Professor:public Teacher
{
 public:
  Birthday birth;
  float area;
  Professor(int n,string nam,string s,int y,int m,int d,float a):Teacher(n,nam,s),birth(y,m,d){area=a;
  }
  void fun(){
   Teacher::display();
   birth.show();
   cout<<"area:"<<area<<endl; 
  } 
  void change(int y,int m,int d){
   Teacher::display();
   birth.show1(y,m,d);
   birth.show();
   cout<<"area:"<<area<<endl;
  }
};
int main()
{
 int a,y,m,d,y1,m1,d1;string b,c;
 cin>>m1>>d1>>y1;
 float ar;
 cin>>a>>b>>c>>y>>m>>d>>ar;
 Professor p1(a,b,c,y,m,d,ar);
 cout<<"original date:"<<endl;
 p1.fun();
 cout<<"new date:"<<endl;
 p1.change(m1,d1,y1);
 return 0;  
}
 
版权声明:本文为dlin_666原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
