用链式结构写学生学籍管理系统(c语言)中修改学生成绩的部分
时间: 2024-02-19 16:02:16 浏览: 104
以下是用链式结构写学生学籍管理系统中修改学生成绩的部分的示例代码:
```c
void modify_score(student *head) {
int id, new_score;
printf("请输入要修改成绩的学生学号:");
scanf("%d", &id);
student *p = find_student(head, id);
if (p == NULL) {
printf("没有找到该学号的学生!\n");
return;
}
printf("请输入新的成绩:");
scanf("%d", &new_score);
p->score = new_score;
printf("修改成功!\n");
}
```
其中,`student` 是一个结构体类型,表示学生信息,包括学号、姓名、性别和成绩等字段。`head` 是指向链表头节点的指针。
`find_student` 函数用于查找指定学号的学生节点:
```c
student *find_student(student *head, int id) {
student *p = head;
while (p != NULL) {
if (p->id == id) {
return p;
}
p = p->next;
}
return NULL;
}
```
在 `modify_score` 函数中,首先提示用户输入要修改成绩的学生学号,然后调用 `find_student` 函数查找该学号的学生节点。如果找不到对应的节点,则提示错误信息并返回。如果找到了对应的节点,则提示用户输入新的成绩,然后将该节点的成绩字段更新为新的成绩,最后提示修改成功。
阅读全文