#include #include #include int save=0; struct student /*构建结构体*/ { char num[12]; char name[20] ; char sex[4] ; int CYuYan; int Math; int English; int sum; int ave; } ; typedef struct node { struct student data; struct node *next; } Node, *Link; void Menu() /*界面主菜单*/ { printf("******************\n") ; printf("\t1输入学生资料\t\t\t\t\t2删除学生资料\n") ; printf("\t3查询学生成绩\t\t\t\t\t4修改学生成绩\n") ; printf("\t5显示学生资料\t\t\t\t\t6统计学生资料\n") ; printf("\t7排序学生成绩\t\t\t\t\t8保存学生成绩\n") ; printf("\t9退出系统\n") ; printf("**********************") ; } void Print() { printf("--------------------") ; } void Wrong() /*错误警告*/ { printf("\n警告: 输入错误! !!\n") ; } void Nofind() { printf("\n警告: 没有找到该学生! !! \n") ; } void Print1() { printf(" 学号\t 姓名 性别 C语言成绩 英语成绩 数学成绩 总分 平均分\n") ; } void Print2(Node *p) /*打印学生成绩*/ { printf("%-9s%s\t%3s\t%d\t%d\t%d\t %d\t %d\n", p->data.num, p->data.name, p->data.sex, p->data.CYuYan, p->data.Math, p->data.English, p->data.sum, p->data.ave); } Node *Locate(Link h, char findmess[], char nameornum[] ) /*定位链表中符合要求的接点*/ { Node *r; if(strcmp(nameornum, "num") ==0) /*按学号查询*/ { r=h->next; while(r!=NULL) { if(strcmp(r->data. num, findmess) ==0) return r; r=r->next; } } else if(strcmp(nameornum, "name") ==0) /*按姓名查询*/ { r=h->next; while(r!=NULL) { if(strcmp(r->data. name, findmess) ==0) return r; r=r->next; } } return 0; }