內容簡介
本書分為5篇,共16章,精心開發了10個案例。第一篇重點介紹了C語言的基本知識點和課程設計的指導工作。第二篇介紹字元界面及檔案操作編程,包括通訊錄管理、學生成績管理、家庭財務管理和圖書管理這4個系統的設計與實現過程。第三篇是遊戲編程,介紹了貪吃蛇和俄羅斯方塊遊戲的設計和實現過程。
第四篇介紹了UDP程式設計和簡單的
Web伺服器的設計與實現過程。第五篇是Linux下的C語言編程,介紹了基於堆疊的計算器和萬年曆兩個Linux下應用程式的設計與實現過程。每個例子都是很好的課程設計工作的案例。
圖書目錄
第一篇 C語言基礎知識及課程設計指導
第1章 C語言基本知識點 2
1.1 C語言簡介 2
1.2 C語言的特點 2
1.3 C語言基本語法概述 2
1.3.1 數據類型 2
1.3.2 運算符和表達式 4
1.3.3 程式基本結構 4
1.3.4 數組 6
1.3.5 函式 7
1.3.6 編譯預處理 9
1.3.7 指針 9
1.3.8 結構體和共用體 14
1.3.9 檔案 16
第2章 課程設計指導 20
2.1 課程設計的目的和任務 20
2.2 課程設計內容 20
2.3 課程設計教學基本要求 21
2.4 軟體開發各階段任務簡介 21
2.4.1 功能需求分析 21
2.4.2 軟體總體設計 21
2.4.3 詳細設計 22
2.4.4 編碼 22
2.4.5 綜合測試 22
2.5 課程設計選題及考核 23
2.5.1 課程設計選題 23
2.5.2 課程設計考核 23
第二篇 字元界面及檔案操作編程
第3章 鍊表相關知識簡介 26
3.1 鍊表的概念 26
3.2 動態存儲空間的分配和釋放 27
3.3 建立和輸出鍊表 27
3.4 單鍊表的基本操作 29
3.5 雙鍊表 30
第4章 通訊錄管理 32
4.1 功能需求分析 32
4.2 總體設計 32
4.2.1 功能模組設計 32
4.2.2 程式處理流程 33
4.3 詳細設計與程式實現 34
4.3.1 預處理 34
4.3.2 數據類型定義 34
4.3.3 函式及變數聲明 35
4.3.4 主函式 36
4.3.5 主要函式功能介紹 37
4.3.6 輔助函式功能介紹 44
4.4 系統實現截圖 45
4.5 小結 48
第5章 學生成績管理 49
5.1 功能需求分析 49
5.2 總體設計 49
5.2.1 功能模組設計 49
5.2.2 程式處理流程 51
5.3 詳細設計與程式實現 52
5.3.1 預處理 52
5.3.2 數據結構定義 53
5.3.3 函式及變數聲明 53
5.3.5 主要處理函式 56
5.3.6 輔助函式功能介紹 67
5.4 系統實現截圖 72
5.5 小結 75
第6章 家庭財務管理 76
6.1 功能需求分析 76
6.2 總體設計 76
6.2.1 功能模組設計 76
6.2.2 程式處理流程 78
6.3 詳細設計與程式設計 83
6.3.1 頭檔案 83
6.3.2 模組設計 84
6.4 系統實現截圖 102
6.5 小結 105
第7章 圖書管理 106
7.1 功能需求分析 106
7.2 總體設計 107
7.2.1 功能模組設計 107
7.2.2 程式處理流程 110
7.3 詳細設計與程式實現 112
7.3.1 頭檔案management.h 112
7.3.2 頭檔案book.h 113
7.3.3 頭檔案user.h 114
7.3.4 模組化設計management.c 115
7.3.5 模組化設計book.c 122
7.3.6 模組化設計user.c 137
7.4 系統實現截圖 147
7.4.1 管理員許可權 147
7.4.2 普通用戶許可權 151
7.5 小結 151
第三篇 游 戲 編 程
第8章 Windows編程 154
8.1 Windows程式入口函式 154
8.2 Windows的訊息循環 154
8.3 GDI繪圖 156
8.3.1 設備內容的句柄 157
8.3.2 畫線 158
8.3.3 畫邊界框函式 158
8.3.4 使用現有畫筆 158
8.3.5 創建自定義畫筆 159
8.3.6 繪製填充區域 160
8.3.7 矩形 161
8.3.8 GDI 點陣圖對象 162
第9章 貪吃蛇 163
9.1 功能需求分析 163
9.1.1 主要功能 163
9.1.2 遊戲基本規則 163
9.2 總體設計 163
處理流程 163
9.3 詳細設計與程式實現 164
9.3.1 數據結構 165
9.3.2 頭檔案snake.h 166
9.3.3 遊戲設計snake.c 166
9.4 系統實現截圖 183
9.5 小結 184
第10章 俄羅斯方塊 185
10.1 功能需求分析 185
10.1.1 主要功能 185
10.1.2 遊戲基本規則 185
10.2 總體設計 185
主要處理流程 186
10.3 詳細設計與程式實現 187
10.3.1 方塊設計 187
10.3.2 頭檔案tetris.h 189
10.3.3 遊戲設計tetris.c 190
10.4 系統實現截圖 210
10.5 小結 211
第四篇 網 絡 編 程
第11章 網路協定和套接字編程 214
11.1.1 TCP/IP協定概念 214
11.1.2 TCP/IP整體構架概述 214
11.1.3 TCP/IP中的協定 215
11.2.1 HTTP簡介 216
11.2.2 URL 216
11.2.4 HTTP回響 218
11.3 Windows Sockets編程基礎 218
11.3.1 套接字編程基本概念 218
11.3.2 Windows Sockets編程原理 219
11.3.3 Windows Sockets的兩種編程模型 220
11.3.4 Windows Sockets基本函式 221
12.1 功能需求分析 226
12.2 總體設計 226
12.2.1 功能模組設計 226
12.2.2 程式流程處理 227
12.3 詳細設計與程式實現 228
12.3.1 伺服器端程式 228
12.3.2 客戶端程式 237
12.4 系統實現截圖 244
12.5 小結 245
第13章 簡單的Web伺服器 246
13.1 功能需求分析 246
13.2 總體設計 246
13.2.1 功能模組設計 246
13.2.2 主要流程處理 247
13.3 詳細設計與程式實現 249
13.3.1 頭檔案header.h 250
13.3.2 頭檔案common.h 250
13.3.3 頭檔案http_server.h 251
13.3.4 頭檔案request.h 251
13.3.5 頭檔案request_parser.h 252
13.3.6 頭檔案response.h 252
13.3.7 頭檔案response_creator.h 253
13.3.8 通用模組common.c 254
13.3.9 HTTP服務模組http_server.c 258
13.3.10 請求模組request.c 263
13.3.11 請求解析模組request_parser.c 264
13.3.12 回響模組response.c 273
13.3.13 生成回響模組response_creator.c 274
13.4 系統實現截圖 281
13.5 小結 283
第五篇 Linux下的C語言編程
第14章 Linux C語言開發環境介紹 286
14.1 文本編輯器 286
14.2 編譯與調試 286
14.3 make與makefile 287
14.4 集成開發環境 287
第15章 基於堆疊的計算器 291
15.1 功能需求分析 291
15.2 總體設計 291
15.3 詳細設計與程式實現 292
15.3.1 頭檔案calculator.h 292
15.3.2 計算器模組calculator.c 294
15.4 系統實現截圖 306
15.5 小結 307
第16章 萬年曆 308
16.1 功能需求分析 308
16.2 總體設計 308
主要處理流程 308
16.3 詳細設計與程式實現 311
16.3.1 頭檔案calendar.h 311
16.3.2 萬年曆模組calendar.c 311
16.4 系統實現截圖 320
16.5 小結 321
附錄A 常用字元與ASCII代碼對照表 322
附錄B 庫函式 323
參考文獻 328
前言
課程設計是高等院校人才培養計畫的重要組成部分,是對學生專業知識、綜合素質和實際能力訓練的重要方法,是人才培養質量的重要體現。目前,C語言課程設計方面的輔導資料非常少,學生在做課程設計時遇到了很大困難。基於這種情況,我們編寫了這本C語言課程設計,以幫助讀者深入理解C語言的的各項知識點,熟練掌握利用C語言進行程式設計的原理和方法,提高C語言的編程能力,掌握高級程式設計語言的編程技巧