[YTU]_2476(C++习题 继承与组合)

来源:互联网 发布:淘宝联盟是返利最多的 编辑:程序博客网 时间:2024/06/04 19:19

题目描述

已知类如下:
(1) BirthDate(生日类) 含有:year,month,day 等数据成员
(2) Teacher(教师类)含有:num,name,sex 等数据成员
(3) Professor(教授类)含有:教师类和生日类的数据成员
要求:
(1)通过对Teacher和BirthDate使用继承和组合的方式设计Professor
(2)定义Professor类对象prof,并给出所有数据的初值
(3)修改prof的生日数据
(4)输出prof的全部最新数据

输入

 num,name,sex,year,month,day 和修改后的year,month,day

输出

 num,name,sex,year,month,day 

样例输入

2001 Huang m1970 1 11994 5 26

样例输出

num:2001name:Huangsex:mbirthday:1994/5/26
#include <iostream>using namespace std;class Rectangle   //矩形类{private:    int length;  //矩形的长和宽    int width;public:    Rectangle();    Rectangle(int l,int w); //构造函数,l、w分别代表长和宽    int getArea();   //求面积}; class Bulk: public Rectangle   //立方体类{public:    Bulk(); //默认构造函数    Bulk(int l, int w,int h); //带参数的构造函数    int  getVolume();private:    int height;   //高,长、宽继承自基类};Rectangle::Rectangle(){}Rectangle::Rectangle(int l,int w):length(l),width(w){}int Rectangle::getArea(){    return length*width;}Bulk::Bulk(){}Bulk::Bulk(int l,int w,int h):Rectangle(l,w),height(h){}int Bulk::getVolume(){K#include <iostream>#include <string>using namespace std;class BirthDate {public:    BirthDate(int,int,int);    void display();    void setbirthday(int,int,int);private:    int year;    int month;    int day;};class Teacher{public:    Teacher(int,string,char);    void display();private:    int num;    string name;    char sex;};class Professor:public Teacher{public:    Professor(int,string,char,BirthDate);    void display();    void setbirthday(int,int,int);private:    BirthDate birthday;};BirthDate::BirthDate(int y,int m,int d):year(y),month(m),day(d){}void BirthDate::setbirthday(int y,int m,int d){    year=y;    month=m;    day=d;}void BirthDate::display(){    cout<<"birthday:"<<year<<'/'<<month<<'/'<<day<<endl;}Teacher::Teacher(int n,string nam,char s):num(n),name(nam),sex(s){}void Teacher::display(){    cout<<"num:"<<num<<endl<<"name:"<<name<<endl<<"sex:"<<sex<<endl;}Professor::Professor(int n,string nam,char s,BirthDate BIR):Teacher(n,nam,s),birthday(BIR){}void Professor::setbirthday(int y,int m,int d){    birthday.BirthDate::setbirthday(y,m,d);}void Professor::display(){    Teacher::display();    birthday.BirthDate::display();}int main(){    int num;    string name;    char sex;    int year,month,day;    cin>>num>>name>>sex;    cin>>year>>month>>day;    Professor prof(num,name,sex,BirthDate(year,month,day));    cin>>year>>month>>day;    prof.setbirthday(year,month,day);    prof.display();    return 0;}

原创粉丝点击