函数与程序结构(C语言结课作业 文本篇,代码在下篇)

一、 实验目的:

  1. 掌握单链表的概念和建立方法。
  2. 掌握单链表的几种基本操作。

二、实验要求:

【根据下面提供的结构,参照教材“9.5 单链表”中所给出的单链表几种基本操作的代码,完成实现“学生成绩信息”相关的几种功能函数】

有一学生成绩表,输入信息包括学号、姓名、3门课程成绩。结构定义为(可以自行添加别名):
函数与程序结构(C语言结课作业 文本篇,代码在下篇)_第1张图片
要求实现:

*1. 单链表的创建
函数声明: void CreateStuList( struct stud head ) ;

说明:创建“学生成绩信息”的单链表,并在创建时完成一些学生结点的构建和链接。

输入输出示例(如下图所示):
函数与程序结构(C语言结课作业 文本篇,代码在下篇)_第2张图片
2. 单链表的遍历

*函数声明: void PrintStuList( struct stud head ) ;

说明:顺序输出显示单链表中所有结点的信息,每个结点信息占一行。

*3.单链表的结点插入函数声明: void StuListInsert( struct stud head) ;

说明:(1)若单链表中已存在相同学号的结点,则返回“error!”提示

(2)在已经有序的“学生成绩信息”单链表中添加新结点,结点插入后,保持链表的有序性。

(3)待插入结点的信息在本函数中接收。

提示:输入输出示例(如下图所示,需要从几个方面讨论和考虑问题):

【情况1】若待添加结点与单链表中已存在学号有重复的,则反馈提示信息,链表中结构不变;
函数与程序结构(C语言结课作业 文本篇,代码在下篇)_第3张图片
【情况2】对链表添加结点。提醒注意,在链表中添加和在链表尾添加,是需要分别对待处理的。
函数与程序结构(C语言结课作业 文本篇,代码在下篇)_第4张图片

函数与程序结构(C语言结课作业 文本篇,代码在下篇)_第5张图片
4.单链表的使用

函数: main()

说明:在理解了单链表各种基本操作的基础上,尝试把这些操作组合到一起,共同实现单链表的应用。
对于之前定义的基本操作,在主函数中分别调用,实现单链表的应用。

[扩展&选做]5.单链表的结点删除

*函数声明: void StuListDelete( struct stud head )

说明:

(1)删除指定学号的链表结点。
(2)若单链表中未找到该学号的结点,则返回“error!”提示。
(3)若找到该学号的结点,则删除该结点。提示:输入输出示例(如下图所示,需要从几个方面讨论和考虑问题):

【情况1】若链表中确实存在待删除结点,则删除它。提醒注意,结点处于在链表中和链表尾,是需要分别对待处理的。
函数与程序结构(C语言结课作业 文本篇,代码在下篇)_第6张图片
函数与程序结构(C语言结课作业 文本篇,代码在下篇)_第7张图片
【情况2】若链表中不存在待删除结点,则需要反馈提示信息。
函数与程序结构(C语言结课作业 文本篇,代码在下篇)_第8张图片
[扩展&选做]

6.统计——有不及格成绩的学生名单
*函数声明: void StaticScoreList( struct stud head ) ;

说明:统计单链表中各结点,有成绩不及格的学生名单,并显示输出,一个名字占一行。

输入输出示例(如下图所示,需要从几个方面讨论和考虑问题):
函数与程序结构(C语言结课作业 文本篇,代码在下篇)_第9张图片
三,实验结果

代码在这里粘贴不了,我放在下篇了。

你可能感兴趣的:(C语言与算法基础(竞赛版))