学生成绩管理系统顺序表代码
时间: 2024-06-24 12:01:11 浏览: 17
学生成绩管理系统中,顺序表(也称为数组)是一种常见的数据结构,用于存储学生信息。以下是一个简单的顺序表(假设每个学生包含姓名、学号和成绩)的 C++ 代码示例:
```cpp
#include <iostream>
using namespace std;
// 定义学生结构体
struct Student {
string name;
int id;
double score;
};
// 顺序表的简单实现
class GradeBook {
private:
int size; // 表长
Student* students; // 学生信息数组
public:
GradeBook(int capacity) {
size = 0;
students = new Student[capacity];
}
~GradeBook() { // 虚析构函数释放内存
delete[] students;
}
// 添加学生
void addStudent(string name, int id, double score) {
if (size == capacity) {
resize(size * 2); // 当满时,扩大一倍容量
}
students[size].name = name;
students[size].id = id;
students[size].score = score;
size++;
}
// 查找学生
bool findStudent(int id, string& name, double& score) const {
for (int i = 0; i < size; i++) {
if (students[i].id == id) {
name = students[i].name;
score = students[i].score;
return true;
}
}
return false;
}
// 其他操作,如删除、修改等...
// 遍历打印所有学生
void printStudents() const {
for (int i = 0; i < size; i++) {
cout << "Student ID: " << students[i].id << ", Name: " << students[i].name
<< ", Score: " << students[i].score << endl;
}
}
private:
// 动态调整大小
void resize(int newSize) {
Student* newStudents = new Student[newSize];
for (int i = 0; i < size; i++) {
newStudents[i] = students[i];
}
delete[] students;
students = newStudents;
size = newSize;
}
};
int main() {
GradeBook gradeBook(5); // 创建一个初始容量为5的学生列表
gradeBook.addStudent("Alice", 1001, 90.0);
gradeBook.addStudent("Bob", 1002, 85.0);
// ... 添加更多学生
// 打印学生信息
gradeBook.printStudents();
return 0;
}
```