用c++写一个学生类,包括编号和姓名,有添加和读取的操作,添加信息时编号不能重复,按编号排序后读取
时间: 2024-03-01 10:52:39 浏览: 132
好的,下面是一个示例:
```c++
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
// 学生类
class Student {
public:
Student(int id, string name) {
this->id = id;
this->name = name;
}
int getId() {
return id;
}
string getName() {
return name;
}
private:
int id;
string name;
};
// 学生管理类
class StudentManager {
public:
// 添加学生信息
void addStudent(int id, string name) {
// 判断编号是否重复
for (int i = 0; i < students.size(); i++) {
if (students[i].getId() == id) {
cout << "编号重复,添加失败!" << endl;
return;
}
}
// 添加学生信息
Student student(id, name);
students.push_back(student);
cout << "添加成功!" << endl;
}
// 读取学生信息
void readStudent() {
// 按编号排序
sort(students.begin(), students.end(), [](Student& s1, Student& s2) {
return s1.getId() < s2.getId();
});
// 读取学生信息
for (int i = 0; i < students.size(); i++) {
cout << "编号:" << students[i].getId() << ",姓名:" << students[i].getName() << endl;
}
}
private:
vector<Student> students;
};
int main() {
StudentManager manager;
manager.addStudent(1001, "张三");
manager.addStudent(1002, "李四");
manager.addStudent(1003, "王五");
manager.addStudent(1002, "赵六");
manager.readStudent();
return 0;
}
```
在这个示例中,我们定义了一个名为"Student"的类,它有两个属性:编号和姓名。我们还定义了一个"StudentManager"类,用于管理学生信息。它有两个方法:添加学生信息和读取学生信息。
在添加学生信息时,我们首先判断编号是否重复,如果重复则添加失败。如果不重复,则创建一个"Student"对象,并将其添加到"students"向量中。
在读取学生信息时,我们首先按编号排序,然后遍历"students"向量并输出每个学生的编号和姓名。
你可以根据需要修改这个类的属性和方法。
阅读全文