#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(); }