/* *程序的版权和版本声明部分: *Copyright(c)2013,烟台大学计算机学院学生 *All rights reserved. *文件名称: *作者:尚振伟 *完成日期:2014年5月28日 *版本号:v0.1 *对任务及求解方法的描述部分: *输入描述:无 *问题描述:(1) BirthDate(生日类) 含有:year,month,day 等数据成员 (2) Teacher(教师类)含有:num,name,sex 等数据成员 (3) Professor(教授类)含有:教师类和生日类的数据成员 要求: (1)通过对Teacher和BirthDate使用继承和组合的方式设计Professor (2)定义Professor类对象prof,并给出所有数据的初值 (3)修改prof的生日数据 (4)输出prof的全部最新数据 *程序输入: *程序输出: *问题分析: *算法设计: *我的程序: */ #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; }; Professor::Professor(int n,string na,char s,BirthDate bdate): Teacher(n,na,s),birthday(bdate) {} void Professor::display() { Teacher::display(); birthday.display(); } void Professor::setbirthday(int y2,int m2,int d2) { birthday.setbirthday(y2,m2,d2); } BirthDate::BirthDate(int y,int m,int d):year(y),month(m),day(d) {} void BirthDate::display() { cout<<"birthday:"<<year<<"/"<<month<<"/"<<day<<endl; } void BirthDate::setbirthday(int y1,int m1,int d1) { year=y1; month=m1; day=d1; } Teacher::Teacher(int n,string na,char s):num(n),name(na),sex(s) {} void Teacher::display() { cout<<"num:"<<num<<endl; cout<<"name:"<<name<<endl; cout<<"sex:"<<sex<<endl; } 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; }
结果展示:
心得体会:在定义52行的时候遇到了一些小障碍,这回知道如何定义了。