// 添加学生 void add_student() { if (stu_num >= MAX_STU_NUM) { printf("\t\t\t学生数已达上限,添加失败!\n"); return; } printf("\n\t\t\t请输入学生信息:学号 姓名 密码 身份证号 宿舍号 班级"); scanf("%s %s %s %s %s %s", students[stu_num].id, students[stu_num].name, students[stu_num].pwd, students[stu_num].id_card, students[stu_num].dorm, students[stu_num].cls); students[stu_num].status = 0; // 初始报到状态为0(未报到) stu_num++; printf("\t\t\t添加成功!\n"); }添加一个学号存在则添加失败的代码
时间: 2024-03-13 07:46:51 浏览: 90
可以在添加学生时,先遍历已有的学生信息,判断新输入的学生学号是否已经存在,如果已经存在则添加失败,否则继续添加学生信息。可以按照以下方式修改代码:
```
// 添加学生
void add_student() {
if (stu_num >= MAX_STU_NUM) {
printf("\t\t\t学生数已达上限,添加失败!\n");
return;
}
char new_id[ID_LEN]; // 新输入的学生学号
printf("\n\t\t\t请输入学生信息:学号 姓名 密码 身份证号 宿舍号 班级");
scanf("%s %s %s %s %s %s", new_id, students[stu_num].name,
students[stu_num].pwd, students[stu_num].id_card, students[stu_num].dorm,
students[stu_num].cls);
// 遍历已有的学生信息,判断新输入的学生学号是否已经存在
for (int i = 0; i < stu_num; i++) {
if (strcmp(students[i].id, new_id) == 0) {
printf("\t\t\t学号已存在,添加失败!\n");
return;
}
}
// 学号不存在,继续添加学生信息
strcpy(students[stu_num].id, new_id);
students[stu_num].status = 0; // 初始报到状态为0(未报到)
stu_num++;
printf("\t\t\t添加成功!\n");
}
```
阅读全文