目 錄
第1章 基礎知識回顧 1
1.1 概述 1
1.1.1 C程序的基本結構 1
1.1.2 高級語言的編譯和執(zhí)行 2
1.1.3 編譯和執(zhí)行C程序 2
1.1.4 Visual C++ 6.0 3
1.2 程序設計結構 8
1.2.1 順序結構 8
1.2.2 選擇結構 8
1.2.3 循環(huán)結構 9
1.3 數組 11
1.3.1 一維數組 11
1.3.2 二維數組 11
1.4 函數 11
1.4.1 函數種類 11
1.4.2 函數的調用 13
1.4.3 函數的形參與實參 14
1.4.4 內部變量與外部變量 14
1.4.5 變量的動態(tài)存儲與靜態(tài)存儲 15
1.5 編譯預處理 16
1.5.1 宏定義與符號常量 16
1.5.2 文件包含 17
1.5.3 條件編譯 17
1.6 指針 18
1.6.1 指針和指針變量的概念 18
1.6.2 指針變量的定義與應用 19
1.6.3 數組的指針和指向數組的指針變量 19
1.6.4 字符串的指針和指向字符串的指針變量 21
1.6.5 返回指針值的函數 22
1.6.6 指針數組與主函數main()的形參 23
1.7 結構體 23
1.7.1 結構體類型變量的定義 23
1.7.2 結構體變量的引用 24
1.7.3 結構體的使用 24
1.8 小結 24
第2章 圖書館管理系統(tǒng)分析 25
2.1 系統(tǒng)需求分析 25
2.2 模塊功能描述 26
2.3 數據結構設計 27
2.3.1 讀者信息結構 28
2.3.2 分類目錄信息結構 29
2.3.3 圖書信息結構 30
2.3.4 借閱信息結構 31
2.3.5 賬戶信息結構 32
2.3.6 全局ER圖 33
2.4 系統(tǒng)流程圖 33
2.5 系統(tǒng)菜單設計 34
2.6 小結 35
第3章 讀者管理模塊的設計與實現 36
3.1 知識要點 36
3.1.1 單鏈表 36
3.1.2 順序查找 41
3.1.3 順序文件操作 41
3.2 模塊設計 45
3.3 數據流程圖 46
3.4 模塊實現 47
3.4.1 增加讀者 47
3.4.2 查詢讀者 48
3.4.3 修改讀者 49
3.4.4 瀏覽所有讀者 50
3.4.5 證件掛失 51
3.5 功能測試 51
3.6 小結 54
第4章 分類目錄管理模塊的設計與實現 55
4.1 知識要點 55
4.1.1 樹的基本概念 55
4.1.2 樹的存儲結構 56
4.1.3 樹的遍歷 57
4.1.4 圖書分類目錄 57
4.1.5 隨機文件操作 58
4.2 模塊設計 61
4.3 數據流程圖 61
4.4 模塊實現 62
4.4.1 增加分類 62
4.4.2 修改分類 63
4.4.3 刪除分類 64
4.4.4 瀏覽分類目錄結構 64
4.5 功能測試 66
4.6 小結 69
第5章 圖書編目管理模塊的設計與實現 70
5.1 知識要點 70
5.1.1 scanf/fscanf%[] 70
5.1.2 清空輸入緩沖區(qū) 71
5.1.3 字符串庫函數 72
5.2 模塊設計 78
5.3 數據流程圖 78
5.4 模塊實現 79
5.4.1 新書錄入 79
5.4.2 刪除圖書 80
5.4.3 修改圖書 83
5.5 功能測試 83
5.6 小結 85
第6章 圖書流通管理模塊的設計與實現 86
6.1 知識要點 86
6.1.1 順序表 86
6.1.2 冒泡排序 88
6.1.3 簡單選擇排序 89
6.1.4 直接插入排序 89
6.1.5 折半查找 89
6.1.6 時間處理函數 91
6.2 模塊設計 96
6.3 數據流程圖 96
6.4 模塊實現 98
6.4.1 圖書分類瀏覽 98
6.4.2 圖書檢索 100
6.4.3 借書 104
6.4.4 還書 107
6.4.5 續(xù)借 109
6.4.6 罰款 109
6.4.7 查詢借閱記錄 110
6.5 功能測試 111
6.6 小結 113
第7章 賬戶管理模塊的設計與實現 114
7.1 模塊設計 114
7.2 數據流程圖 114
7.3 功能實現 115
7.3.1 注冊賬戶 116
7.3.2 修改密碼 117
7.3.3 查詢賬戶 118
7.3.4 刪除賬戶 119
7.3.5 修改賬戶 120
7.4 功能測試 121
7.5 小結 122
第8章 內存分區(qū)管理算法的設計與實現 123
8.1 知識要點 123
8.1.1 可變分區(qū)存儲管理 123
8.1.2 空閑區(qū)的合并 125
8.1.3 分區(qū)的管理與組織方式 126
8.1.4 空閑分區(qū)的分配算法 127
8.2 總體設計 128
8.2.1 數據結構設計 128
8.2.2 內存分配算法 129
8.2.3 內存回收算法 130
8.2.4 函數設計 134
8.3 代碼實現 134
8.3.1 主函數 134
8.3.2 內存分配函數 136
8.3.3 內存回收函數 137
8.3.4 輸出分區(qū) 140
8.3.5 運行測試 141
8.4 小結 143
第9章 字母貪吃蛇游戲的設計與實現 144
9.1 理論基礎 144
9.1.1 控制臺界面操作函數 144
9.1.2 與線程有關的函數 146
9.2 總體設計 147
9.3 游戲代碼實現 148
9.3.1 頭文件包含 148
9.3.2 常量及變量定義 149
9.3.3 函數聲明 150
9.3.4 函數實現 150
9.3.5 游戲運行測試 156
9.4 小結 157
第10章 C語言編程規(guī)范 158
10.1 文件結構 158
10.1.1 版權和版本的聲明 158
10.1.2 頭文件的結構 158
10.1.3 源程序文件的結構 159
10.1.4 頭文件的作用 160
10.1.5 目錄結構 160
10.2 程序的版式 160
10.2.1 空行 160
10.2.2 代碼行 161
10.2.3 代碼行內的空格 162
10.2.4 對齊 162
10.2.5 長行拆分 163
10.2.6 修飾符的位置 164
10.2.7 注釋 164
10.3 命名規(guī)則 165
10.3.1 共性規(guī)則 165
10.3.2 應用程序命名規(guī)則 166
10.4 常量 166
10.4.1 使用原因 166
10.4.2 const與#define的比較 166
10.4.3 常量定義規(guī)則 167
10.5 表達式和基本語句 167
10.5.1 運算符的優(yōu)先級 167
10.5.2 復合表達式 168
10.5.3 if語句 168
10.5.4 循環(huán)語句的效率 169
10.5.5 for語句的循環(huán)控制變量 170
10.5.6 switch語句 171
10.6 函數設計 171
10.6.1 參數的規(guī)則 171
10.6.2 返回值的規(guī)則 172
10.6.3 函數內部實現的規(guī)則 173
10.6.4 其他 174
10.7 小結 174
附錄 175