10个学生成绩信息处理。 提示:学生成绩信息包括:学号、姓名、成绩1、成绩2等。 定义结构体数组完成存储学生成绩信息(线性结构顺序存储) 编程实现上述要求,实现对学生信息进行查询、排序等处理操作。 程序源代码以学号+姓名+成绩管理命名
时间: 2024-09-23 12:02:05 浏览: 60
在处理十个学生成绩信息时,我们可以创建一个名为`StudentRecord`的结构体数组来存储学生成绩。首先,我们需要定义结构体包含学号(如`int studentID`)、姓名(如`string name`)以及两个成绩变量(如`float score1`, `float score2`)。然后,我们可以按照以下步骤编写程序:
```c++
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 定义学生成绩结构体
typedef struct {
int studentID;
char name[50];
float score1;
float score2;
} StudentRecord;
// 学生记录数组
StudentRecord students[10];
// 添加学生信息函数
void addStudent(int id, const char* name, float score1, float score2) {
StudentRecord newStudent = {id, name, score1, score2};
students[id] = newStudent;
}
// 查询学生信息函数
void searchStudent(int id, char* name) {
for (int i = 0; i < 10; i++) {
if (students[i].studentID == id || strcmp(students[i].name, name) == 0) {
printf("学号:%d, 姓名:%s, 成绩1:%.2f, 成绩2:%.2f\n",
students[i].studentID, students[i].name, students[i].score1, students[i].score2);
return;
}
}
printf("未找到匹配的学生。\n");
}
// 按照成绩排序函数(这里仅演示升序)
void sortStudentsByScore() {
for (int i = 0; i < 9; i++) {
for (int j = 0; j < 9 - i; j++) {
if (students[j].score1 > students[j + 1].score1) {
StudentRecord temp = students[j];
students[j] = students[j + 1];
students[j + 1] = temp;
}
}
}
printf("排序后的学生信息:\n");
for (int i = 0; i < 10; i++) {
printf("学号:%d, 姓名:%s, 成绩1:%.2f, 成绩2:%.2f\n",
students[i].studentID, students[i].name, students[i].score1, students[i].score2);
}
}
int main() {
// 添加示例学生信息
addStudent(1, "张三", 85.0, 90.0);
addStudent(2, "李四", 92.0, 95.0);
// ... 其他7个学生的添加
// 查找特定学生或按名搜索
searchStudent(1, "张三");
searchStudent("李四", "");
// 排序并显示所有学生信息
sortStudentsByScore();
return 0;
}
```
这个程序实现了添加学生、查询学生、以及按照成绩对学生成绩信息进行排序的功能。当然,在实际应用中,你可以根据需求扩展其他功能,例如删除学生、修改成绩等。
阅读全文
相关推荐

















