编写一个学生和教师数据输入和显示程序,学生数据有编号、姓名、班级和成绩,教师数据有编号、姓名、职称和部门。要求将编号、姓名输入和显示设计成一个类person,并作为学生类student和教师类teacher的基类。
类图如下:
代码如下:
头文件(ss.h)代码如下:
#include<string>
class person { //父类
private:
char name[10];//姓名
int numble; //编号
public:
void print();//输出
const char *getname();//得到姓名
int getnumble();//得到编号
person(const char* na, int num);//构造函数
};
class student :public person { //person的子类
private:
char cla[20];//班级
double grade;//成绩
public:
student(const char* na, int num, const char* c, double g);
void print();//输出
};
class teacher :public person { //person的子类
private:
char pro[20];//职称
char section[10];//部门
public:
teacher(const char* na, int num, const char* pr, const char* sec);
void print();//输出
};
main文件代码如下:
#include "ss.h"
#include<iostream>
#include<string>
using namespace std;
const char* person::getname() {
return name;
}
int person::getnumble() {
return numble;
}
person::person(const char* na, int num)
{
strcpy_s(name, na);
numble = num;
}
void person::print() {
cout << endl;
cout << "姓名:" << getname()<< endl;
cout << "编号:" << getnumble()<< endl;
}
student::student(const char* na, int num, const char* c, double g) :person(na, num) {
strcpy_s(cla, c);
grade = g;
}
void student::print() {
person::print();
cout << "班级:" << cla << endl;
cout << "成绩:" << grade << endl;
}
teacher::teacher(const char* na, int num, const char* pr, const char* sec) :person(na, num) {
strcpy_s(pro, pr);
strcpy_s(section, sec);
}
void teacher::print()
{
person::print();
cout << "职称:" << pro << endl;
cout << "部门:" << section << endl;
}
void main()
{
person p("张三",101);
p.print();
student st("李四", 102, "七年级一班", 88.0);
st.print();
teacher t("王五", 103, "高数老师", "基础部");
t.print();
}
实验运行截图如下:
代码仅供参考