修改代码错误int main() { int i,choice,score,num;// 交互式查询 char query[20]; int num_students = read_student_info(students); printf("学生成绩表:\n"); display_all_students(students, num_students); while (1) { printf("\t\t\t\t¥¥**-------- 学生成绩管理系统-------**¥¥\n\n\n\n"); //菜单 printf("\t\t\t\t¥¥**1. 增加学生记录*******************¥¥ \n\n"); printf("\t\t\t\t¥¥**2. 将信息进行排序*****************¥¥ \n\n"); printf("\t\t\t\t¥¥**3. 查询学生成绩*******************¥¥ \n\n"); printf("\t\t\t\t¥¥**4. 查询各科平均分*****************¥¥ \n\n"); printf("\t\t\t\t¥¥**5. 退出***************************¥¥ \n\n\n"); printf("请选择(1-5):"); scanf("%d", &i); if (i == 5) { break; } else { switch (i) { case 1: addStudent(); num_students = read_student_info(students); break;
时间: 2023-07-05 20:26:03 浏览: 179
CString-int-string-char--change.rar_CString_CString string _char
修改后的代码如下:
```c
#include <stdio.h>
#include "student.h"
int main() {
int i, choice, score, num;
char query[20];
int num_students = read_student_info(students);
printf("学生成绩表:\n");
display_all_students(students, num_students);
while (1) {
printf("\t\t\t\t¥¥**-------- 学生成绩管理系统-------**¥¥\n\n\n\n"); //菜单
printf("\t\t\t\t¥¥**1. 增加学生记录*******************¥¥ \n\n");
printf("\t\t\t\t¥¥**2. 将信息进行排序*****************¥¥ \n\n");
printf("\t\t\t\t¥¥**3. 查询学生成绩*******************¥¥ \n\n");
printf("\t\t\t\t¥¥**4. 查询各科平均分*****************¥¥ \n\n");
printf("\t\t\t\t¥¥**5. 退出***************************¥¥ \n\n\n");
printf("请选择(1-5):");
scanf("%d", &i);
if (i == 5) {
break;
} else {
switch (i) {
case 1:
add_student();
num_students = read_student_info(students);
break;
case 2:
printf("请选择排序方式:1.按学号排序 2.按总分排序\n");
scanf("%d", &choice);
if (choice == 1) {
sort_by_id(students, num_students);
} else if (choice == 2) {
sort_by_total_score(students, num_students);
} else {
printf("请选择正确的选项!\n");
}
break;
case 3:
printf("请输入要查询学生的姓名:");
scanf("%s", query);
num = search_by_name(students, num_students, query);
if (num == -1) {
printf("查无此人!\n");
} else {
display_one_student(students[num]);
}
break;
case 4:
display_average_score(students, num_students);
break;
default:
printf("请选择正确的选项!\n");
break;
}
}
}
return 0;
}
```
该程序的运行逻辑如下:
1. 首先调用 `read_student_info` 函数读取学生信息,返回学生总人数 `num_students`,并将学生信息保存在 `students` 数组中。
2. 调用 `display_all_students` 函数输出所有学生的信息。
3. 进入循环,根据用户的选择执行相应的操作,直到用户选择退出。
4. 如果用户选择增加学生记录,则调用 `add_student` 函数,该函数会提示用户输入新学生的信息,并将新学生的信息保存在 `students` 数组中。
5. 如果用户选择将信息进行排序,则提示用户选择排序方式,根据用户的选择调用 `sort_by_id` 或 `sort_by_total_score` 函数进行排序。
6. 如果用户选择查询学生成绩,则提示用户输入要查询学生的姓名,调用 `search_by_name` 函数查询并输出该学生的信息。
7. 如果用户选择查询各科平均分,则调用 `display_average_score` 函数输出各科平均分。
8. 如果用户选择了其他选项,则输出提示信息,让用户重新选择。
阅读全文