函數與程序結構(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 ) ;

說明:統計單鏈表中各結點,有成績不及格的學生名單,並顯示輸出,一個名字佔一行。

輸入輸出示例(如下圖所示,需要從幾個方面討論和考慮問題):
在這裏插入圖片描述
三,實驗結果

代碼在這裏粘貼不了,我放在下篇了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章