C++如何实现一个基本的人员信息类,以及如何在此基础上建立教师和学生两个类,并且如何在这些类中添加额外的数据信息和功能。
时间: 2024-02-11 22:05:14 浏览: 62
C++实现一个基本的人员信息类,可以使用C++的类来实现,类中包含编号、姓名、性别、年龄等属性,可以使用C++的访问修饰符来实现属性的私有化,同时提供公有的成员函数进行属性的设置和获取。具体实现可以参考以下代码:
```c++
class Person {
private:
int id;
string name;
string gender;
int age;
public:
Person(int id, string name, string gender, int age) {
this->id = id;
this->name = name;
this->gender = gender;
this->age = age;
}
int get_id() {
return id;
}
void set_id(int id) {
this->id = id;
}
string get_name() {
return name;
}
void set_name(string name) {
this->name = name;
}
string get_gender() {
return gender;
}
void set_gender(string gender) {
this->gender = gender;
}
int get_age() {
return age;
}
void set_age(int age) {
this->age = age;
}
};
```
在此基础上,可以派生出教师和学生两个类。教师类可以新增职称和部门等数据信息,学生类可以新增班级和学号等数据信息。具体实现可以参考以下代码:
```c++
class Teacher : public Person {
private:
string title;
string department;
public:
Teacher(int id, string name, string gender, int age, string title, string department)
: Person(id, name, gender, age) {
this->title = title;
this->department = department;
}
string get_title() {
return title;
}
void set_title(string title) {
this->title = title;
}
string get_department() {
return department;
}
void set_department(string department) {
this->department = department;
}
};
class Student : public Person {
private:
string class_name;
string student_id;
public:
Student(int id, string name, string gender, int age, string class_name, string student_id)
: Person(id, name, gender, age) {
this->class_name = class_name;
this->student_id = student_id;
}
string get_class_name() {
return class_name;
}
void set_class_name(string class_name) {
this->class_name = class_name;
}
string get_student_id() {
return student_id;
}
void set_student_id(string student_id) {
this->student_id = student_id;
}
};
```
在教师和学生类中,还可以添加额外的功能。例如,在教师类中可以添加输入并保存教师信息的功能,学生类中可以添加查看各门课程相关信息的功能。具体实现可以参考以下代码:
```c++
class Teacher : public Person {
private:
// ...
public:
// ...
void save() {
// 将教师信息保存到文件中
}
};
class Student : public Person {
private:
// ...
public:
// ...
void get_course_info(string course_name) {
// 查看指定课程的成绩和排名信息
}
};
```
最后,为了方便管理,可以将所有用户信息存储在文件中。可以使用C++的文件操作函数来实现。具体实现可以参考以下代码:
```c++
class PersonManager {
private:
string file_path;
public:
PersonManager(string file_path) {
this->file_path = file_path;
}
vector<Person> load() {
// 从文件中读取所有用户信息
}
void save(vector<Person> persons) {
// 将所有用户信息保存到文件中
}
};
```
以上是一个简单的实现思路,具体实现还需要根据实际需求进行调整。
阅读全文