用c++语言中顺序表知识完整写一个学生名册,且名册具有查找添加删除显示退出等功能
时间: 2024-10-23 21:07:53 浏览: 31
在C++中,我们可以创建一个简单的顺序列表结构,比如使用数组作为数据容器来存储学生信息,并提供相应的增删查改功能。这里我们先定义一个`Student`类,然后创建一个名为`StudentRegistry`的类来管理学生名册。
```cpp
// 定义 Student 类
class Student {
public:
std::string name;
int id;
// 构造函数
Student(const std::string& name, int id) : name(name), id(id) {}
};
// 学生名册 StudentRegistry 类
class StudentRegistry {
private:
Student students[100]; // 假设最多有100个学生
int size = 0; // 当前学生数
public:
// 添加新学生
void addStudent(const std::string& name, int id) {
if (size < 100) {
students[size++] = Student(name, id);
std::cout << "Student added successfully.\n";
} else {
std::cerr << "Cannot add more students, max capacity reached.\n";
}
}
// 查找学生
bool findStudent(const std::string& name) const {
for (int i = 0; i < size; ++i) {
if (students[i].name == name) {
return true;
}
}
return false;
}
// 删除学生
void removeStudent(const std::string& name) {
for (int i = 0; i < size - 1; ++i) { // 避免越界
if (students[i].name == name) {
std::copy(students + i + 1, students + size, students + i); // 后移元素
--size;
std::cout << "Student removed.\n";
break;
}
}
}
// 显示所有学生
void displayStudents() const {
if (size > 0) {
std::cout << "Name\tID\n";
for (int i = 0; i < size; ++i) {
std::cout << students[i].name << "\t" << students[i].id << "\n";
}
} else {
std::cout << "No students in the registry.\n";
}
}
// 退出操作
~StudentRegistry() {
std::cout << "Leaving student registry...\n";
}
};
```
阅读全文