【类和对象】 继承和派生——定义Person类并派生出Student和Teacher类

题目:
【类和对象】 继承和派生——定义Person类并派生出Student和Teacher类_第1张图片

#include
#include
#include
using namespace std;

//定义人员类 
class Person
{
     
	protected:
		string Id;
		string Name;
		char Sex;
		string Address;
		string Tel;
		string Email;
	
	//设置成员信息 
	public:
		void SetId(string id) {
     Id=id;}
		void SetName(string name) {
     Name=name;}
		void SetSex(char sex) {
     Sex=sex;}
		void SetAddress(string address) {
     Address=address;}
		void SetTel(string tel) {
     Tel=tel;}
		void SetEmail(string email) {
     Email=email;}
		
		void Show_All()
		{
     
			cout<<Id<<setw(15)<<Name;
			if(Sex=='m')  cout<<setw(15)<<"男";              //用字符型量实现性别 
			else if(Sex=='f')  cout<<setw(15)<<"女";
			cout<<setw(15)<<Address<<setw(15)<<Tel<<setw(15)<<Email;
		}
};

//定义学生类 
class Student:public Person
{
     
	private:
		int Math;
		int Physics;
		int Eng;
		int Prog;
		
	//增加成员函数 
	public:
		void SetScore(char tag, int score)
		{
     
			switch(tag)
			{
     
				case 'm': Math=score;break;
				case 'p': Physics=score;break;
				case 'e': Eng=score;break;
				case 'c': Prog=score;break;
				default: break;
			}
		}
		
		void Show_Infor()
		{
     
			cout<<"学号"<<setw(15)<<"姓名";
			cout<<setw(15)<<"性别"<<setw(15)<<"家庭住址";
			cout<<setw(15)<<"联系电话"<<setw(15)<<"电子邮箱";
			cout<<setw(15)<<"数学成绩"<<setw(15)<<"物理成绩";
			cout<<setw(15)<<"外语成绩"<<setw(15)<<"程序设计成绩"<<endl;
		}
		
		void Show_Student()
		{
     
			Show_All();                  //调用基类成员函数 
			cout<<setw(15)<<Math<<setw(15)<<Physics;
			cout<<setw(15)<<Eng<<setw(15)<<Prog<<endl;
		}
};

//定义教师类
class Teacher:public Person
{
     
	private:
		string Headship;
		string Post;
		int Salary;
		
	//增加成员函数 
	public:
		void SetHeadship(string headship) {
     Headship=headship;}
		void SetPost(string post) {
     Post=post;}
		void SetSalary(int salary) {
     Salary=salary;}
		
		void Show_Infor()
		{
     
			cout<<"工号"<<setw(15)<<"姓名";
			cout<<setw(15)<<"性别"<<setw(15)<<"家庭住址";
			cout<<setw(15)<<"联系电话"<<setw(15)<<"电子邮箱";
			cout<<setw(15)<<"职务"<<setw(15)<<"职称";
			cout<<setw(15)<<"工资"<<endl;
		}
		
		void Show_Teacher()
		{
     
			Show_All();                //调用基类成员函数 
			cout<<setw(15)<<Headship<<setw(15)<<Post;
			cout<<setw(15)<<Salary<<endl;
		}
};

//测试所有成员函数 
int main()
{
     
	Student s;
	s.SetId("s001");
	s.SetName("小明");
	s.SetSex('m');
	s.SetAddress("南苑13栋");
	s.SetTel("12345");
	s.SetEmail("[email protected]");
	s.SetScore('m',85);
	s.SetScore('p',93);
	s.SetScore('e',77);
	s.SetScore('c',98);
	s.Show_Infor();
	s.Show_Student();
	cout<<endl;
	
	Teacher t;
	t.SetId("t002");
	t.SetName("张丽");
	t.SetSex('f');
	t.SetAddress("师苑4栋");
	t.SetTel("45678");
	t.SetEmail("[email protected]");
	t.SetHeadship("高数老师");
	t.SetPost("教授");
	t.SetSalary(10001);
	t.Show_Infor();
	t.Show_Teacher();
	
	return 0;
}

你可能感兴趣的:(C++,#,程序设计基础)