《数据结构-学生成绩管理系统课程设计-源程序》由会员分享,可在线阅读,更多相关《数据结构-学生成绩管理系统课程设计-源程序(8页珍藏版)》请在金锄头文库上搜索。
1、#includestdio.h#includestdlib.h#includestring.h#include conio.htypedef struct STUDENTchar name20;/名字char num10;/学号int score;/成绩struct STUDENT *next;STUDENT, *StudentList;/*void CreateList(StudentList &L); void Locate(StudentList L); void InsertList(StudentList &L); void DeleteList(StudentList &L);in
2、t LengthList(StudentList L); */ void PrintList(StudentList H); void Create(StudentList &H) /建立链表,int a,i;system(cls);/清屏printf(tt*n); printf(tt-成绩链表的输入-n);printf(输入学生的个数:n);scanf(%d,&a);/创建链表StudentList q=H; for (i=0;iname,p-num,&p-score);p-next=NULL;q-next=p;q=q-next;/H=H-next;PrintList(H);printf(按
3、任意键返回主菜单n);getch();void Insert(StudentList &H)system(cls);/清屏printf(tt*n); printf(tt-学生信息插入操作-n);if(!H-next)printf(错误:链表未创建!n);printf(按任意键返回主菜单n);getchar();return ;int i;printf(插入的位置:);scanf(%d,&i);StudentList p = H; int j = 0;while (p & j next;+j; if (!p | j i-1) printf(输入位置错误!) ;printf(按任意键返回主菜单n)
4、;getch();return;StudentList s = (StudentList )malloc(sizeof(STUDENT); printf(n输入姓名:t学号:t成绩:n);scanf(%s %s %d,s-name,s-num,&s-score);s-next = p-next; p-next = s;PrintList(H);printf(按任意键返回主菜单n);getchar(); void Delete(StudentList &H) /删除节点 system(cls);/清屏printf(tt*n); printf(tt-学生信息删除操作-n);if(!H-next)p
5、rintf(错误:链表未创建!n);printf(按任意键返回主菜单n);getchar();return ;int i;printf(输入要删除的位置:);scanf(%d,&i);StudentList p = H; int j = 0;while (p-next & j next;+j; if (!p-next | j i-1) printf(输入位置错误!) ;printf(按任意键返回主菜单n);getch();return;StudentList q=p-next;p-next=q-next;free(q);PrintList(H);/getch();printf(按任意键返回主菜
6、单n);getchar(); void Locate(StudentList H) /查询 system(cls);/清屏printf(tt*n); printf(tt-学生信息查询操作-n);if(!H-next)printf(错误:链表未创建!n);printf(按任意键返回主菜单n);getchar();return ; char num10;/int flag=0; printf(n输入要查询的学号:); scanf(%s,num);StudentList p=H-next; int i=1;while(p) if(!strcmp(num,p-num) printf(找到了,它是链表的
7、第%d个元素n,i);printf(n姓名t学号t成绩n);printf(%st%st%dtn,p-name,p-num,p-score); break;p=p-next;i+;if (!p)printf(你要查询的学号不存在!n);getchar();printf(按任意键返回主菜单n);getchar();void Modify(StudentList H)system(cls);/清屏printf(tt*n); printf(tt-学生信息修改操作-n);if(!H-next)printf(错误:链表未创建!n);printf(按任意键返回主菜单n);getchar();return ;
8、int i;printf(输入要修改的位置:);scanf(%d,&i);StudentList p = H; int j = 0;while (p-next & j next;+j; if (!p-next | j i-1) printf(输入位置错误!) ;printf(按任意键返回主菜单n);getch();return;StudentList q=p-next;/free(q);*/char name20;char num10;int score;printf(n输入更改的 姓名t学号t成绩:n);scanf(%s %s %d,name,num,&score);strcpy(q-nam
9、e,name);strcpy(q-num,num);q-score=score;PrintList(H);printf(按任意键返回主菜单n);getchar();void Sum(StudentList H)system(cls);/清屏printf(tt*n); printf(tt-学生成绩统计-n);StudentList t=H-next;if(!t)printf(信息系统空,请添加!n);/printf(按任意键返回主菜单n);/getchar();return ;printf(不及格的学生是:rn);printf(姓名t学号t成绩:n);while(t) if (t-scorename,t-num,t-score); t=t-next;t=H-next;printf(n成绩为及格的学生是:rn);printf(姓名t学号t成绩:n);while(t)if (t-score=60)printf(%st%st%dtn,t-name,t-num,t-score); t=t-next;printf(按任意键返回主菜单n);getchar();void PrintList(StudentList H)