#include #include #define LEN sizeof(struct scorenode) #define DEBUG #include struct scorenode {int number;/*学号*/ char name[10];/*姓名*/ float xiaofei;/*消费情况*/ struct scorenode *next; }; typedef struct scorenode score; int n,k;/*n,k为全局变量,本程序中的函数均可以使用它*/ /*==============================================================================================*/ score *creat2311(void) /*函数creat2311,功能:创建链表,此函数带回一个指向链表头的指针*/ { score*head; score *p1,*p2,*p3,*max; int i,j; float fen; char t[10]; n=0; p1=p2=p3=(score *)malloc(LEN);head=p3; /*开辟一个新单元*/ printf("请输入学生资料,输0退出!\ "); repeat1: printf("请输入学生学号(学号应大于0):");/*输入学号,学号应大于0*/ scanf("%d for(j=i+1;j<=n;j++) { max=p1; p1=p1->next; if(max->number>p1->number) { k=max->number; max->number=p1->number; p1->number=k; /*交换前后结点中的学号值,使得学号大者移到后面的结点中*/ strcpy(t,max->name); strcpy(max->name,p1->name); strcpy(p1->name,t); /*交换前后结点中的姓名,使之与学号相匹配*/ /*交换前后结点中的消费情况,使之与学号相匹配*/ } } max=head;p1=head;/*重新使max,p指向链表头*/ } p2->next=NULL;/*链表结尾*/ printf("输入的学生数为:%d个!\ 学号:"); scanf("%d ber,p1->name,p1->yuwen,p1->yingyu,p1->shuxue); printf("-----------------------------------------\ ");}/*打印表格域*/ else printf("%d不存在此学生!\ 实现学生消费情况查询系统功能*/ {score *head=0,*stu=0; while(1) {k=menu2311(k); switch(k)/*用switch语句实现功能选择*/ {case 1: head=creat2311();break;/*调用创建链表函数*/ case 2: head=load2311(head);break;/*从文件调入记录函数*/ case 3: head=search2311(head);break;/*调用成绩查询函数*/ case 4: head=del2311(head); break;/*调用删除学生资料函数*/ case 5: head=add2311(head,stu);break;/*调用追加学生资料函数* case 6: print2311(head); break;/*调用显示学生资料函数*/ case 7: statistics2311(head); break;/*调用统计函数*/ case 8: save2311(head);break;/*调用保存函数*/ case 9: taxis2311(head);break;/*调用排序函数*/ case 0: exit(0);/*退出系统,返回主界面*/ default: printf("输入错误,请重试!\ "); } } }