目录
公有继承 —— 学生信息类
保护继承 —— 学生信息类
研究生信息类
狼人类
公有继承 —— 学生信息类
编程要求
在右侧编辑器中的Begin-End之间补充代码,设计 Student 类,并实现 Set 和 PrintSID 函数,具体要求如下:
-
Student 类公有成员函数:void PrintSID(),函数输出成员变量 SID 的值,输出格式为:学号:SID。
-
普通函数:Set(int sid,string name,Student *ptr),它用前两个参数设置 ptr 对象的 SID 和 Name(继承 People 拥有的属性)属性值。
现在已有一个基类 People,它有一个公有成员变量姓名 Name,一个公有成员函数 PrintName(函数的功能是打印出 Name 的值)。
测试说明
平台会对你编写的代码进行测试,比对你输出的数值与实际正确数值,只有所有数据全部计算正确才能通过测试:
测试输入:1 厉宏富
预期输出:
- 学号:1
- 姓名:厉宏富
#include "people.h" // People 类定义在这里面 #include#include using namespace std; //公有继承 People class Student:public People //class Student { public: int SID; void PrintSID(); }; void Student::PrintSID() { //输出 SID cout << "学号:" << SID << endl; } void Set(int sid,string name,Student *ptr) { //给 ptr 对象的两个属性赋值 ptr->SID=sid; ptr->Name=name; }
保护继承 —— 学生信息类
在右侧编辑器中的Begin-End之间补充代码,采用保护继承设计学生信息类,并实现 Set 和 PrintSID 函数,具体要求如下:
-
Student 类公有成员函数:void PrintSID(),函数输出成员变量 SID 的值,输出格式为:学号:SID。
-
普通函数:Set(int sid,string name,Student *ptr),它用前两个参数设置 ptr 对象的 SID 和 Name(继承 People 拥有的属性)属性值。
现在已有一个基类 People,它有一个公有成员变量姓名 Name,一个公有成员函数 PrintName(函数的功能是打印出 Name 的值)。
平台会对你编写的代码进行测试,比对你输出的数值与实际正确数值,只有所有数据全部计算正确才能通过测试:
测试输入:1 严宏富
预期输出:
- 学号:1
- 姓名:严宏富
#include "people.h" // People 类定义在这里面 #include
#include using namespace std; //保护继承 People class Student : protected People { public: int SID; void PrintSID(); //添加一个 Set 函数来设置父类的 Name 成员 friend void Set(int sid,string name,Student *ptr); }; void Student::PrintSID() { //输出学号 SID cout << "学号:" << SID << endl; } void Set(int sid,string name,Student *ptr) { //给 ptr 对象的两个属性赋值 ptr->SID=sid; ptr->Name=name; }
研究生信息类
在右侧编辑器中的Begin-End之间补充代码,设计学生信息类( Student )和设计研究生信息类( Graduate ),Graduate 类公有继承 Student 类,而 Student 类私有继承 People 类,并实现他们的成员函数以及一个普通函数,具体要求如下:
- Graduate 类
增加一个成员变量研究方向:int ResearchID,以及一个成员函数:void PrintResearchID(),函数用来输出 ResearchID 的值,输出格式为:研究方向:ResearchID。
- Student 类
补充有成员函数:void PrintSID(),函数输出成员变量 SID 的值,输出格式为:学号:SID。
- 普通函数:Set(int sid,int rid,string name,Graduate *ptr)函数,它用前三个参数设置 ptr 所指对象的三个成员。
People 基类,它有一个公有成员变量姓名 Name,一个公有成员函数 PrintName(函数的功能是打印出 Name 的值),
测试说明
平台会对你编写的代码进行测试,比对你输出的数值与实际正确数值,只有所有数据全部计算正确才能通过测试:
测试输入:1 304 厉宏富
预期输出:
- 学号:1
- 姓名:厉宏富
- 研究方向:304
#include "people.h" //People类定义在这里面 #include
#include using namespace std; //私有继承 People 类 class Student:private People { public: int SID; void PrintSID(); //添加一个 Set 函数来设置父类的 Name 成员 void SetName(string name){Name=name;}; }; void Student::PrintSID() { //输出学号 SID cout << "学号:" << SID << endl; } // 公有继承 Student 类 class Graduate:public Student { public: int ResearchID; void PrintResearchID(); //添加一个 Set 函数来设置父类的 SID 成员 friend void Set(string name,int sid,int rid,Graduate *ptr); void set(string name){SetName(name);}; //添加一个 Set 函数来调用父类的 SetName 函数 }; void Graduate::PrintResearchID() { //输出研究方向 ResearchID cout<<"研究方向:"< set(name); ptr->SID=sid; ptr->ResearchID=rid; }
狼人类
在右侧编辑器中的Begin-End之间补充代码,实现三个类的设计,其中成员变量和成员函数的访问性可自行设置,具体要求如下:
-
狼类( Wolf )
-
成员变量姓名:string Name
-
成员变量爪子锋利度:int Shape
-
成员函数:void PrintState(),按照姓名 爪子锋利度格式输出两个成员变量的值。
-
-
人类( Human )
-
成员变量姓名:string Name
-
成员变量智力:int Intell
-
成员函数:void PrintState(),按照姓名 智力格式输出两个成员变量的值。
-
-
狼人类( Werewolf ),它继承狼类和人类
-
成员函数:void SetName(string name),函数用来设置两个基类的成员变量姓名。
-
成员函数:void SetState(int shape,int intell),函数用 shape 、intell 两个参数分别设置狼类的爪子锋利度和人类的智力。
-
成员函数:void PrintAllState(),函数按照狼类,人类的顺序调用两个基类的 PrintState 函数,输出他们的成员变量值。
-
测试说明
平台会对你编写的代码进行测试,比对你输出的数值与实际正确数值,只有所有数据全部计算正确才能通过测试:
测试输入:10 0 狠人
预期输出:
- 姓名:狠人,爪子锋利度为:10
- 姓名:狠人,智力为:0
#include#include using namespace std; class Wolf { //狼类成员的声明 public: string Name; int Shape; void PrintState(); }; //狼类成员的定义 void Wolf::PrintState() { cout<< "姓名:"<



