rintf("请输入要删除的学生姓名:");
scanf("%s", name);
if(!strcmp(node->name, name)){
free(node);
head = node->next;
printf("成功删除!按任意键返回。\n");
getch();
return head;
}
while(node){
if(!strcmp(node->name, name)){
pre->next = node->next;
free(node);
printf("成功删除!按任意键返回。\n");
getch();
return head;
}
pre = node;
node = node->next;
}
printf("没有找到该学生信息!\n");
return head;
}
if(flag == '3'){
printf("请输入要删除的学生学号:");
scanf("%d", &ID);
if(node->ID == ID){
free(node);
head = node->next;
printf("成功删除!按任意键返回。\n");
getch();
return head;
}
while(node){
if(!strcmp(node->name, name)){
pre->next = node->next;
free(node);
printf("成功删除!按任意键返回。\n");
getch();
return head;
}
pre = node;
node = node->next;
}
printf("没有找到该学生信息!按任意键返回\n");
getch();
return head;
}
}
STU *del_student(STU *stu_head)
{
int sel;
STU *head = stu_head;
printf("1:删除全部 2:按名字删除3:按学号删除0:返回\n");
printf("请选择:\n");
sel = getch();
while(sel<'0'||sel>'3'){
printf("输入错误,请重新选择:\n");
sel = getch();
}
if(sel == '0')
return head;
if(!head){
printf("没有任何学生信息!按任意键返回.\n");
getch();
return head;
}
if(sel == '1'){
head = del_all(head);
printf("删除成功!按任意键返回.");
getch();
return head;
}
if(sel == '2'||sel =='3'){
head = del_one(head, sel);
return head;
}
}
void modify_student(STU *stu_head)
{
STU *head = stu_head;
STU *node_fd;
int sel;
char name[10];
unsigned long nb;
recyc3:
printf("1:修改指定学号的学生信息 2:修改指定姓名的学生信息 0:返回\n请选择:\n");
sel = getch();
while(sel < '0'|| sel>'2'){
printf("输入错误!请重新选择:\n");
sel = getch();
}
if(sel == '1'||sel=='2'){
if(sel == '1'){
printf("请输入要修改的学生学号:");
scanf("%d", &nb);
node_fd = search_by_nb(head, nb);
}
if(sel == '2'){
printf("请输入要修改的学生姓名:");
scanf("%s", name);
node_fd = search_by_name(head, name);
}
if(node_fd){
printf("请输入该学生英语成绩:");
scanf("%f", &node_fd->english);
while(node_fd->english < 0.0 || node_fd->english > 100.0){
printf("输入错误,请重新输入英语成绩:");
scanf("%f", &node_fd->english);
}
printf("请输入该学生数学成绩:");
scanf("%f", &node_fd->math);
while(node_fd->math < 0.0 || node_fd->math > 100.0){
printf("输入错误,请重新输入数学成绩:");
scanf("%