5. 删除班级功能的实现

删除班级功能中,需要先显示班级列表,然后在班级列表中选择班级的编号。根据班号来确认要删除班级的位置,即班级编号减一。

删除班级时,我们将此班级后面的班级的数据依次前移,用后面一个覆盖前一个。然后将 class_room_count 做减一操作。

具体代码如下

文件 school.c

// 删除班级
void del_class_room(void)
{
    int number = 0;
    int index;

    list_all_class_room();
    printf("请输入删除班级的序号: ");
    fflush(stdout);
    scanf("%d", &number);
    index = number - 1;  // 对应列表的索引
    if (index < 0 || index >= class_room_count) {
        printf("您输入的序号有误,删除失败!\n");
        sleep(2);
    }
    // 将后续编辑依次向前覆盖
    for (; index < class_room_count-1; index++) {
        class_rooms[index] = class_rooms[index+1];
    }
    class_room_count--;
    printf("删除成功!\n");
    sleep(2);
}