圖書內容
本書是《數據結構課程設計》的教材,在作者多年指導學生完成課程設計的經驗基礎上編寫而成。本書算法全部使用C語言描述,所有應用程式原始碼都在Microsoft Visual C++6.0下運行通過。
全書共10章,第1章概述課程設計的目的和要求等;第2章至第7章分別討論了對應數據結構內容的套用設計,如線性表、棧與佇列、串、矩陣及廣義表、樹、圖等套用;第8章和第9章分別討論了動態存儲管理、查找、排序及檔案操作的套用;第10章對應用程式主界面的常用設計方法進行了介紹。各章由本章知識要點、套用開發實例以及課程設計題選三部分組成。
目 錄
第1章 課程設計概述 1
1.1 課程設計的地位與作用 1
1.2 課程設計的目標和要求 1
1.3 課程設計的步驟 2
1.4 實驗報告規範 3
第2章 線性表及其套用 5
2.1 本章知識要點 5
2.2 “學生通訊錄管理系統”的設計與實現 6
2.2.1 設計要求 6
2.2.2 概要設計 6
2.2.3 模組設計 7
2.2.4 詳細設計 7
2.2.5 測試分析 9
2.2.6 源程式清單 10
2.2.7 用戶手冊 15
2.3 “航空客運訂票系統”的設計與實現 16
2.3.1 設計要求 16
2.3.2 概要設計 16
2.3.3 模組設計 17
2.3.4 詳細設計 18
2.3.5 測試分析 25
2.3.6 源程式清單 26
2.3.7 用戶手冊 32
2.4 課程設計題選 32
2.4.1 運動會分數統計系統 32
2.4.2 約瑟夫環問題 33
2.4.3 城市鍊表 33
2.4.4 長整數運算 34
第3章 棧、佇列及其套用 35
3.1 本章知識要點 35
3.1.1 棧的存儲結構 35
3.1.2 佇列的存儲結構 36
3.2 “表達式求值問題”的設計與實現 37
3.2.1 設計要求 37
3.2.2 概要設計 37
3.2.3 模組設計 38
3.2.4 詳細設計 39
3.2.5 測試分析 40
3.2.6 源程式清單 41
3.2.7 用戶手冊 43
3.3 “銀行排隊系統”的設計與實現 43
3.3.1 設計要求 43
3.3.2 概要設計 43
3.3.3 模組設計 44
3.3.4 詳細設計 45
3.3.5 測試分析 47
3.3.6 源程式清單 48
3.3.7 用戶手冊 57
3.4 課程設計題選 57
3.4.1 停車場管理系統 57
3.4.2 車廂調度問題 57
3.4.3 數制轉換問題 58
3.4.4 回文判斷 58
3.4.5 商品貨架管理 59
3.4.6 括弧匹配的檢驗 59
第4章 串結構及其套用 60
4.1 本章知識要點 60
4.1.1 串的定義及基本操作 60
4.1.2 串的存儲結構 61
4.1.3 串的模式匹配算法 61
4.2 “串基本操作演示系統”的設計與實現 63
4.2.1 設計要求 63
4.2.2 概要設計 64
4.2.3 模組設計 64
4.2.4 詳細設計 65
4.2.5 測試分析 68
4.2.6 源程式清單 69
4.2.7 用戶手冊 72
4.3 “文學研究助手系統”的設計與實現 72
4.3.1 設計要求 72
4.3.2 概要設計 72
4.3.3 模組設計 73
4.3.4 詳細設計 74
4.3.5 測試分析 76
4.3.6 源程式清單 76
4.3.7 用戶手冊 77
4.3.8 “文學研究助手系統”實現方法之二 77
4.4 課程設計題選 81
4.4.1 文本格式化問題 81
4.4.2 簡單行編輯程式 82
第5章 多維數組、矩陣、廣義表及其套用 84
5.1 本章知識要點 84
5.1.1 多維數組 84
5.1.2 稀疏矩陣 85
5.1.3 廣義表 86
5.2 “稀疏矩陣運算器”的設計與實現 89
5.2.1 設計要求 89
5.2.2 概要設計 89
5.2.3 模組設計 90
5.2.4 詳細設計 90
5.2.5 測試分析 93
5.2.6 源程式清單 94
5.2.7 用戶手冊 98
5.3 “廣義表基本操作演示系統”的設計與實現 98
5.3.1 設計要求 98
5.3.2 模組設計 98
5.3.3 詳細設計 99
5.3.4 測試分析 104
5.3.5 源程式清單 104
5.3.6 用戶手冊 110
5.4 課程設計題選 110
5.4.1 模擬實現多維數組類型 110
5.4.2 稀疏矩陣的轉置 111
5.4.3 識別廣義表的“頭”或“尾”的演示 111
第6章 樹及其套用 113
6.1 本章知識要點 113
6.1.1 樹與森林 113
6.1.2 二叉樹 115
6.1.3 哈夫曼樹及其套用 118
6.2 “二叉樹基本操作演示程式”的設計與實現 119
6.2.1 設計要求 119
6.2.2 概要設計 119
6.2.3 模組設計 120
6.2.4 詳細設計 121
6.2.5 測試分析 123
6.2.6 源程式清單 124
6.2.7 用戶手冊 126
6.3 “哈夫曼樹”的建立及其套用 127
6.3.1 設計要求 127
6.3.2 概要設計 127
6.3.3 模組設計 127
6.3.4 詳細設計 128
6.3.5 測試分析 130
6.3.6 源程式清單 131
6.3.7 用戶手冊 133
6.4 課程設計題選 133
6.4.1 求二叉樹上結點的路徑 133
6.4.2 重言式判別問題 134
6.4.3 表達式類型的實現 134
6.4.4 列印樹形結構 135
第7章 圖結構及其套用 136
7.1 本章知識要點 136
7.1.1 圖的存儲結構 136
7.1.2 圖套用的相關算法 137
7.2 “校園導遊系統”的設計與實現 139
7.2.1 設計要求 139
7.2.2 概要設計 139
7.2.3 模組設計 140
7.2.4 詳細設計 142
7.2.5 測試分析 148
7.2.6 源程式清單 150
7.2.7 用戶手冊 158
7.3 課程設計題選 158
7.3.1 圖基本操作的實現 158
7.3.2 教學計畫編排問題 158
7.3.3 最小生成樹問題 159
7.3.4 交通諮詢系統設計 159
第8章 動態存儲管理、查找、內排序及其套用 161
8.1 本章知識要點 161
8.1.1 動態存儲管理 161
8.1.2 查找 163
8.1.3 排序 165
8.2 “模擬動態存儲管理演示系統”的設計與實現 167
8.2.1 設計要求 167
8.2.2 概要設計 167
8.2.3 模組設計 168
8.2.4 詳細設計 169
8.2.5 測試分析 172
8.2.6 源程式清單 173
8.2.7 用戶手冊 181
8.3 “航班信息查詢與檢索系統”的設計與實現 181
8.3.1 設計要求 181
8.3.2 概要設計 182
8.3.3 模組設計 182
8.3.4 詳細設計 183
8.3.5 測試分析 187
8.3.6 源程式清單 188
8.3.7 用戶手冊 192
8.4 課程設計題選 193
8.4.1 夥伴存儲管理系統演示 193
8.4.2 圖書管理系統 193
8.4.3 內部排序算法比較 194
8.4.4 哈希表設計 195
8.4.5 統計成績 195
第9章 檔案操作及其套用 196
9.1 本章知識要點 196
9.1.1 檔案的基本概念 196
9.1.2 C檔案類型指針 197
9.1.3 C檔案的打開與關閉 198
9.1.4 數據塊的讀入和輸出 199
9.2 “二叉排序樹與檔案操作”的設計與實現 202
9.2.1 設計要求 202
9.2.2 概要設計 202
9.2.3 模組設計 204
9.2.4 詳細設計 205
9.2.5 測試分析 207
9.2.6 源程式清單 208
9.2.7 用戶手冊 215
9.3 課程設計題選 216
9.3.1 外存檔案的排序操作 216
9.3.2 索引檔案的插入、刪除和查找 216
第10章 應用程式主界面設計 218
10.1 本章知識要點 218
10.1.1 窗體型界面 218
10.1.2 字元型界面 218
10.2 字元型界面的設計與實現 218
10.2.1 界面背景顏色設定 218
10.2.2 界面背景大小設定 219
10.2.3 字元選單設計實例一 219
10.2.4 字元選單設計實例二 222
10.3 字元型界面設計總結 223
參考文獻 224