我是靠谱客的博主 温柔刺猬,最近开发中收集的这篇文章主要介绍C++第五章 习题,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

P162    5.18:编辑一个学生和教师数据输入和显示程序,学生数据要编号、姓名、班号和成绩,教师数据有编号、姓名、职称和部门。要求将编号、姓名输入和显示设计成一个类person,并作为学生数据操作类student和教师数据操作类teacher的基类。

#include<iostream>
#include<string>
using namespace std;
class person{
public:
person(string na,int num)
{ name=na;
number=num;}
protected:
string name;
int number;};
class student:virtual public person{
public:
student(string na,int num,int cn,int sc):person(na,num)
{ clanum=cn;
score=sc;}
void sshow()
{ cout<<"姓名:"<<name<<endl;
cout<<"编号:"<<number<<endl;
cout<<"班号:"<<clanum<<endl;
cout<<"成绩:"<<score<<endl;}
protected:
int clanum;
int score;}
;
class teacher:virtual public person{
public:
teacher(string na,int num,string pos,string dep):person(na,num)
{
position=pos;
dept=dep;
}
void tshow()
{
cout<<"姓名:"<<name<<endl;
cout<<"编号:"<<number<<endl;
cout<<"职位:"<<position<<endl;
cout<<"部门:"<<dept<<endl;}
protected:
string position;
string dept;}
;
int main()
{ student stu1("王二宝",118,1,100);
stu1.sshow();
teacher tea1("王大宝",921,"教授","信息");
tea1.tshow();
return 0;}



P162  5.19:设计一个虚基类base,包括姓名和年龄私有数据成员以及相关的成员函数;由他派生出领导类leader,包含职务和部门私有数据成员以及相关的成员函数;再由base派生出工程师类engieer,包括职称和专业私有数据成员以及相关的成员函数;然后由leader和engineer,派生出主任工程师类chairman。采用相关数据进行测试。

#include<iostream>
#include<string>
using namespace std;
class base{
public:
base(string na,int y)
{ name=na;
year=y; }
void bshow()
{ cout<<"姓名:"<<name<<endl;
cout<<"年龄:"<<year<<endl;}
private:
string name;
int year;
};
class leader: virtual public base {
public:
leader(string na,int y,string dep ,string j):base(na,y)
{ dept=dep;
job=j;}
void lshow()
{ bshow();
cout<<"部门:"<<dept<<endl;
cout<<"职务:"<<job<<endl;}
private:
string dept;
string job;}
;
class engieer : virtual public base{
public:
engieer(string na,int y,string pos,string ma):base(na,y)
{
position=pos;
major=ma;
};
void eshow()
{
bshow();
cout<<"职称:"<<position<<endl;
cout<<"专业:"<<major<<endl;}
private:
string position;
string major;}
;
class chairman: virtual public leader, virtual public engieer
{
public:
chairman(string na,int y,string dep ,string j,string pos,string ma):base(na,y),leader(na,y,dep,j),engieer(na,y,pos,ma)
{};
void cshow()
{ lshow();
eshow();
}
};
int main()
{
leader
le1("王大宝",25,"宣传部","部长");
engieer en1("王二宝",24,"领导","技术开发");
chairman ch1("王凯源",23,"宣传部","部长","领导","技术开发");
le1.lshow();
en1.eshow();
ch1.cshow();
return 0;
}


最后

以上就是温柔刺猬为你收集整理的C++第五章 习题的全部内容,希望文章能够帮你解决C++第五章 习题所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(74)

评论列表共有 0 条评论

立即
投稿
返回
顶部