上次我使用动态数组结构体实现了学生成绩管理系统:
这次学习了链表对链表也有所了解,我就想着用链表实现学生成绩管理系统,我的这个学生成绩管理系统和前一个的功能是一样的,只是实现的方法不同,因为使用链表实现对数据的增删改查不会引起大量数据的变化,所以效率上会有所提高
程序模块:

程序中使用到的函数:
函数名
函数功能
inputstudent
输入学生信息
outputstudent
输出学生信息
deletestudent
删除学生信息
searchstudent
查找学生信息
changestudent
修改学生信息
insertstudent
增加学生信息
scortbychinese
对学生的语文成绩排序
scortbymath
对学生的数学成绩排序
scortbyenglish
对学生的英语成绩排序
scortbytotal
对学生的总分排序
程序主界面:
功能选择界面:
首先定义一个学生结构和一个结点结构
学生结构:
结点结构:
然后定义一些函数用于处理学生信息
函数名:pnode inputstudent(void)
函数功能:输入学生信息
函数代码:
实现效果:
输入学生的人数:
输入第1个学生的信息
输入第2个学生的信息:
函数名:void outputstudent(pnode phead)
函数功能:输出学生信息
测试程序:
函数名:void deletestudent(pnode phead)
函数功能:删除学生信息
选择需要删除的学生的编号
删除成功的标志:
删除后的学生信息:
函数名:void searchstudent(pnode phead)
函数功能:查找学生信息
查找李四的信息
函数名:void changestudent(pnode phead)
函数功能:修改学生信息
函数代码
修改前李四的成绩
修改李四的成绩
修改后李四的成绩:
函数名:void insertstudent(pnode phead)
函数功能:增加学生信息
增加王五的信息
增加后的效果:
函数名:void scortbychinese(pnode phead)
函数功能:对学生的语文成绩排序
排序前的学生信息
排序后的学生信息:
函数名:void scortbymath(pnode phead)
函数功能:对数学成绩排序
排序前:
排序后:
函数名:void scortbyenglish(pnode phead)
函数功能:对学生的英语成绩排序
排序前
函数名:void scortbytotal(pnode phead)
函数功能:对学生的总分排序
排序后
学生管理系统的全部代码: