用结构体struct变量,设计一个学生期末成绩查询程序。 要求: 1.输入学生姓名或者学号查找对应期末成绩。 2.按照分数高低将所有同学成绩依次输出。 3.应有简易菜单提示
时间: 2023-02-23 20:34:41 浏览: 46
您好,这是一份关于如何使用结构体`struct`变量设计学生期末成绩查询程序的代码。
首先,定义一个结构体`Student`,用于存储学生的姓名、学号和期末成绩。
```
struct Student {
string name;
string id;
int score;
};
```
接下来,读入所有学生的信息,并存入一个`Student`数组中。
```
void input_data(Student students[], int n) {
for (int i = 0; i < n; i++) {
cout << "请输入第" << i + 1 << "个学生的姓名、学号和期末成绩:" << endl;
cin >> students[i].name >> students[i].id >> students[i].score;
}
}
```
实现输入学生姓名或学号查询成绩的功能:
```
void search_by_name_or_id(Student students[], int n) {
cout << "请输入要查询的学生姓名或学号:" << endl;
string query;
cin >> query;
for (int i = 0; i < n; i++) {
if (students[i].name == query || students[i].id == query) {
cout << "姓名:" << students[i].name << ",学号:" << students[i].id << ",期末成绩:" << students[i].score << endl;
return;
}
}
cout << "未找到该学生的信息" << endl;
}
```
实现按照分数高低输出所有学生成绩的功能:
```
void sort_and_output(Student students[], int n) {
sort(students, students + n, [](const Student &s1, const Student &s2) {
return s1.score > s2.score;
});
cout << "姓名\t\t学号\t\t期末成绩" << endl;
for (int i = 0; i < n; i++) {