Problem Description
一个教学系统至少有学生和教师两种类型的人员,假设教师的数据有教师编号、姓名、年龄、性别、职称和系别,学生的数据有学号、姓名、年龄、性别、班级和语文、数学、英语三门课程的成绩。现编程完成学生和教师档案数据的输入和显示。要求如下:
设计三个类Person、Teacher、Student,Person是Teacher和Student的基类,具有此二类共有的数据成员姓名、年龄、性别,并具有输入和显示这些数据的成员函数;Teacher类继承了Person类的功能,并增加对教师编号、职称和系别等数据成员进行输入和显示的成员函数。Student类按同样的方法设计。
根据题意完成下面的程序:
#include <iostream>
using namespace std;
#include <string>
class Person{
private:
string name;
int age;
string sex;
public:
Person(string ="",int =0,string ="");
void inputname(){cin>>name;}
void printname(){cout<<name<<endl;}
void inputage(){cin>>age;}
void printage(){cout<<age<<endl;}
void inputsex(){cin>>sex;}
void printsex(){cout<<sex<<endl;}
};
Person::Person(string Name,int Age,string Sex){name=Name;age=Age;sex=Sex;}
//你的代码将被嵌入在这里
int main(){
Teacher t1,t2("张华",33,"男","T001","讲师","计算机系");
Student s1,s2("李丽",19,"女","S001","0309201",90,92,98);
t1.inputname();
t1.inputage();
s1.inputChinese();
s1.inputname();
t1.printname();
t1.printage();
s1.printname();
s1.printage();
t2.printname();
t2.printage();
s2.printname();
s2.printage();
return 0;
}Sample Input
John 40 90 Mary
Sample Output
John 40 Mary 0 张华 33 李丽 19
class Teacher : public Person
{
private:
string no;
string title;
string dept;
public:
Teacher(string name, int age, string sex, string no, string title, string dept) :Person(name, age, sex), no(no), title(title), dept(dept) {}
Teacher(){}
};
class Student : public Person
{
private:
string no;
string num;
int china;
int math;
int english;
public:
Student(){}
Student(string name, int age, string sex, string no, string num, int china, int math, int english):Person(name, age, sex), no(no), num(num), china(china), math(math), english(english){}
void inputChinese()
{
cin >> china;
}
};