求高手写 链表的学生成绩管理系统
一、 程序功能用单向链表结构实现简单的学生成绩管理功能,要求具有链表建立、链表输出、节点有序插入、节点删除。数据查询等功能。
二、 本题基本实现要求
1.、数据结构
用单向链表实现学生成绩的记录和管理,每一个结点存放一条记录。结点结构如下
struct stud
{char name[20]; 姓名
int score; 成绩
struct stud*next; 下一结点指针
};
typedef struct stud Student;
2、各函数功能
(1)建立有序链表
Student *Create();
从键盘输入若干条记录,调用insert函数建立以姓名为序的单向链表,返回链表头指针
(2)输出链表数据
void Display(student*head);显示所有姓名成绩,没10各暂停一下
(3)结点的有序插入
Student *Insert(student*head,student*s)按姓名序插入记录s,返回链表头指针
Student *Insert_a_Record(student*head)主任待插入的姓名、成绩,调用Insert函数按姓名作有序插入,输入插入成功信息,返回链表头指针
(4)结点删除
Student *Delete(student*head,char*name);删除姓名为NAME的记录,返回链表头指针
Student *Delete_a_Record(student stud【】)输入待删除的姓名,经确认后调用delete函数删除该姓名的记录,输出删除成功与否的信息。返回链表头指针
(5)结点数据查询
Student *Query(student*head,char*name)查找姓名为NAME的记录,查找成功返回该结点地址,否则,返回空指针
void Query_a_record(student*head)输入待查找的姓名,调用query函数查找该姓名的记录,输出查找成功与否的信息和结点信息
(6)从文件中整批输入数据
Student *AddfromText(student*head,char*filename)从文件filename添加一批记录到链表中,调用insert()函数作有序插入,返回链表头指针
(7)将链表结点记录写入到文件中
void WritetoText(student*head,char*filename)将链表中的结点记录全写入文件records.txt
(0) 推出管理系统
(1) void Quit(student*head)推出管理系统是,释放动态存储空间
其他函数
Voi Display_Main_Menu()显示主菜单 实验过程中可以根据需要适当增加函数,以使程序算法更清晰
三、 完成本题加10分
1、 新增菜单功能
(8)Reverse List将链表中的所有结点逆序存放
(9)、Delete the Same Record删除相同姓名的记录
2.、(8)链表逆序存放
Student*Reverse(Student*)按姓名逆序存放链表,函数返回链表头指针
(9)删除同名记录
Student*DeleteSame(Student*)删除链表中姓名相同的记录,返回函数链表头指针