第五章作业
来源:互联网 发布:php易支付 编辑:程序博客网 时间:2024/05/24 04:15
【5.18】编写一个学生和教师数据输入和显示程序,学生数据有编号、姓名、班号和成绩,教师数据有编号、姓名、职称和部门。要求将编号、姓名输入和显示设计成一个类person,并作为学生数据操作类student和教师数据操作类teacher的基类。
#include<iostream>
using namespace std;class person { //定义一个人物类public: void input() //输入数据的成员函数{ cout<<" 编号:"; cin>>number; cout<<" 姓名:"; cin>>name;} void show() //输出数据的成员函数{ cout<<" 编号:"<<number<<endl; cout<<" 姓名:"<<name<<endl;}private: int number; char name[10];};class student:public person{ //学生类,公有继承人物类 public: void input(){ person::input(); cout<<" 班号:"; cin>>depart; cout<<" 成绩:"; cin>>degree;} void show() { person::show(); cout<<" 班号:"<<depart<<endl; cout<<" 成绩:"<<degree<<endl; }private: char depart[6]; int degree;};class teacher:public person{ //教师类,公有继承人物类private: char prof[10]; char depart[10];public: void input(){ person::input();cout<<" 职称:"; cin>>prof;cout<<" 部门:";cin>>depart;} void show(){ person::show();cout<<" 职称:"<<prof<<endl;cout<<" 部门:"<<depart<<endl;}};int main() //主函数{ student s1;teacher t1;cout<<" 输入一个学生数据:\n";s1.input();cout<<" 输入一个教师数据:\n"; t1.input();cout<<" 显示一个学生数据:\n"; s1.show();cout<<" 显示一个教师数据:\n"; t1.show();system("pause");return 0;}
【5.19】设计一个虚基类base,包含姓名和年龄私有数据成员以及相关的成员函数;由它派生出领导类leader,包含植物和部门私有数据成员以及相关的成员函数;再由base派生出工程师类engieer,包含职称和专业私有数据成员以及相关的成员函数;然后再由leader和engieer,派生出主任工程师类chairman。采用相关数据进行测试。
#include<iostream> using namespace std;class base{ //基类base char *name; //姓名 int age; //年龄public: base() //无参的构造函数 {} base(char na[],int a) //带参的构造函数 { name=new char[strlen(na)+1]; strcpy(name,na);age=a; } char*getname() //成员函数{ return name;} int getage() //成员函数{ return age;}~base() //析构函数 {delete []name;}};class leader:virtual public base{ //领导类leader //声明类base是leader的虚基类char *job; //职务 char *dep; //部门public: leader() //无参构造函数 {} leader(char na[],int n,char jb[],char dp[]):base( na, n) //带参构造函数 { job=new char[strlen(jb)+1];strcpy(job,jb);dep=new char[strlen(dp)+1];strcpy(dep,dp);}char*getjob(){return job;}char*getdep(){return dep;} ~leader() //析构函数 { delete []job; delete []dep; }};class engineer:virtual public base{ //工程师类engineer //声明类base是engineer的虚基类 char *major; //专业 char *prof; //职称public:engineer() //无参构造函数{}engineer(char na[],int n,char maj[],char pf[]):base( na, n) //带参构造函数{ major=new char[strlen(maj)+1]; strcpy(major,maj); prof=new char[strlen(pf)+1]; strcpy(prof,pf);} char* getmajor(){ return major;} char* getprof(){ return prof;}~engineer() //析构函数{ delete []major; delete []prof;}}; class chairman:public leader,public engineer{ //主任工程师类chairman //chairman是leader和engineer的共同派生类,是base的间接派生类public: chairman() //无参构造函数{}; chairman(char na[],int n,char jb[],char dp[],char maj[],char pf[]):base( na, n),leader(na,n,jb,dp),engineer( na, n, maj, pf) { } //带参构造函数 void dispchairman() { cout<<getname()<<",年龄: "<<getage()<<"岁,部门: "<<getdep() <<",职务: "<<getjob()<<endl; cout<<" 职称: "<<getprof()<<",专业: "<<getmajor()<<endl; }};int main(){ chairman c1("陈",35,"处长","教务处","管理学","教授"); c1.dispchairman(); system("pause");return 0;}
0 0
- 第五章:作业
- 第五章:作业
- 第五章作业。
- 第五章实验作业
- 第五章作业
- 第五章作业
- 第五章作业
- 第五章作业
- 第五章作业part1
- 第五章作业
- 第五章作业
- 第五章作业
- 第五章作业
- 第五章作业二
- 第五章作业一
- 第五章作业
- 第五章作业
- 第五章作业2
- linux下的lcx源码,修改无错可用版
- 学习笔记四:boost智能指针:scoped_ptr和shared_ptr
- python生成uuid,并去掉中间的'-'
- 用bsu命令行为weblogic安装或者卸载补丁
- Spring的HelloWorld
- 第五章作业
- Mtk Ft6306 touch 驱动
- JAVA 学习第二天(基本数据类型)
- 扩展0x13BIOS中断
- T-SQL(一)
- 《编程导论(Java)·2.2.3 变量的声明模型》
- ios8.3 越狱之后,没有ps,top等命令
- T-SQL(二)自定义函数的控制流语句
- Acdream 1113 The Arrow(概率dp)