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

一、 实验目的:

掌握单链表的概念和建立方法。

掌握单链表的几种基本操作。

二、实验要求:

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

有一学生成绩表,输入信息包括学号、姓名、3门课程成绩。结构定义为(可以自行添加别名):

224732d98f7478ec41cbe5448c521586.png

要求实现:

*1. 单链表的创建

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

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

输入输出示例(如下图所示):

0aa9e3081cc71e706b1c31d1356462fe.png

2. 单链表的遍历

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

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

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

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

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

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

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

【情况1】若待添加结点与单链表中已存在学号有重复的,则反馈提示信息,链表中结构不变;

70037021d6a7ab0e1f1365d2b5c6f10f.png

【情况2】对链表添加结点。提醒注意,在链表中添加和在链表尾添加,是需要分别对待处理的。

3b95e625771109882578a0806523a948.png

89edc177d1b06412f125aac767672b4e.png

4.单链表的使用

函数: main()

说明:在理解了单链表各种基本操作的基础上,尝试把这些操作组合到一起,共同实现单链表的应用。

对于之前定义的基本操作,在主函数中分别调用,实现单链表的应用。

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

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

说明:

(1)删除指定学号的链表结点。

(2)若单链表中未找到该学号的结点,则返回“error!”提示。

(3)若找到该学号的结点,则删除该结点。提示:输入输出示例(如下图所示,需要从几个方面讨论和考虑问题):

【情况1】若链表中确实存在待删除结点,则删除它。提醒注意,结点处于在链表中和链表尾,是需要分别对待处理的。

d47f9edda74d09ec758faa57703eb2df.png

fa2476c45ac580e319abad15464ca362.png

【情况2】若链表中不存在待删除结点,则需要反馈提示信息。

38132f4dc31046f1ae924d60fc60d688.png

[扩展&选做]

6.统计——有不及格成绩的学生名单

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

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

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

15e1e6ae180e99497a4983b019e75bf9.png

三,实验结果

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值