#include <iostream>
#include <string>
using namespace std;
class Person
{
private: //改为protected更好
string Num,Name,Addr,Tel,Email;
char Sex;
public:
Person(string num,string nam,char s,string add,string tel,string ema)
{Num=num; Name=nam; Addr=add; Tel=tel; Email=ema; Sex=s;}
void SetName(string nam)
{Name=nam;}
void SetNumber(string num)
{Num=num;}
void SetSex(char sex)
{Sex=sex;}
void SetAddr(string add)
{Addr=add;}
void SetTel(string tel)
{Tel=tel;}
void SetEmail(string em)
{Email=em;}
void ShowPersonData()
{cout<<"编号: "<<Num<<endl;
cout<<"姓名: "<<Name<<endl;
cout<<"性别: "<<Sex<<endl;
cout<<"地址: "<<Addr<<endl;
cout<<"电话: "<<Tel<<endl;
cout<<"邮箱: "<<Email<<endl;}
};
class Student:public Person
{
private:
int Math,Physics,Eng,Prog;
public:
//Student():Person(){};
Student(string num,string nam,char sex,string add,string tel,string ema,int math=60,int physics=60,int eng=60,int prog=60):Person(num,nam,sex,add,tel,ema)
{Math=math;Physics=physics;Eng=eng;Prog=prog;}
void SetScore(char tag,int score)
{
if(tag=='m') Math=score;
else if(tag=='p') Physics=score;
else if(tag=='e') Eng=score;
else if(tag=='c') Prog=score;
}
void ShowStudentData()
{
ShowPersonData();
cout<<"数学成绩: "<<Math<<endl;
cout<<"物理成绩: "<<Physics<<endl;
cout<<"英语成绩: "<<Eng<<endl;
cout<<"程序设计成绩: "<<Prog<<endl;
}
};
class Teacher:public Person
{
private:
string Headship,Post;
int Salary;
public:
Teacher(string num,string nam,char sex,string add,string tel,string ema,string headship,string post,int sa):Person(num,nam,sex,add,tel,ema)
{Headship=headship;Post=post;Salary=sa;}
void SetHeadship(string x)
{Headship=x;}
void SetPost(string p)
{Post=p;}
void SetSalary(int s)
{Salary=s;}
void ShowTeacherData()
{
ShowPersonData();
cout<<"职务: "<<Headship<<endl;
cout<<"职称: "<<Post<<endl;
cout<<"工资: "<<Salary<<endl;
}
};
int main()
{
Student A("1001","Lian",'F',"Fujian","1234567890","83710XXXX@qq.com",90,90,90,90);
A.ShowStudentData();
cout<<endl;
A.SetName("Ma");
A.SetNumber("1002");
A.SetSex('F');
A.SetTel("139XXXXXXXXX");
A.SetAddr("Nanjing");
A.SetEmail("XXXXXXXXX@163.com");
A.SetScore('M',80);
A.ShowStudentData();
cout<<endl;
Teacher a("0001","Chen",'M',"Guangzhou","123450000","14234XXXX@qq.com","数学","主任",10000);
a.ShowTeacherData();
cout<<endl;
a.SetHeadship("助理");
a.SetPost("经济");
a.SetSalary(5000);
a.ShowTeacherData();
}