C++-课后习题-学生类

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

原文地址:https://www.cnblogs.com/loglian/p/12880355.html