本書是一本以項(xiàng)目開發(fā)案例為導(dǎo)向、面向工作應(yīng)用的軟件開發(fā)類教材,內(nèi)容兼顧了C語(yǔ)言程序設(shè)計(jì)方法及Win32API窗體編程技術(shù),架起讓學(xué)生從程序設(shè)計(jì)走向軟件開發(fā)的橋梁。項(xiàng)目案例按照“由淺入深、循序漸進(jìn)”的原則設(shè)置,讓學(xué)生切身感受到軟件開發(fā)給工作帶來實(shí)實(shí)在在的用處和方便,并非只是枯燥的語(yǔ)法和陌生的術(shù)語(yǔ),從而激發(fā)學(xué)生學(xué)習(xí)編程的興趣,讓學(xué)生變被動(dòng)學(xué)習(xí)為自主自發(fā)學(xué)習(xí)。項(xiàng)目開發(fā)案例過程完整,不但適合在學(xué)習(xí)軟件開發(fā)時(shí)作為小型項(xiàng)目開發(fā)的參考書,而且可以作為畢業(yè)設(shè)計(jì)的案例參考書。
本書全面介紹了C語(yǔ)言軟件開發(fā)人員應(yīng)該掌握的各項(xiàng)技術(shù),內(nèi)容突出“基礎(chǔ)”“全面”“深入”的特點(diǎn),同時(shí)強(qiáng)調(diào)“實(shí)戰(zhàn)”效果,使得學(xué)生具備從程序設(shè)計(jì)方法到軟件開發(fā)能力的一個(gè)飛躍,滿足了企業(yè)對(duì)可迅速上手的軟件開發(fā)人才的迫切需求。本書以項(xiàng)目開發(fā)案例為導(dǎo)向,面向軟件開發(fā),著重培養(yǎng)學(xué)生C語(yǔ)言與Windows編程的能力,通過實(shí)訓(xùn)項(xiàng)目的訓(xùn)練提高學(xué)生分析問題和實(shí)際動(dòng)手解決問題的能力。
本書以通俗易懂的語(yǔ)言,豐富多彩的實(shí)例,詳細(xì)介紹了使用C語(yǔ)言在Windows下進(jìn)行程序開發(fā)所應(yīng)該掌握的各方面知識(shí)。本書共分為如下兩部分內(nèi)容。
1.C語(yǔ)言程序設(shè)計(jì)
C語(yǔ)言是一門通用計(jì)算機(jī)編程語(yǔ)言,應(yīng)用廣泛。C語(yǔ)言的設(shè)計(jì)目標(biāo)是提供一種能以簡(jiǎn)易的方式編譯、處理低級(jí)存儲(chǔ)器、產(chǎn)生少量的機(jī)器碼以及不需要任何運(yùn)行環(huán)境支持便能運(yùn)行的編程語(yǔ)言。“C語(yǔ)言程序設(shè)計(jì)”課程是高等學(xué)校計(jì)算機(jī)類專業(yè)的專業(yè)基礎(chǔ)課,也是很多非計(jì)算機(jī)專業(yè)理科學(xué)生的必修課。本書第1部分涵蓋了C語(yǔ)言的基本知識(shí)點(diǎn)以及經(jīng)典的編程算法,獨(dú)具匠心的編程技巧使程序更加完善,對(duì)C語(yǔ)言和程序設(shè)計(jì)的基本概念和要點(diǎn)講解透徹,全面而深入。
2.Windows下的C編程
Windows編程作為搭建程序員與計(jì)算機(jī)的“橋梁”,引領(lǐng)著無數(shù)程序員走過了改變世界的過程。本書第2部分重點(diǎn)介紹了Windows編程的基本知識(shí)點(diǎn),幫助讀者掌握可視化界面設(shè)計(jì)、WindowsAPI方法編程、事件驅(qū)動(dòng)程序運(yùn)行方式等基本W(wǎng)indows編程方法,形成基本的編程架構(gòu)思想,為以后的編程之路打下堅(jiān)實(shí)的基礎(chǔ)。
本書條理清晰、通俗易懂、實(shí)用性與可操作性強(qiáng),理論與實(shí)踐完美結(jié)合。每章都配有大量實(shí)用案例。每個(gè)實(shí)例代碼都配有相應(yīng)的運(yùn)行結(jié)果截圖,效果直觀。試圖從解決實(shí)際問題的角度出發(fā),通過大量的典型實(shí)例,強(qiáng)化算法設(shè)計(jì)的基本方法,沿著由問題帶出算法,由算法帶出程序設(shè)計(jì)語(yǔ)言的思路講述程序設(shè)計(jì)中的各個(gè)知識(shí)點(diǎn)。本書所有案例,都可從清華大學(xué)出版社網(wǎng)站免費(fèi)下載。
在本書成稿之際,我要感謝清華大學(xué)出版社的鼎力相助,感謝責(zé)任編輯白立軍老師,感謝編輯老師們嚴(yán)謹(jǐn)審校與精心編排。同時(shí)本書參考了國(guó)內(nèi)外大量文獻(xiàn),借鑒了一些網(wǎng)絡(luò)上不知名作者的素材,在此謹(jǐn)向這些國(guó)內(nèi)外作者表示誠(chéng)摯的感謝和崇高的敬意。
*后,我要特別致謝一屆又一屆的同學(xué)們,是你們用問題構(gòu)建了本書的案例,也是你們的編程熱情使得代碼更加完善,謹(jǐn)以此書獻(xiàn)給追求卓越的莘莘學(xué)子們,獻(xiàn)給參與本書文本與代碼校驗(yàn)工作的呂志強(qiáng)、劉帥帥、張曉強(qiáng)、王紀(jì)剛、王文喜、張紅艷以及李爍等同學(xué)們。
由于編者水平有限,書中難免存在錯(cuò)誤與不足,敬請(qǐng)讀者批評(píng)指正。愿本書與讀者一起成長(zhǎng),感謝讀者對(duì)本書的厚愛與支持。
曲海平于山東煙臺(tái)
2017年1月
第1部分C語(yǔ)言程序設(shè)計(jì)第1章C語(yǔ)言程序設(shè)計(jì)介紹/3
1.1C語(yǔ)言簡(jiǎn)介/3
1.2C語(yǔ)言編程平臺(tái)——Visual C++ 6.0簡(jiǎn)介/4
1.2.1Visual C++ 6.0界面介紹/4
1.2.2創(chuàng)建項(xiàng)目文件/6
1.2.3程序調(diào)試/8
1.3數(shù)據(jù)的類型與運(yùn)算符/9
1.3.1常量/9
1.3.2變量/11
1.3.3運(yùn)算符/12
1.4數(shù)據(jù)的輸入輸出/14
1.4.1輸出函數(shù)printf/14
1.4.2輸入函數(shù)scanf/15
1.5本章小結(jié)/16第2章基本控制結(jié)構(gòu)/17
2.1順序結(jié)構(gòu)/17
2.2選擇結(jié)構(gòu)/19
2.2.1if選擇結(jié)構(gòu)/19
2.2.2switch多分支選擇結(jié)構(gòu)/24
2.2.3選擇結(jié)構(gòu)程序設(shè)計(jì)/27
2.3循環(huán)結(jié)構(gòu)/28
2.3.1while循環(huán)結(jié)構(gòu)/29
2.3.2dowhile循環(huán)結(jié)構(gòu)/30
2.3.3for循環(huán)結(jié)構(gòu)/32
2.3.4循環(huán)嵌套/35
2.4綜合實(shí)訓(xùn)/37
2.5本章小結(jié)/41第3章數(shù)組/42
3.1數(shù)組簡(jiǎn)介/42
3.1.1數(shù)組定義及聲明/42
3.1.2數(shù)組的初始化/43
3.2數(shù)組的程序設(shè)計(jì)/44
3.2.1數(shù)值問題/44
3.2.2矩陣問題/46
3.2.3圖形問題/51
3.2.4排序與查找/53
3.3字符數(shù)組與字符串/56
3.3.1字符串簡(jiǎn)介/56
3.3.2字符串函數(shù)/57
3.3.3字符串程序設(shè)計(jì)/58
3.4綜合實(shí)訓(xùn)/60
3.5本章小結(jié)/66第4章函數(shù)/68
4.1函數(shù)簡(jiǎn)介/68
4.1.1函數(shù)的定義/68
4.1.2函數(shù)的調(diào)用/69
4.1.3函數(shù)的聲明/71
4.2函數(shù)參數(shù)/73
4.2.1普通變量作為函數(shù)參數(shù)/73
4.2.2數(shù)組作為函數(shù)參數(shù)/75
4.3嵌套調(diào)用和遞歸調(diào)用/80
4.3.1嵌套調(diào)用/80
4.3.2遞歸調(diào)用/81
4.4C語(yǔ)言變量/83
4.4.1全局變量和局部變量/83
4.4.2變量的存儲(chǔ)方式/84
4.5綜合實(shí)訓(xùn)/95
4.6本章小結(jié)/100第5章指針/101
5.1指針與數(shù)組/101
5.1.1指向一維數(shù)組的指針/101
5.1.2指向多維數(shù)組的指針/105
5.1.3指向數(shù)組的指針/106
5.2指針與函數(shù)/107
5.2.1指針作為函數(shù)調(diào)用的參數(shù)/107
5.2.2數(shù)組名作為函數(shù)調(diào)用的參數(shù)/109
5.2.3函數(shù)指針——指向函數(shù)的指針/111
5.2.4指針函數(shù)——返回值為指針的函數(shù)/115
5.3指針與字符串/117
5.3.1字符指針與字符數(shù)組/117
5.3.2字符指針程序設(shè)計(jì)/119
5.4指針數(shù)組與多重指針/120
5.4.1指針數(shù)組/120
5.4.2多重指針/122
5.5動(dòng)態(tài)分配內(nèi)存/123
5.6綜合實(shí)訓(xùn)/128
5.7本章小結(jié)/137第6章結(jié)構(gòu)體/138
6.1結(jié)構(gòu)體的定義與使用/138
6.1.1結(jié)構(gòu)體的建立/138
6.1.2結(jié)構(gòu)體類型變量的定義/139
6.1.3結(jié)構(gòu)體變量的使用/140
6.2學(xué)生信息管理系統(tǒng)/143
6.2.1設(shè)計(jì)要求/143
6.2.2功能模塊/143
6.2.3程序代碼/144
6.2.4程序運(yùn)行結(jié)果/160
第2部分Windows下的C編程第7章Windows下的C編程基礎(chǔ)/165
7.1Windows下工程的建立/165
7.2Windows編程的基礎(chǔ)函數(shù)/167
7.2.1Windows程序的入口——WinMain
函數(shù)/167
7.2.2Windows的printf——MessageBox
函數(shù)/168
7.2.3Windows中的輸出函數(shù)/170
7.3Windows程序框架/171
7.4綜合實(shí)訓(xùn)/176
7.5本章小結(jié)/179第8章子窗口控件、菜單與對(duì)話框/181
8.1子窗口控件/181
8.1.1消息傳遞機(jī)制/181
8.1.2static控件/182
8.1.3按鈕/184
8.1.4編輯框/191
8.2菜單/193
8.2.1菜單的概念/193
8.2.2菜單的建立/193
8.3對(duì)話框/198
8.3.1模態(tài)對(duì)話框/198
8.3.2非模態(tài)對(duì)話框/203
8.4綜合實(shí)訓(xùn)/205
8.5本章小結(jié)/219第9章Windows編程綜合設(shè)計(jì)/220
9.1俄羅斯方塊/220
9.1.1游戲介紹/220
9.1.2功能實(shí)現(xiàn)/221
9.1.3窗口實(shí)現(xiàn)/223
9.1.4程序代碼/226
9.22048游戲/236
9.2.1游戲介紹/236
9.2.2功能實(shí)現(xiàn)/237
9.2.3界面顯示/240
9.2.4程序代碼/244