c语言学生管理系统按姓名删除模块代码
时间: 2024-01-19 21:02:23 浏览: 16
以下是一个简单的C语言学生管理系统按姓名删除模块的代码示例:
```c
#include <stdio.h>
#include <string.h>
struct student {
char name[20];
int age;
float score;
};
void delete_student(struct student *students, int *count, char* name) {
int i, j, found = 0;
for (i = 0; i < *count; i++) {
if (strcmp(students[i].name, name) == 0) {
found = 1;
// 如果找到了,就将后面的学生依次往前移动一个位置
for (j = i; j < *count - 1; j++) {
students[j] = students[j+1];
}
(*count)--; // 删除一个学生后,学生总数减1
printf("已删除姓名为%s的学生\n", name);
break;
}
}
if (!found) {
printf("未找到姓名为%s的学生\n", name);
}
}
int main() {
struct student students[] = {
{"张三", 18, 89.5},
{"李四", 19, 92.0},
{"王五", 20, 85.5},
{"赵六", 18, 91.5},
{"钱七", 19, 87.0}
};
int count = 5;
char name[20];
printf("请输入要删除的学生姓名:");
scanf("%s", name);
delete_student(students, &count, name);
printf("删除后的学生信息如下:\n");
for (int i = 0; i < count; i++) {
printf("姓名:%s 年龄:%d 成绩:%.1f\n",
students[i].name, students[i].age, students[i].score);
}
return 0;
}
```
在这个示例中,我们定义了一个结构体`student`,包含了学生的姓名、年龄和成绩。学生信息存储在一个数组中,数组的长度由变量`count`表示。我们定义了一个函数`delete_student`来删除指定姓名的学生,函数的参数包括学生数组、学生总数和要删除的姓名。在函数中,我们使用循环遍历学生数组,找到要删除的学生后,就将后面的学生依次往前移动一个位置,最后将学生总数减1即可。如果未找到要删除的学生,就输出相应的提示信息。在主函数中,我们从用户输入中读取要删除的学生姓名,然后调用`delete_student`函数进行删除。最后输出删除后的学生信息。