如何用C++实现一个功能,根据学生学号顺序存储n个学生的成绩,并处理m次查询请求,每次查询指定第i个学生的当前成绩?
时间: 2024-10-29 08:18:19 浏览: 20
数据结构课程设计基于C++的大学学生管理系统源代码
在C++中,你可以创建一个动态数组或者vector来存储学生信息,包括学号和成绩。首先,定义一个结构体或者类`Student`来表示学生:
```cpp
#include <iostream>
#include <vector>
// 定义学生类
class Student {
public:
int id; // 学号
double score; // 成绩
// 构造函数
Student(int id = 0, double score = 0) : id(id), score(score) {}
};
```
然后,创建一个vector来存储学生:
```cpp
std::vector<Student> studentList;
```
接下来,你可以添加学生到这个列表中:
```cpp
void addStudent(int id, double score) {
Student newStudent{id, score};
studentList.push_back(newStudent);
}
```
处理查询请求可以使用循环,获取指定位置的学生并返回成绩:
```cpp
double getScoreByIndex(int index) {
if (index >= 0 && index < studentList.size()) {
return studentList[index].score;
} else {
std::cout << "Invalid index!";
return -1; // 返回错误代码或默认值
}
}
```
对于多次查询,你可以编写一个函数来处理:
```cpp
void handleQueries(int m, int queries[]) {
for (int i = 0; i < m; ++i) {
int queryIndex = queries[i];
double score = getScoreByIndex(queryIndex);
if (score != -1) {
std::cout << "第 " << queryIndex+1 << " 位学生的当前成绩是: " << score << std::endl;
}
}
}
```
阅读全文