本書(shū)是一本實(shí)踐型教材,書(shū)中從實(shí)用的角度出發(fā),結(jié)合具體的應(yīng)用實(shí)例,將C語(yǔ)言程序設(shè)計(jì)中使用的基本數(shù)據(jù)結(jié)構(gòu)、算法和技巧進(jìn)行了綜合,并對(duì)如何運(yùn)用C語(yǔ)言進(jìn)行繪圖做了介紹,有助于進(jìn)一步提高學(xué)生程序設(shè)計(jì)能力。全書(shū)共分三個(gè)部分: 基本數(shù)據(jù)結(jié)構(gòu)應(yīng)用,綜合應(yīng)用,圖形界面部分;共有12個(gè)訓(xùn)練題目。
本書(shū)適合作為普通高等院;?qū)Τ绦蛟O(shè)計(jì)要求較高的高職高專(zhuān)院校C語(yǔ)言課程設(shè)計(jì)、實(shí)訓(xùn)或?qū)嵙?xí)的指導(dǎo)書(shū),也可作為C語(yǔ)言程序設(shè)計(jì)綜合性實(shí)驗(yàn)的參考書(shū)。
"C語(yǔ)言程序設(shè)計(jì)”是一門(mén)十分重要的基礎(chǔ)課程,但作為第一語(yǔ)言講授時(shí),主要講解的是語(yǔ)言本身的語(yǔ)句、語(yǔ)法規(guī)定和程序設(shè)計(jì)最基本的算法(如數(shù)據(jù)單元交換、迭代法求方程的根、常用的幾種排序法等),大多數(shù)學(xué)生僅能使用高級(jí)語(yǔ)言的基本結(jié)構(gòu)編寫(xiě)幾十行的程序代碼,而對(duì)如何分析問(wèn)題、解決問(wèn)題以及編程思想掌握得非常有限,學(xué)生的編程能力、上機(jī)調(diào)試程序的能力訓(xùn)練得較少。這樣就不能夠滿(mǎn)足后續(xù)課程的編程能力需求,雖然學(xué)習(xí)了程序設(shè)計(jì)語(yǔ)言,卻不能解決問(wèn)題。
目前許多院校都在做教學(xué)模式、課程體系的改革,在實(shí)踐課程中增加了C語(yǔ)言程序設(shè)計(jì)實(shí)習(xí)/實(shí)訓(xùn)或C語(yǔ)言課程設(shè)計(jì),或在課程的教學(xué)中增大上機(jī)實(shí)踐學(xué)時(shí),而這類(lèi)教材和參考書(shū)較少,正因如此,作者在總結(jié)多年授課經(jīng)驗(yàn)的基礎(chǔ)上編寫(xiě)了這本教材。
本書(shū)分為三部分,共12個(gè)訓(xùn)練題目,從項(xiàng)目的概述、主要功能、主要知識(shí)點(diǎn)、主要算法、設(shè)計(jì)思想等方面進(jìn)行描述。第一部分主要是對(duì)C語(yǔ)言的基本數(shù)據(jù)結(jié)構(gòu)和基本算法進(jìn)行訓(xùn)練,介紹了萬(wàn)年歷、雙向鏈表、完全二叉樹(shù)以及簡(jiǎn)單的計(jì)算機(jī)游戲程序?qū)崿F(xiàn)的基本算法,同時(shí)重點(diǎn)訓(xùn)練有關(guān)函數(shù)、結(jié)構(gòu)體、鏈表的基本操作;第二部分主要是針對(duì)C語(yǔ)言中結(jié)構(gòu)體與文件數(shù)據(jù)結(jié)構(gòu)的綜合應(yīng)用,用其實(shí)現(xiàn)一些小型的信息管理系統(tǒng),如通訊錄、學(xué)生成績(jī)管理系統(tǒng)、學(xué)生檔案管理系統(tǒng)等;第三部分主要介紹了C語(yǔ)言在Turbo C環(huán)境下繪制圖形界面的操作方法和常用函數(shù),這部分內(nèi)容一般在C語(yǔ)言的課堂教學(xué)中沒(méi)有涉及,并且編程代碼與具體的開(kāi)發(fā)環(huán)境密切相關(guān),但對(duì)于同學(xué)了解圖形界面的程序開(kāi)發(fā)很有幫助,書(shū)中以窗口圖形界面設(shè)計(jì)、具體圖形的繪制、五子棋游戲和俄羅斯方塊游戲的實(shí)現(xiàn)為例,講解圖形界面繪制程序的基本流程。
本書(shū)由多年從事計(jì)算機(jī)教育的一線教師編寫(xiě),內(nèi)容已在我校C語(yǔ)言課程設(shè)計(jì)教學(xué)中使用過(guò),在教學(xué)實(shí)踐中得到了很好的應(yīng)用,同時(shí)也得到任課教師趙建輝、范江波和部分同學(xué)很好的修改建議,此外研究生胡家興、趙蕊、黃海和吳秀也做了大量的書(shū)稿整理工作,在此一并感謝他們所付出的勞動(dòng)。
由于作者的水平有限,書(shū)中難免有不妥之處,歡迎讀者多提寶貴意見(jiàn)。
作 者 2009年5月
第1部分 基本數(shù)據(jù)結(jié)構(gòu)應(yīng)用
實(shí)訓(xùn)1 萬(wàn)年歷2 1.1 系統(tǒng)概要2
1.2 基本功能要求2
1.3 主要知識(shí)點(diǎn)2
1.4 系統(tǒng)設(shè)計(jì)思路3
1.5 部分程序代碼5
實(shí)訓(xùn)2 雙向鏈表功能應(yīng)用10
2.1 系統(tǒng)概要10
2.2 基本功能要求10
2.3 主要知識(shí)點(diǎn)10
2.3.1 基本概念10
2.3.2 建立動(dòng)態(tài)鏈表11
2.3.3 鏈表的輸出12
2.3.4 鏈表的刪除操作13
2.3.5 鏈表的插入操作14
2.3.6 雙向鏈表15
2.4 系統(tǒng)設(shè)計(jì)思路15
2.5 部分程序代碼16
實(shí)訓(xùn)3 完全二叉樹(shù)19
3.1 系統(tǒng)概要19
3.2 基本功能要求19
3.3 主要知識(shí)點(diǎn)19
3.4 系統(tǒng)設(shè)計(jì)思路21
3.5 部分程序代碼23
實(shí)訓(xùn)4 龜兔賽跑30
4.1 系統(tǒng)概要30
4.2 基本功能要求30
4.3 主要知識(shí)點(diǎn)30
4.4 系統(tǒng)設(shè)計(jì)思路32
4.5 部分程序代碼33
實(shí)訓(xùn)5 人機(jī)蘋(píng)果大戰(zhàn)36
5.1 系統(tǒng)概要36
5.2 基本功能要求36
5.3 主要知識(shí)點(diǎn)36
5.4 系統(tǒng)設(shè)計(jì)思路37
5.5 部分程序代碼37
第2部分 綜 合 應(yīng) 用
實(shí)訓(xùn)6 通訊錄44 6.1 系統(tǒng)概要44
6.2 基本功能要求44
6.3 主要知識(shí)點(diǎn)44
6.4 系統(tǒng)設(shè)計(jì)思路50
6.5 部分程序代碼50
實(shí)訓(xùn)7 學(xué)生成績(jī)管理系統(tǒng)57
7.1 系統(tǒng)概述57
7.2 基本功能要求57
7.3 主要知識(shí)點(diǎn)57
7.4 系統(tǒng)程序結(jié)構(gòu)58
7.5 部分程序代碼58
實(shí)訓(xùn)8 學(xué)生檔案管理系統(tǒng)70
8.1 系統(tǒng)概要70
8.2 基本功能要求70
8.3 主要知識(shí)點(diǎn)70
8.4 系統(tǒng)設(shè)計(jì)思路71
8.4.1 系統(tǒng)模塊劃分71
8.4.2 系統(tǒng)數(shù)據(jù)結(jié)構(gòu)73
8.4.3 函數(shù)設(shè)計(jì)73
8.5 部分程序代碼74
第3部分 圖形界面部分
實(shí)訓(xùn)9 簡(jiǎn)單的C語(yǔ)言圖形編程86 9.1 系統(tǒng)概要86
9.2 基本功能要求86
9.3 主要知識(shí)點(diǎn)86
9.3.1 字符屏幕函數(shù)86
9.3.2 圖形函數(shù)92
9.4 系統(tǒng)程序結(jié)構(gòu)及主要算法103
9.5 系統(tǒng)主要函數(shù)源程序代碼103
實(shí)訓(xùn)10 C語(yǔ)言圖形界面編程110
10.1 系統(tǒng)概要110
10.2 基本功能要求110
10.3 主要知識(shí)點(diǎn)110
10.4 系統(tǒng)設(shè)計(jì)思路112
10.4.1 系統(tǒng)運(yùn)行流程圖112
10.4.2 數(shù)據(jù)結(jié)構(gòu)和函數(shù)的設(shè)計(jì)112
10.5 主要函數(shù)代碼113
實(shí)訓(xùn)11 五子棋游戲121
11.1 系統(tǒng)概要121
11.2 基本功能要求121
11.2.1 功能121
11.2.2 基本功能模塊描述121
11.3 主要知識(shí)點(diǎn)124
11.4 系統(tǒng)設(shè)計(jì)思路125
11.5 程序偽代碼126
實(shí)訓(xùn)12 俄羅斯方塊游戲程序136
12.1 系統(tǒng)概要136
12.2 基本功能要求136
12.3 主要知識(shí)點(diǎn)136
12.4 系統(tǒng)設(shè)計(jì)思想138
12.5 部分程序代碼140
參考文獻(xiàn)144