ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

2021-06-01

2021-06-01 20:31:23  阅读:186  来源: 互联网

标签:01 06 cout xm xb 成员 2021 数据 void


 类的继承与派生
设计以下类和函数
1.人员基类Person。其成员包括:
数据成员:姓名、性别、年龄
成员函数:SetPerson,设置人员数据函数;
DisplayPerson,显示人员数据函数。
2.派生类1,Teacher, 派生自Person。新增成员包括:
数据成员:职称、教研室、所授课程
成员函数:SetTeacher,设置数据
DisplayTeacher,显示数据
3.派生类2,Student,派生自Person。新增成员包括:
数据成员:专业、班级、类别
成员函数:SetStudent,设置数据
DisplayStudent, 显示数据
4.派生类3,PostDoctor,多重继承于Student和Teacher。新增成员包括:
数据成员:无
成员函数:SetPostDoctor,设置数据
DisplayPostDoctor,显示数据
5.主函数:输入并输出一个教师、一个本科生、一个博士后数据。
要求每个类都要定义有参数的构造函数,注意虚基类的使用。 

 

#include <iostream>
#include <string>
using namespace std;
class Person
{
public:
	Person(string n, string x, int a)
	{
		xm = n;
		xb = x;
		nl = a;
	}
	void SetPerson()
	{
		cout << "---------------请输入基本信息----------------" << endl;
		cout << "姓名:";
		cin >>   xm;
		cout << "性别:";
		cin >>   xb;
		cout << "年龄:";
		cin >>   nl;
	}
	void DisplayPerson()
	{
		cout << "姓名:" << xm << endl;
		cout << "性别:" << xb << endl;
		cout << "年龄:" << nl << endl;
	}
protected:
	string xm;//姓名
	string xb;//性别
	int nl;//年龄
};
class Teacher :virtual  public Person
{
public:
	Teacher(string n, string x, int a, string t, string j, string s) :Person(n, x, a)
	{
		zc = t;
		jys = j;
		sskc = s;
	}
	void SetTeacher()
	{
		cout << "---------------请输入教师信息----------------" << endl;
		cout << "姓名:";
		cin >>   xm;
		cout << "性别:";
		cin >>   xb;
		cout << "年龄:";
		cin >>   nl;
		cout << "职称:";
		cin >>   zc;
		cout << "教研室:";
		cin >>   jys;
		cout << "所授课程:";
		cin >>   sskc;
	}
	void DisplayTeacher()
	{
		cout << "==========教师基本信息为:============" << endl;
		cout << "姓名:" << xm << endl;
		cout << "性别:" << xb << endl;
		cout << "年龄:" << nl << endl;
		cout << "职称:" << zc << endl;
		cout << "教研室:" << jys << endl;
		cout << "所授课程:" << sskc << endl;
	}
protected:
	string zc;//职称
	string jys;//教研室
	string sskc;//所授课程
};
class Student :virtual public Person
{
public:
	Student(string n, string x, int a, string z, string b, string l) :Person(n, x, a)
	{
		zy = z;
		bj = b;
		lb = l;
	}
	void Setstudent()
	{
		cout << "---------------请输入学生信息----------------" << endl;
		cout << "姓名:";
		cin >>   xm;
		cout << "性别:";
		cin >>   xb;
		cout << "年龄:";
		cin >>   nl;
		cout << "专业:";
		cin >>   zy;
		cout << "班级:";
		cin >>   bj;
		cout << "类别:";
		cin >>   lb;
	}
	void DisplayStudent()
	{
		cout << "==========学生基本信息为:============" << endl;
		cout << "姓名:" << xm << endl;
		cout << "性别:" << xb << endl;
		cout << "年龄:" << nl << endl;
		cout << "专业:" << zy << endl;
		cout << "班级:" << bj << endl;
		cout << "类别:" << lb << endl;
	}
protected:
	string zy;//专业
	string bj;//班级
	string lb;//类别
};
class PostDoctor :public Student, public Teacher
{
public:
	PostDoctor(string n, string x, int a, string z, string b, string l, string t, string j, string s) :
		Person(n, x, a), Student(n, x, a, z, b, l), Teacher(n, x, a, t, j, s) {}
	void SetPostDoctor()
	{
		cout << "---------------请输入博士后信息----------------" << endl;
		cout << "姓名:";
		cin >>   xm;
		cout << "性别:";
		cin >>   xb;
		cout << "年龄:";
		cin >>   nl;
		cout << "专业:";
		cin >>   zy;
		cout << "班级:";
		cin >>   bj;
		cout << "类别:";
		cin >>   lb;
		cout << "职称:";
		cin >>   zc;
		cout << "教研室:";
		cin >>   jys;
		cout << "所授课程:";
		cin >>   sskc;
	}
	void DisplayPostDoctor()
	{
		cout << "==========博士后基本信息为:============" << endl;
		cout << "姓名:" << xm << endl;
		cout << "性别:" << xb << endl;
		cout << "年龄:" << nl << endl;
		cout << "专业:" << zy << endl;
		cout << "班级:" << bj << endl;
		cout << "类别:" << lb << endl;
		cout << "职称:" << zc << endl;
		cout << "教研室:" << jys << endl;
		cout << "所授课程:" << sskc << endl;
	}
};
int main()
{
	Teacher teacher("张三", "女", 48, "主任", "152", "数据系统概论");
	Student student("李四", "男", 20, "软件工程", "2005213", "本科生");
	PostDoctor postdoctor("王二狗", "男", 30, "计算机", "1949032", "博士后", "教师", "1001", "工程制图");
	/*
	teacher.DisplayTeacher();
	cout << "\n" << endl;
	student.DisplayStudent();
	cout << "\n" << endl;
	postdoctor.DisplayPostDoctor();
	*/
	teacher.SetTeacher();
	teacher.DisplayTeacher();
	student.Setstudent();
	student.DisplayStudent();
	postdoctor.SetPostDoctor();
	postdoctor.DisplayPostDoctor();
	return 0;
}

 

标签:01,06,cout,xm,xb,成员,2021,数据,void
来源: https://blog.csdn.net/pkqbhfd/article/details/117450980

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有