C++面向?qū)ο蟪绦蛟O(shè)計(jì)實(shí)驗(yàn)和課程設(shè)計(jì)教程
定 價(jià):22 元
- 作者:游洪躍、伍良富、王景熙
- 出版時(shí)間:2009/2/1
- ISBN:9787302192350
- 出 版 社:清華大學(xué)出版社
- 中圖法分類:TP312
- 頁(yè)碼:
- 紙張:13
- 版次:1
- 開本:16開
本書結(jié)合C++面向?qū)ο蟪绦蛟O(shè)計(jì)的特點(diǎn)以及初學(xué)者學(xué)習(xí)的難點(diǎn),構(gòu)建了實(shí)驗(yàn)、課程設(shè)計(jì)案例與課程設(shè)計(jì)項(xiàng)目,所有程序都在Visual C++ 6.0、Visual C++ 2005、Visual C++ 2005 Express、Dev-C++和MinGW Developer Studio開發(fā)環(huán)境中進(jìn)行了嚴(yán)格的測(cè)試,在作者教學(xué)網(wǎng)站上提供了大量的教學(xué)支持內(nèi)容。
全書共分為3個(gè)部分,第I部分包括8個(gè)實(shí)驗(yàn),每個(gè)實(shí)驗(yàn)都包括實(shí)驗(yàn)?zāi)康、?shí)驗(yàn)內(nèi)容、實(shí)驗(yàn)提示與實(shí)驗(yàn)步驟。第II部分為課程設(shè)計(jì)案例,包括了9個(gè)課程設(shè)計(jì)案例,每個(gè)案例都包括目的與要求、工具與準(zhǔn)備工作、分析、實(shí)現(xiàn)步驟、測(cè)試與結(jié)論,以及思考與感悟。第III部分為課程設(shè)計(jì)項(xiàng)目,共包含9個(gè)項(xiàng)目,這些項(xiàng)目難易程度不同,簡(jiǎn)單的項(xiàng)目可以一個(gè)人單獨(dú)完成,復(fù)雜的項(xiàng)目可由幾個(gè)人共同完成,每個(gè)項(xiàng)目都給出了目的與要求,以及實(shí)現(xiàn)提示,讀者可參考課程設(shè)計(jì)案例與提示實(shí)現(xiàn)課程設(shè)計(jì),讀者應(yīng)在完成基本任務(wù)的前提下,對(duì)程序加以改進(jìn)和提高。
通過(guò)本書的學(xué)習(xí),讀者能迅速提高C++面向?qū)ο蟪绦蛟O(shè)計(jì)的能力,經(jīng)過(guò)適當(dāng)?shù)倪x擇,本書可作為C++面向?qū)ο蟪绦蛟O(shè)計(jì)課程實(shí)驗(yàn)與課程設(shè)計(jì)的教材,本書可作為高等院校計(jì)算機(jī)及相關(guān)專業(yè)的教材,也可供其他從事軟件開發(fā)工作的讀者參考使用,本書不但適合高等學(xué)校學(xué)生使用,同時(shí)也適合初學(xué)程序設(shè)計(jì)者或有一定編程實(shí)踐基礎(chǔ)、希望突破編程難點(diǎn)的讀者作為自學(xué)教材。
C++面向?qū)ο蟪绦蛟O(shè)計(jì)是高等學(xué)校普遍開設(shè)的一門計(jì)算機(jī)基礎(chǔ)課程,C++面向?qū)ο蟪绦蛟O(shè)計(jì)應(yīng)用非常廣泛,實(shí)用性很強(qiáng),在學(xué)習(xí)時(shí)不僅需要掌握C++言的編程規(guī)則和方法,更重要的是要掌握如何應(yīng)用這些規(guī)則和方法。在理論學(xué)習(xí)的同時(shí)加強(qiáng)實(shí)踐訓(xùn)練,才能達(dá)到事半功倍的效果。本書作者一直從事C++面向程序設(shè)計(jì)的一線教學(xué)、研究和軟件開發(fā)工作,理解初學(xué)者學(xué)習(xí)C++語(yǔ)言的困難,積累并總結(jié)了豐富的C++教學(xué)的經(jīng)驗(yàn),為了對(duì)學(xué)習(xí)C++面向?qū)ο蟪绦蛟O(shè)計(jì)的讀者有所幫助和指導(dǎo),特編寫此書。
全書共分為3個(gè)部分,第I部分為實(shí)驗(yàn),第II部分為課程設(shè)計(jì)案例,第III部分為課程設(shè)計(jì)項(xiàng)目。
第I部分包括8個(gè)實(shí)驗(yàn),包含了C++語(yǔ)法知識(shí)點(diǎn)的內(nèi)容,有的實(shí)驗(yàn)比例簡(jiǎn)單(例如實(shí)驗(yàn)1簡(jiǎn)單程序開發(fā)),有的實(shí)驗(yàn)包含了比較綜合的語(yǔ)法點(diǎn)(例如實(shí)驗(yàn)5虛函數(shù)與多態(tài)性的第6題包含類、繼承和抽象類等內(nèi)容),每個(gè)實(shí)驗(yàn)都包括實(shí)驗(yàn)?zāi)康、?shí)驗(yàn)內(nèi)容、實(shí)驗(yàn)提示與實(shí)驗(yàn)步驟。根據(jù)作者的教學(xué)經(jīng)驗(yàn),初學(xué)者通常對(duì)于應(yīng)用C++語(yǔ)言編寫程序感到無(wú)從下手,考試時(shí)這部分丟分較多,為了對(duì)讀者所有幫助,實(shí)驗(yàn)內(nèi)容一般都包含有閱讀程序與調(diào)試程序,程序改錯(cuò),程序填空與編寫程序方面的題目,這些題目也是C++面向?qū)ο蟪绦蛟O(shè)計(jì)考試要涉及的題型,教師可參考其中的題目作適當(dāng)修改設(shè)計(jì)考試題,因此做好實(shí)驗(yàn)對(duì)考試有極大的幫助;實(shí)驗(yàn)提示信息中有編程提示、重要內(nèi)容提示或者出錯(cuò)信息提示;實(shí)驗(yàn)步驟以一個(gè)實(shí)際題目為例給出具體而實(shí)用的指導(dǎo),以便讓初學(xué)者不至面對(duì)實(shí)驗(yàn)題目而束手無(wú)策。
第II部分為課程設(shè)計(jì)案例。課程設(shè)計(jì)是C++語(yǔ)言程序設(shè)計(jì)的一個(gè)重要環(huán)節(jié),與實(shí)驗(yàn)相比,課程設(shè)計(jì)通常是以接近實(shí)際項(xiàng)目的訓(xùn)練,可以在學(xué)習(xí)理論知識(shí)的同時(shí)進(jìn)一步提高解決實(shí)際問(wèn)題的能力,強(qiáng)化綜合應(yīng)用能力,擴(kuò)充知識(shí),開闊視野。課程設(shè)計(jì)的項(xiàng)目都有一定的難度,初學(xué)者面對(duì)課程設(shè)計(jì)項(xiàng)目通常有不知所措的感覺,為此特設(shè)計(jì)9個(gè)課程設(shè)計(jì)案例,每個(gè)案例都包括目的與要求、工具與準(zhǔn)備工作、分析、實(shí)現(xiàn)步驟、測(cè)試與結(jié)論以及思考與感悟。讀者應(yīng)認(rèn)真閱讀每個(gè)案例,最好多讀幾遍,這樣效果更好,不斷思考每個(gè)案例的實(shí)現(xiàn)方法,同時(shí)也應(yīng)參考實(shí)現(xiàn)步驟上機(jī)實(shí)現(xiàn)每個(gè)案例。課程設(shè)計(jì)案例內(nèi)容豐富,包括了編程工具的項(xiàng)目(例如實(shí)用程序工具包),讀者感興趣的項(xiàng)目(例如紙牌游戲-- "21點(diǎn)”) ,讀者感興趣但感到無(wú)從下手的程序(例如無(wú)符號(hào)大整數(shù)計(jì)算器),解決實(shí)際問(wèn)題的項(xiàng)目(例如電話號(hào)碼簿), C++的綜合應(yīng)用的項(xiàng)目(例如公司員工管理,包含了類,抽象類,文件管理等內(nèi)容),還包括了對(duì)語(yǔ)言增加的新的功能以及完善C++編譯器來(lái)加入實(shí)驗(yàn)性結(jié)構(gòu)的程序(例如擴(kuò)展C++) ,通過(guò)學(xué)習(xí)對(duì)培養(yǎng)讀者面向?qū)ο蟪绦蛟O(shè)計(jì)應(yīng)用能力方面大有裨益,為將來(lái)從事軟件開發(fā)打下良好的基礎(chǔ)。
第III部分為課程設(shè)計(jì)項(xiàng)目,課程設(shè)計(jì)是C++語(yǔ)言程序設(shè)計(jì)的一個(gè)重要環(huán)節(jié),通過(guò)課程設(shè)計(jì)的綜合訓(xùn)練,可以在學(xué)習(xí)理論知識(shí)的同時(shí)進(jìn)一步提高解決實(shí)際問(wèn)題的能力,強(qiáng)化綜合應(yīng)用能力,擴(kuò)充知識(shí),開闊視野,本書課程設(shè)計(jì)部分共有9個(gè)項(xiàng)目,這些項(xiàng)目難易程度不同,簡(jiǎn)單的項(xiàng)目可以一個(gè)人單獨(dú)完成,復(fù)雜的項(xiàng)目可由幾個(gè)人共同完成,大部分項(xiàng)目都容易引起讀者的興趣(例如設(shè)計(jì)萬(wàn)年歷、石頭-剪刀-布游戲),有些項(xiàng)目是對(duì)課程設(shè)計(jì)案例項(xiàng)目的進(jìn)一步完善(例如擴(kuò)展C++新特征),有的項(xiàng)目與課程設(shè)計(jì)案例項(xiàng)目設(shè)計(jì)方法相似(例如銷售公司員工管理)。每個(gè)項(xiàng)目都給出了目的與要求,以及實(shí)現(xiàn)提示,讀者可參考課程設(shè)計(jì)案例與提示實(shí)現(xiàn)課程設(shè)計(jì)。
本書討論的程序都在Visual C++ 6.0、Visual C++ 2005、Visual C++ 2005 Express、Dev-C++和MinGW Developer Studio開發(fā)環(huán)境中進(jìn)行了嚴(yán)格測(cè)試,并向教師提供了完整的程序,讀者可根據(jù)自已的理解,選擇熟悉的開發(fā)環(huán)境,開發(fā)出功能更強(qiáng)的程序。
對(duì)于C++的編譯器的問(wèn)題,在C++之外的任何編程語(yǔ)言中,編譯器都沒有受到過(guò)如此重視。這是因?yàn)镃++是一門非常復(fù)雜的語(yǔ)言,以至于編譯器也難以構(gòu)造,常用的編譯器不能完全符合C++標(biāo)準(zhǔn),下面介紹一些常用的優(yōu)秀C++編譯器。
(1) Visual C++編譯器。由微軟開發(fā),現(xiàn)在主要流行于Visual C++ 6.0、Visual C++ 2005以及Visual C++ 2005 Express,特點(diǎn)是集成開發(fā)環(huán)境用戶界面友好,信息提示準(zhǔn)確,調(diào)試方便,對(duì)模板支持最完善;Visual C++ 6.0對(duì)硬件環(huán)境要求低,現(xiàn)在安裝計(jì)算機(jī)最多,但對(duì)標(biāo)準(zhǔn)C++兼容只有83.43%, Visual C++ 2005與Visual C++ 2005 Express在軟件提示信息上做了進(jìn)一步的優(yōu)化與改進(jìn),并且對(duì)標(biāo)準(zhǔn)C++兼容達(dá)到了98%以上的程度,但對(duì)硬件的要求較高;還有Visual C++ 2005 Express是一種輕量級(jí)的Visual C++軟件,易于使用。對(duì)于編程愛好者、學(xué)生和初學(xué)者來(lái)說(shuō)是很好的編程工具,微軟在2006年4月22日正式宣布 Visual Studio 2005 Express版永久免費(fèi)。
(2) GCC編譯器。著名的開源C++編譯器。它是類UNIX操作系統(tǒng)(例如Linux)下編寫C++程序的首選,有非常好的可移植性,可以在非常廣泛的平臺(tái)上使用,也是編寫跨平臺(tái)、嵌入式程序很好的選擇。GCC 3.3與標(biāo)準(zhǔn)C++兼容度大概能夠達(dá)到96.15%,F(xiàn)有已有一些移植在Windows環(huán)境下使用GCC編譯器的IDE(集成開發(fā)環(huán)境),例如Dev-C++與MinGW Developer Studio,其中Dev-C++是能夠讓GCC在Windows下運(yùn)行的集成開發(fā)環(huán)境,提供了與專業(yè)IDE相媲美的語(yǔ)法高亮、代碼提示,調(diào)試等功能;MinGW Developer Studio是跨平臺(tái)下的GCC集成開發(fā)環(huán)境。目前支持 Windows、Linux和 FreeBSD;根據(jù)作者的實(shí)際使用,感覺使用GCC編譯器的IDE錯(cuò)誤信息提示的智能較低,還有就是對(duì)模板支持較差,對(duì)語(yǔ)法檢查較嚴(yán)格,在Visual C++編譯器中編譯通過(guò)的程序可能在GCC編譯器的IDE中還會(huì)顯示有錯(cuò)誤信息。
本書所有程序都同時(shí)在Visual C++ 6.0、Visual C++ 2005、Visual C++ 2005 Express、Dev-C++和MinGW Developer Studio中通過(guò)測(cè)試。讀者可根據(jù)實(shí)際情況選擇適當(dāng)?shù)木幾g器,建議選擇Visual C++ 6.0,在附錄B中還詳細(xì)介紹了Visual C++ 6.0、Visual C++ 2005、Visual C++ 2005 Express、Dev-C++和MinGW Developer Studio的使用方法。
為滿足不同層次的教學(xué)需求,本教材使用了分層的思想,分層方法如下:沒加有星號(hào)(*)的部分是基本內(nèi)容,適合所有讀者學(xué)習(xí);加有星號(hào)(*)的部分適合計(jì)算機(jī)專業(yè)的讀者深入學(xué)習(xí)的選學(xué)部分;加有雙星號(hào)(**)的部分適合于感興趣的同學(xué)研究,尤其適合于那些有志于ACM競(jìng)賽的讀者加以深入研究。作者為本書提供了全面的教學(xué)支持,如果在教學(xué)或?qū)W習(xí)過(guò)程中發(fā)現(xiàn)與本書有關(guān)的任何問(wèn)題都可以與作者聯(lián)系:youhongyue@cs.scu.edu.cn,作者將盡力滿足各位的要求,并可能將解答公布在作者的教學(xué)網(wǎng)站http://cs.scu.edu.cn/~youhongyue上。在教學(xué)網(wǎng)站上還將提供如下內(nèi)容。
① 向教師提供所有實(shí)驗(yàn)與課程設(shè)計(jì)在Visual C++ 6.0、Visual C++ 2005、Visual C++ 2005 Express、Dev-C++和MinGW Developer Studio開發(fā)環(huán)境中的具體程序?qū)崿F(xiàn),今后還會(huì)提供當(dāng)時(shí)流行的C++開發(fā)環(huán)境的具體程序?qū)崿F(xiàn),對(duì)一般讀者將在每學(xué)期的期末在主頁(yè)網(wǎng)上公布解壓口令。
② 提供所有課程設(shè)計(jì)案例在Visual C++ 6.0、Visual C++ 2005、Visual C++ 2005Express、Dev-C++和MinGW Developer Studio開發(fā)環(huán)境中的具體程序?qū)崿F(xiàn),今后還會(huì)提供當(dāng)時(shí)流行的C++開發(fā)環(huán)境的具體程序?qū)崿F(xiàn)。
③ 高級(jí)語(yǔ)言程序設(shè)計(jì)問(wèn)答專欄。
④ 提供本書作者開發(fā)的軟件包。
⑤ 提供全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)C++上機(jī)考試輔導(dǎo)。
⑥ 提供C++面向?qū)ο蟪绦蛟O(shè)計(jì)相關(guān)的其他資料(例如Dev-C++與MinGW Developer Studio軟件,流行免費(fèi)C++編譯器的下載網(wǎng)址).
希望各位讀者能夠抽出寶貴的時(shí)間將對(duì)本教材的建議或意見,當(dāng)然也可以發(fā)表對(duì)國(guó)內(nèi)外的C++面向程序設(shè)計(jì)課程教學(xué)的任何意見寄給作者,你的意見將是我們?cè)侔嫘抻喗滩牡闹匾獏⒖,作者將發(fā)自內(nèi)心地感謝這些讀者。
鄒昌文、王文昌、周焯華、胡開文、沈潔、周德華、歐陽(yáng)、文濤、文芝明和文波等人做了大量的工作,包括調(diào)試程序,提供參考資料,并參加本書部分章節(jié)的編寫工作。
本書的出版要感謝清華大學(xué)出版社各位編輯及評(píng)審專家,他們?yōu)楸緯某霭鎯A注了大量熱情,他們具有前瞻性的眼光才讓讀者有機(jī)會(huì)看到本書。
盡管作者有良好而負(fù)責(zé)任的嚴(yán)格態(tài)度,并盡了最大努力,但由于作者水平有限,書中難免有不妥之處,因此,敬請(qǐng)各位讀者不吝賜教,以便作者有一個(gè)提高的機(jī)會(huì),并在再版時(shí)盡力采用讀者的意見,提高本書的質(zhì)量。
作者2009年2月
第I部分 實(shí)驗(yàn)1
實(shí)驗(yàn)1 簡(jiǎn)單程序開發(fā)1
1.1 實(shí)驗(yàn)?zāi)康?
1.2 實(shí)驗(yàn)工具與準(zhǔn)備工作1
1.3 實(shí)驗(yàn)內(nèi)容1
1.4 實(shí)驗(yàn)提示4
1.5 實(shí)驗(yàn)步驟4
1.6 測(cè)試與結(jié)論5
實(shí)驗(yàn)2 類和對(duì)象5
2.1 實(shí)驗(yàn)?zāi)康?
2.2 實(shí)驗(yàn)工具與準(zhǔn)備工作6
2.3 實(shí)驗(yàn)內(nèi)容6
2.4 實(shí)驗(yàn)提示9
2.5 實(shí)驗(yàn)步驟10
2.6 測(cè)試與結(jié)論12
實(shí)驗(yàn)3 繼承與派生12
3.1 實(shí)驗(yàn)?zāi)康?2
3.2 實(shí)驗(yàn)工具與準(zhǔn)備工作12
3.3 實(shí)驗(yàn)內(nèi)容12
3.4 實(shí)驗(yàn)提示17
3.5 實(shí)驗(yàn)步驟18
3.6 測(cè)試與結(jié)論20
實(shí)驗(yàn)4 函數(shù)重載與運(yùn)算符重載21
4.1 實(shí)驗(yàn)?zāi)康?1
4.2 實(shí)驗(yàn)工具與準(zhǔn)備工作21
4.3 實(shí)驗(yàn)內(nèi)容21
4.4 實(shí)驗(yàn)提示24
4.5 實(shí)驗(yàn)步驟25
4.6 測(cè)試與結(jié)論28
實(shí)驗(yàn)5 虛函數(shù)與多態(tài)性29
5.1 實(shí)驗(yàn)?zāi)康?9
5.2 實(shí)驗(yàn)工具與準(zhǔn)備工作29
5.3 實(shí)驗(yàn)內(nèi)容29
5.4 實(shí)驗(yàn)提示33
5.5 實(shí)驗(yàn)步驟33
5.6 測(cè)試與結(jié)論36
實(shí)驗(yàn)6 C++流和文件流36
6.1 實(shí)驗(yàn)?zāi)康?6
6.2 實(shí)驗(yàn)工具與準(zhǔn)備工作36
6.3 實(shí)驗(yàn)內(nèi)容36
6.4 實(shí)驗(yàn)提示40
6.5 實(shí)驗(yàn)步驟40
6.6 測(cè)試與結(jié)論43
實(shí)驗(yàn)7 模板43
7.1 實(shí)驗(yàn)?zāi)康?3
7.2 實(shí)驗(yàn)工具與準(zhǔn)備工作43
7.3 實(shí)驗(yàn)內(nèi)容43
7.4 實(shí)驗(yàn)提示46
7.5 實(shí)驗(yàn)步驟47
7.6 測(cè)試與結(jié)論49
實(shí)驗(yàn)8 類型轉(zhuǎn)換、異常處理和命名空間50
8.1 實(shí)驗(yàn)?zāi)康?0
8.2 實(shí)驗(yàn)工具與準(zhǔn)備工作50
8.3 實(shí)驗(yàn)內(nèi)容50
8.4 實(shí)驗(yàn)提示53
8.5 實(shí)驗(yàn)步驟54
8.6 測(cè)試與結(jié)論56第II部分 課程設(shè)計(jì)案例57
案例1 實(shí)用程序工具包57
1.1 目的與要求57
1.2 工具與準(zhǔn)備工作58
1.3 分析58
1.4 實(shí)現(xiàn)步驟62
1.5 測(cè)試與結(jié)論67
1.6 思考與感悟67
案例2 "21點(diǎn)”紙牌游戲68
2.1 目的與要求68
2.2 工具與準(zhǔn)備工作68
2.3 分析69
2.4 實(shí)現(xiàn)步驟70
2.5 測(cè)試與結(jié)論76
2.6 思考與感悟77
案例3 皇后問(wèn)題77
3.1 目的與要求77
3.2 工具與準(zhǔn)備工作77
3.3 分析77
3.4 實(shí)現(xiàn)步驟80
3.5 測(cè)試與結(jié)論83
3.6 思考與感悟85
案例4 分?jǐn)?shù)計(jì)算器85
4.1 目的與要求85
4.2 工具與準(zhǔn)備工作85
4.3 分析85
4.4 實(shí)現(xiàn)步驟87
4.5 測(cè)試與結(jié)論92
4.6 思考與感悟92
案例5 無(wú)符號(hào)大整數(shù)計(jì)算器92
5.1 目的與要求92
5.2 工具與準(zhǔn)備工作93
5.3 分析93
5.4 實(shí)現(xiàn)步驟97
5.5 測(cè)試與結(jié)論104
5.6 思考與感悟104
案例6 電話號(hào)碼簿105
6.1 目的與要求105
6.2 工具與準(zhǔn)備工作105
6.3 分析105
6.4 實(shí)現(xiàn)步驟108
6.5 測(cè)試與結(jié)論114
6.6 思考與感悟116
案例7 公司員工管理116
7.1 目的與要求116
7.2 工具與準(zhǔn)備工作117
7.3 分析117
7.4 實(shí)現(xiàn)步驟118
7.5 測(cè)試與結(jié)論129
7.6 思考與感悟132
案例8 擴(kuò)展C++132
8.1 目的與要求132
8.2 工具與準(zhǔn)備工作134
8.3 分析134
8.4 實(shí)現(xiàn)步驟140
8.5 測(cè)試與結(jié)論152
8.6 思考與感悟154第III部分 課程設(shè)計(jì)項(xiàng)目155
項(xiàng)目1 石頭-剪刀-布游戲155
1.1 目的與要求155
1.2 實(shí)現(xiàn)提示155
項(xiàng)目2 骰子游戲156
2.1 目的與要求156
2.2 實(shí)現(xiàn)提示156
項(xiàng)目3 武士巡邏問(wèn)題157
3.1 目的與要求157
3.2 實(shí)現(xiàn)提示157
項(xiàng)目4 復(fù)數(shù)計(jì)算器157
4.1 目的與要求157
4.2 實(shí)現(xiàn)提示158
項(xiàng)目5 帶符號(hào)大整數(shù)計(jì)算器158
5.1 目的與要求158
5.2 實(shí)現(xiàn)提示158
項(xiàng)目6 萬(wàn)年歷159
6.1 目的與要求159
6.2 實(shí)現(xiàn)提示161
項(xiàng)目7 音像店162
7.1 目的與要求162
7.2 實(shí)現(xiàn)提示163
項(xiàng)目8 銷售公司員工管理163
8.1 目的與要求163
8.2 實(shí)現(xiàn)提示163
項(xiàng)目9 擴(kuò)展C++新特征163
9.1 目的與要求163
9.2 實(shí)現(xiàn)提示164附錄A 本書的軟件包165附錄B 流行C++編譯器的使用方法166
B.1 Visual C++ 6.0166
B.2 Visual C++ 2005171
B.3 Visual C++ 2005 Express177
B.4 Dev-C++184
B.5 MinGW Developer Studio189附錄C 實(shí)驗(yàn)報(bào)告格式195附錄D 課程設(shè)計(jì)報(bào)告格式196參考文獻(xiàn)197