用类的组合技术,设计一个基本信息类、一个学生类、一个教师类。基本信息类包括姓名、性别、手机号、班级;学生类包括姓名、性别、手机号、班级、数学、语文和英语等成绩;教师类包括姓名、性别、手机号、班级、专业
时间: 2023-04-25 15:01:25 浏览: 151
基本信息类包括姓名、性别、手机号、班级等基本信息属性,可以作为其他类的基础类。学生类和教师类都可以继承基本信息类的属性,同时也可以添加自己的属性。
学生类包括姓名、性别、手机号、班级、数学、语文和英语等成绩属性,可以通过继承基本信息类的属性,来实现学生的基本信息的存储和管理。同时,学生类还可以添加其他属性,如学号、年龄等。
教师类包括姓名、性别、手机号、班级、专业等属性,同样可以通过继承基本信息类的属性,来实现教师的基本信息的存储和管理。教师类还可以添加其他属性,如教龄、职称等。
通过类的组合技术,可以实现基本信息类、学生类、教师类的属性的存储和管理,同时也可以方便地扩展其他类的属性。
相关问题
C++用类的组合技术,设计一个基本信息类、一个学生类、一个教师类。基本信息类包括姓名、性别、手机号、班级;学生类包括姓名、性别、手机号、班级、数学、语文和英语等成绩;教师类包括姓名、性别、手机号、班级、专业、教龄等。以上三个类必须包含构造函数,其他成员函数自行设计。主函数中,分别生成一个学生类和教师类对象,并调用成员函数
好的,以下是C++代码示例:
```cpp
#include<iostream>
#include<string>
using namespace std;
class BasicInfo {
public:
BasicInfo(string name, string gender, string phone_num, string class_num) {
this->name = name;
this->gender = gender;
this->phone_num = phone_num;
this->class_num = class_num;
}
string name;
string gender;
string phone_num;
string class_num;
};
class Student {
public:
Student(string name, string gender, string phone_num, string class_num, int math, int chinese, int english) {
this->basic_info = BasicInfo(name, gender, phone_num, class_num);
this->math = math;
this->chinese = chinese;
this->english = english;
}
BasicInfo basic_info;
int math;
int chinese;
int english;
int get_total_score() {
return math + chinese + english;
}
};
class Teacher {
public:
Teacher(string name, string gender, string phone_num, string class_num, string major, int teaching_years) {
this->basic_info = BasicInfo(name, gender, phone_num, class_num);
this->major = major;
this->teaching_years = teaching_years;
}
BasicInfo basic_info;
string major;
int teaching_years;
string get_teaching_experience() {
return basic_info.name + " has " + to_string(teaching_years) + " years of teaching experience in " + major + ".";
}
};
int main() {
// 创建一个学生对象
Student student("小明", "男", "123456789", "一班", 90, 85, 92);
cout << student.basic_info.name << "的总成绩是" << student.get_total_score() << "分。" << endl;
// 创建一个教师对象
Teacher teacher("张老师", "女", "987654321", "二班", "英语", 10);
cout << teacher.get_teaching_experience() << endl;
return 0;
}
```
输出结果如下:
```
小明的总成绩是267分。
张老师 has 10 years of teaching experience in 英语.
```
在上述代码中,我们使用了类的组合技术,将基本信息类作为学生类和教师类的成员变量,这样可以避免代码冗余并提高代码复用性。同时,我们也为每个类设计了构造函数,并添加了一些自定义的成员函数,以满足不同的需求。在主函数中,我们分别创建了一个学生对象和一个教师对象,并调用了它们的成员函数。
用C++编写程序用类的组合技术,设计一个基本信息类、一个学生类、一个教师类。基本信息类包括姓名、性别、手机号、班级;学生类包括姓名、性别、手机号、班级、数学、语文和英语等成绩;教师类包括姓名、性别、手机号、班级、专业、教龄等。以上三个类必须包含构造函数,其他成员函数自行设计。主函数中,分别生成一个学生类和教师类对象,并调用成员函数。
好的,下面是用 C++ 编写的基本信息类、学生类和教师类的代码实现:
```c++
#include <iostream>
#include <string>
using namespace std;
class BasicInfo {
public:
BasicInfo(string n, string g, string p, string c) {
name = n;
gender = g;
phone_number = p;
clazz = c;
}
string name;
string gender;
string phone_number;
string clazz;
};
class Student {
public:
Student(string n, string g, string p, string c, int math, int chinese, int english) {
basic_info = BasicInfo(n, g, p, c);
math_score = math;
chinese_score = chinese;
english_score = english;
}
BasicInfo basic_info;
int math_score;
int chinese_score;
int english_score;
int get_total_score() {
return math_score + chinese_score + english_score;
}
};
class Teacher {
public:
Teacher(string n, string g, string p, string c, string m, int y) {
basic_info = BasicInfo(n, g, p, c);
major = m;
teaching_years = y;
}
BasicInfo basic_info;
string major;
int teaching_years;
int get_teaching_age() {
return teaching_years;
}
};
int main() {
Student student1("张三", "男", "13888888888", "高一一班", 90, 80, 85);
cout << student1.basic_info.name << endl;
cout << student1.get_total_score() << endl;
Teacher teacher1("李老师", "女", "13999999999", "高一一班", "数学", 5);
cout << teacher1.basic_info.name << endl;
cout << teacher1.get_teaching_age() << endl;
return 0;
}
```
在主函数中,我们生成了一个学生类和一个教师类的对象,并调用了它们的成员函数,输出它们的信息。
输出结果为:
```
张三
255
李老师
5
```
我们可以看到,基本信息类、学生类和教师类都已经成功地定义了,并且我们能够通过成员函数获取它们的信息。
阅读全文