10. 修改学生成绩功能的实现
修改学生成绩分为修改语文成绩和数学成绩两项、其做法几乎完全一致。
在修改成绩前先要用学生序号定位那个学生,然后输入新的成绩、再对该学生的成绩进行修改。
具体代码如下
文件 class_room.c
// 修改语文成绩功能
void modify_chinese_score(class_room_t *aclass)
{
int number = 0;
int index;
int new_score = 0;
list_all_student_info(aclass);
printf("请输入要修改语文成绩的学生的序号:");
fflush(stdout);
scanf("%d", &number);
index = number - 1;
if (index < 0 || index >= MAX_STU_COUNT_IN_CLASS_ROOM) {
printf("您输入的序号有误,修改失败!\n");
return;
}
student_t *astu = &aclass->student[index];
printf("请输入%s的新的语文成绩: ", astu->name);
fflush(stdout);
scanf("%d", &new_score);
astu->chinese_score = new_score;
printf("修改%s的语文成绩成功!\n", astu->name);
}
// 修改数学成绩功能
void modify_math_score(class_room_t *aclass)
{
int number = 0;
int index;
int new_score = 0;
list_all_student_info(aclass);
printf("请输入要修改数学成绩的学生的序号:");
fflush(stdout);
scanf("%d", &number);
index = number - 1;
if (index < 0 || index >= MAX_STU_COUNT_IN_CLASS_ROOM) {
printf("您输入的序号有误,修改失败!\n");
return;
}
student_t *astu = &aclass->student[index];
printf("请输入%s的新的数学成绩: ", astu->name);
fflush(stdout);
scanf("%d", &new_score);
astu->math_score = new_score;
printf("修改%s的数学成绩成功!\n", astu->name);
}