8. 列出所有学生信息功能的实现

列出所有学生信息就是将 aclass 指向的班级的所有学生的姓名、语文成绩、数学成绩信息显示出来。此功能需要为每个学生添加一个编号,这个编号是数组的索引位置加一,这个编号将用于后续修改和删除学生信息。

具体代码如下

文件 class_room.c

// 显示所有学生的信息
void list_all_student_info(class_room_t *aclass)
{
    int i;
    const student_t *astu;
    char stu_name_buf[MAX_STU_NAME_LEN*2];

    printf("+------+----------------------+--------+--------+\n");
    printf("| 序号 |         姓名         |语文成绩|数学成绩|\n");
    printf("+------+----------------------+--------+--------+\n");
    for (i = 0; i < aclass->student_count; i++) {
        astu = &aclass->student[i];
        center_to_display_width(astu->name, 20, stu_name_buf);
        printf("| %4d | %s |  %4d  |  %4d  |\n",
            i+1, stu_name_buf, astu->chinese_score, astu->math_score);
    }
    if (aclass->student_count)
        printf("+------+----------------------+--------+--------+\n");
}