上機實驗習題
上機實驗要求及規範
c程式設計具有比較強的理論性,同時也具有較強的可應用性和實踐性。在上機實驗是乙個重要的教學環節。具體實習步驟如下:
1.問題分析與系統結構設計
充分地分析和理解問題本身,弄清要求做什麼(而不是怎麼做),限制條件是什麼。按照以資料結構為中心的原則劃分模組,搞清資料的邏輯結構(是線性表還是樹、圖?),確定資料的儲存結構(是順序結構還是鍊錶結構?)。然後設計有關操作的函式。在每個函式模組中,要綜合考慮系統功能,使系統結構清晰、合理、簡單和易於除錯。最後寫出每個模組的演算法頭和規格說明,列出模組之間的呼叫關係(可以用圖表示),便完成了系統結構設計。
3.上機準備
熟悉高階語言用法,如c語言。熟悉機器(即作業系統),基本的常用命令。靜態檢查主要有兩條路徑,一是用一組測試資料手工執行程式(或分模組進行);二是通過閱讀或給別人講解自己的程式而深入全面地理解程式邏輯,在這個過程中再加入一些注釋和斷言。如果程式中邏輯概念清楚,後者將比前者有效。
4.上機除錯程式
除錯最好分塊進行,自底向上,即先除錯底層函式,必要時可以另寫乙個呼叫驅動程式,表面上的麻煩工作可以大大降低除錯時所面臨的複雜性,提高工作效率。
5.整理實習報告
在上機實開始之前要充分準備實驗資料,在上機實踐過程中要及時記錄實驗資料,在上機實踐完成之後必須及時總結分析。寫出實驗報告。
一、實驗報告的基本要求:
一般性、較小規模的上機實驗題,必須遵循下列要求。養成良好的習慣。
(1)姓名 班級 學號 日期
(2)題目:內容敘述
(3)程式清單(帶有必要的注釋)
(4)除錯報告:
實驗者必須重視這一環節,否則等同於沒有完成實驗任務。這裡可以體現個人特色、或創造性思維。具體內容包括:測試資料與執行記錄;除錯中遇到的主要問題,自己是如何解決的;經驗和體會等。
二、實驗習報告的提高要求:
階段性、較大規模的上機實驗題,應該遵循下列要求。養成科學的習慣。
(1)需求和規格說明
描述問題,簡述題目要解決的問題是什麼。規定軟體做什麼。原題條件不足時補全。
(2)設計
a.設計思想:儲存結構(題目中限定的要描述);主要演算法基本思想。
b.設計表示:每個函式的頭和規格說明;列出每個函式所呼叫和被呼叫的函式,也可以通過呼叫關係圖表達。
c.實現注釋:各項功能的實現程度、在完成基本要求的基礎上還有什麼功能。
(3)使用者手冊:即使用說明。
(4)除錯報告:除錯過程中遇到的主要問題是如何解決的;設計的回顧、討論和分析;時間複雜度、空間複雜度分析;改進設想;經驗和體會等。
編制部門:國土資源學院 編制人:李謙 審核人: 編制日期:2023年3月23日
專案編號 no. c001
專案名稱 資料結構
訓練物件 gis 2015級7、8
學時 4
課程名稱 資料結構實驗
教 材 資料結構(c語言版)
目的objective 1.學會用演算法來進行程式設計。
第一題
建立兩個鍊錶,給每個鍊錶賦值,並合併輸出
第三題
為學生資訊建立鍊錶,並輸出
第一題:
程式**如下:
#include#include#include#include#define len sizeof (struct stu)
struct stu
; /*定義學生資訊鍊錶的結點結構*/
struct stu *creat(void)
} return head;
} struct stu *swap(struct stu *head)
return q;
}//單項鍊表逆轉函式
void print(struct stu *p)
} int main()
第二題
#include #includestruct node;
void print(struct node *h)
printf("\n\n");}
struct node* order(struct node *head)
printf("排序後的鍊錶為:");
print(h);
return h;}
struct node* creat()
printf("建立的鍊錶為:");
print(h);
return h;
}
struct node* join(struct node *head1,struct node *head2)
else
}p->next=p1?p1:p2;
printf("合併後的鍊錶為:");
print(h);
return h;
}void main()
第三題
#include #include #define null 0
typedef struct
stu;
typedef struct node
node;
node *p,*head,*q;
void main()
p->next=null;
printf("學生資訊鏈``表為:\n");
q=head;
q=q->next;
while(q)
}
心得體會:結構體和鍊錶的建立之間的聯絡,鍊錶的儲存和輸出的格式是什麼樣子的也比在之前更加的清楚了。 資料結構實驗報告 資料結構實驗報告
使用c語言中的陣列,實現線性表中的順序結構儲存的查詢 刪除操作。1 初始線性表通過陣列 迴圈 scanf語句實現輸入任意個整數。2 刪除操作的實現,任意輸入乙個要刪除的整數,找到這個元素,將此元素之後的所有元素逐個前移一位,實現刪除操作。3 要求以上2步操作可以重複執行。4 例如 刪除操作執行結果大...
資料結構與演算法實驗報告 實驗一 鍊錶
實驗一 鍊錶 實驗目的和要求 1.理解線性表的鏈式儲存結構。2.熟練掌握動態鍊錶結構及有關演算法的設計。根據具體問題的需要,設計出合理的表示資料的鍊錶結構,並設計相關 演算法。實驗任務 1.對任意輸入的一組資料,建立乙個遞增有序的單鏈表。2.將單鏈表 中的奇數項和偶數項結點分解開,並分別連成乙個單鏈...
資料結構實驗報告
1 掌握佇列儲存結構的表示和實現方法。2 掌握佇列的入隊和出隊等基本操作的演算法實現。3 了解佇列在解決實際問題中的簡單應用。1 建立順序迴圈佇列,並在順序迴圈佇列上實現入隊 出隊基本操作 驗證性內容 2 建立迴圈鏈佇列,並在迴圈鏈佇列上實現入隊 出隊基本操作 設計性內容 3 實現鍵盤輸入迴圈緩衝區...