f", &node_fd->math);
}
printf("请输入该学生语文成绩:");
scanf("%f", &node_fd->chinese);
while(node_fd->chinese < 0.0 || node_fd->chinese > 100.0){
printf("输入错误,请重新输入数学成绩:");
scanf("%f", &node_fd->chinese);
}
node_fd->all_sub = node_fd->chinese+node_fd->math+node_fd->english;
node_fd->average = node_fd->all_sub/3;
printf("修改成功!\n");
goto recyc3;
}
else{
printf("没有该学生信息!\n");
goto recyc3;
}
}
}
STU *display_student(STU *stu_head)
{
int sel;
STU *head = stu_head;
STU *node = stu_head;
if(node == NULL){
printf("没有任何学生信息,按任意键返回");
getch();
return head;
}
recyc:
printf("学号 姓名 语文 数学 英文 平均分 总分\n");
while(node){
printf("%d %s %0.1f %0.1f %0.1f %0.1f %0.1f\n", node->ID, node->name,\
node->chinese, node->math, node->english, node->average, node->all_sub);
node=node->next;
}
printf("排序方式: 1:按学号排序2:按语文成绩排序3:按数学成绩排序\n 4:按英文成绩排序5:按总分排序0:返回\n请选择:");
sel = getch();
while(sel < '0'|| sel>'5'){
printf("输入错误!请重新选择:");
sel = getch();
}
if(sel == '0')
return head;
head = node = select_sort(head, sel);
system("cls");
goto recyc;
return head;
}
STU *search_by_name(STU *stu_head, char name[])
{
STU *node = stu_head;
if(!node)
return NULL;
while(node){
if(!strcmp(node->name, name))
return node;
node=node->next;
}
return NULL;
}
STU *search_by_nb(STU *stu_head, unsigned long nb)
{
STU *node = stu_head;
if(!node)
return NULL;
while(node){
if(node->ID == nb)
return node;
node=node->next;
}
return NULL;
}
void search_student(STU *stu_head)
{
STU *head = stu_head;
STU *node;
int sel = 0;
char name[10];
unsigned long ID;
recyc2:
printf("1:按姓名查找2:按学号查找0:返回\n请选择:");
sel = getch();
while(sel<'0' || sel>'2'){
printf("\n输入错误,请重新选择:");
sel = getch();
}
if(sel == '0')
return;
if(sel == '1'||sel=='2'){
if(sel == '1'){
printf("\n请输入你要查找的学生姓名:");
scanf("%s", name);
node = search_by_name(head, name);
}
else{
printf("\n请输入你要查找的学生学号:");
scanf("%d", &ID);
node = search_by_nb(head, ID);
}
if(node){
printf("学号 姓名 语文 数学 英文 平均分 总分\n");
printf("%d %s %0.1f %0.1f %0.1f %0.1f %0.1f\n", node->ID, node->name,\
node->chinese, node->math, node->english, node->average, node->all_sub);
goto recyc2;
}
else{
printf("没有找到该学生信息!\n");
goto recyc2;
}
}
}