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

一、 实验目的:

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

二、实验要求:

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

有一学生成绩表,输入信息包括学号、姓名、3门课程成绩。结构定义为(可以自行添加别名):
在这里插入图片描述
要求实现:

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

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

输入输出示例(如下图所示):
在这里插入图片描述
2. 单链表的遍历

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

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

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

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

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

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

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

【情况1】若待添加结点与单链表中已存在学号有重复的,则反馈提示信息,链表中结构不变;
在这里插入图片描述
【情况2】对链表添加结点。提醒注意,在链表中添加和在链表尾添加,是需要分别对待处理的。
在这里插入图片描述

在这里插入图片描述
4.单链表的使用

函数: main()

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

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

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

说明:

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

【情况1】若链表中确实存在待删除结点,则删除它。提醒注意,结点处于在链表中和链表尾,是需要分别对待处理的。
在这里插入图片描述
在这里插入图片描述
【情况2】若链表中不存在待删除结点,则需要反馈提示信息。
在这里插入图片描述
[扩展&选做]

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

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

输入输出示例(如下图所示,需要从几个方面讨论和考虑问题):
在这里插入图片描述
三,实验结果

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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值