建立一个顺序表表示学生成绩,输入学号,姓名,数学和英语成绩,直到输入学号为0结束
时间: 2024-09-18 17:02:04 浏览: 49
定义一个包含学生信息(学号,姓名,成绩)的顺序表
为了建立一个顺序表(也称为数组或动态数组)来表示学生的成绩,我们可以创建一个结构体(struct)来存储学号、姓名、数学成绩和英语成绩。然后定义一个动态大小的数组,用户可以通过循环输入数据,直到输入学号为0停止。
首先,我们定义一个学生记录的结构体:
```cpp
#include <iostream>
// 定义学生结构体
struct Student {
int student_id;
std::string name;
float math_score;
float english_score;
};
```
接着,我们需要一个动态数组来存储这些学生记录,并设置一个标志来跟踪是否已到达末尾:
```cpp
std::vector<Student> students; // 使用 vector 代替固定大小的数组
bool inputFinished = false;
```
现在,我们编写一个函数来处理用户的输入:
```cpp
void inputStudentData() {
while (!inputFinished) {
Student newStudent;
std::cout << "请输入学号(0表示结束):";
std::cin >> newStudent.student_id;
if (newStudent.student_id == 0) {
inputFinished = true;
} else {
std::cout << "请输入姓名:";
std::cin >> newStudent.name;
std::cout << "请输入数学成绩:";
std::cin >> newStudent.math_score;
std::cout << "请输入英语成绩:";
std::cin >> newStudent.english_score;
students.push_back(newStudent);
}
}
}
```
最后,在程序主入口处调用这个函数:
```cpp
int main() {
inputStudentData();
for (const auto& student : students) {
std::cout << "学号: " << student.student_id << ", 姓名: " << student.name
<< ", 数学成绩: " << student.math_score << ", 英语成绩: "
<< student.english_score << "\n";
}
return 0;
}
```
这样就完成了顺序列表的构建,并根据用户的输入添加了学生信息。当用户输入0时,输入过程就会停止。
阅读全文