某小学某班级共有30名学生,共有5门课程,分别是英语、语文、数学、历史和音乐。请定义结构体存储学生的姓名、性别、学号和5门课程的期末考试成绩。然后根据学号查找某学生,并将其5门课程成绩输入,假设成绩分别是86分、74分、92分、77分、82分。
时间: 2024-09-07 09:01:24 浏览: 28
要定义一个结构体来存储学生的这些信息,我们可以创建一个名为`Student`的结构体,其中包含姓名(name)、性别(gender)、学号(studentId)以及一个数组来存储五门课的成绩。由于数组长度固定为5,我们可以在结构体中定义一个`score`数组。
```cpp
#include <string>
// 定义结构体
struct Student {
std::string name;
char gender; // 'M' 或 'F'
int studentId;
int scores[5]; // 五门课程的成绩
};
```
接下来,我们需要一个方法来根据学号查找并设置学生的成绩。这里我们可以编写一个函数,接受学号和成绩数组作为参数:
```cpp
void setScores(Student& student, int studentId, const int* scores) {
if (student.studentId == studentId) {
for (int i = 0; i < 5; i++) {
student.scores[i] = scores[i];
}
} else {
std::cout << "Student not found.\n";
}
}
```
为了使用这个函数,我们可以创建一个`Student`实例,然后找到指定学号的学生并设置其成绩:
```cpp
int main() {
// 创建一个学生实例
Student student;
student.name = "张三";
student.gender = 'M'; // 假设男性
student.studentId = 1;
// 假设成绩数组
const int examScores[] = {86, 74, 92, 77, 82};
// 设置学号为1的学生的成绩
setScores(student, 1, examScores);
// 打印学生信息(包括成绩)
std::cout << "Name: " << student.name << "\n";
std::cout << "Gender: " << (student.gender == 'M' ? "Male" : "Female") << "\n";
std::cout << "Student ID: " << student.studentId << "\n";
std::cout << "Scores: ";
for (int score : student.scores) {
std::cout << score << " ";
}
std::cout << "\n";
return 0;
}
```
阅读全文