资源描述:
《链表操作(北信科).doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、#include#include#include#include#include#defineLENsizeof(structstudent)typedefstructstudent{longnumb;charname[10];intscore[3];floatave;structstudent*next;}STU;STU*creatbyone();voidprint(STU*head);STU*findBynumb(
2、STU*head,longnum);STU*del(STU*head);STU*insert(STU*head);voidfind(STU*head);voidsort(STU*head,intn);voidupdate(STU*head);voidsave(STU*head);STU*load(STU*head);intn;voidmain(){STU*head;intchoise;for(;;){system("cls");printf("菜单栏");printf("欢迎使用成绩管理系统");print
3、f("");printf("[1]输入成绩
4、
5、[5]查找成绩信息");printf("");printf("[2]显示全部成绩
6、
7、[6]更改成绩信息");printf("");printf("[3]新增成绩
8、
9、[7]保存信息");printf("");printf("[4]删除成绩
10、
11、[8]加载成绩信息");printf("");printf("[0]退出");printf("");printf("");printf("请选择功能(0~8):");scanf("%d"
12、,&choise);if(choise==0)break;switch(choise){case1:head=creatbyone();break;case2:print(head);break;case3:head=insert(head);break;case4:head=del(head);break;case5:find(head);break;case6:update(head);break;case7:save(head);break;case8:head=load(load);break;}}prin
13、tf("谢谢使用!!");}voidfind(head){STU*p;intnum;printf("请输入要查找的学号:");scanf("%d",&num);p=findBynumb(head,num);if(p==NULL)printf("没有找到");else{printf("找到了");printf("学号t姓名t成绩1t成绩2t成绩3t平均分");printf("%ldt%st%dt%dt%dt%.2f",p->numb,p->name,p->score[0],p->s
14、core[1],p->score[2],p->ave);}printf("按任意键继续......");getch();}STU*creatbyone()//创建信息{STU*head,*pnew,*ptail;printf("进入学生信息创建(以学号为0加回车退出创建)");head=NULL;n=0;while(1){pnew=(STU*)malloc(LEN);printf("学号t姓名t成绩1t成绩2t成绩3");scanf("%ld",&pnew->numb);if(pnew->numb=
15、=0)break;scanf("%s%d%d%d",pnew->name,&pnew->score[0],&pnew->score[1],&pnew->score[2]);pnew->ave=(pnew->score[0]+pnew->score[1]+pnew->score[2])/3.0;n++;if(n==1){head=pnew;ptail=pnew;}else{ptail->next=pnew;ptail=pnew;}}ptail->next=NULL;returnhead;printf("按任意键继续.
16、.....");getch();}STU*findBynumb(STU*head,longnum)//查找{STU*presult=NULL,*p;for(p=head;p!=NULL;p=p->next)if(p->numb==num){presult=p;break;}returnpresult;}voidprint(STU*head)//输出{STU*