定 價(jià):18 元
叢書名:普通高校本科計(jì)算機(jī)專業(yè)特色教材精選·算法與程序設(shè)計(jì)
- 作者:朱金付、柏毅、鄭雪清、何鐵軍等
- 出版時(shí)間:2009/9/1
- ISBN:9787302200383
- 出 版 社:清華大學(xué)出版社
- 中圖法分類:TP312
- 頁(yè)碼:
- 紙張:膠版紙
- 版次:1
- 開(kāi)本:16
本書是為學(xué)習(xí)程序設(shè)計(jì)語(yǔ)言C++的讀者準(zhǔn)備的,與同期出版的《C++程序設(shè)計(jì)》一書配套使用,也可以與其他介紹C++的教材配套使用。本書旨在引導(dǎo)學(xué)生如何從課題(題目)出發(fā),經(jīng)過(guò)思考分析,設(shè)計(jì)出符合要求的C++程序,并且上機(jī)調(diào)試通過(guò)。書中還介紹了在Visual C++ 6.0環(huán)境下調(diào)試程序的方法和技巧。全書設(shè)計(jì)了25個(gè)實(shí)驗(yàn),每個(gè)實(shí)驗(yàn)分為三個(gè)部分:概述、案例和實(shí)驗(yàn)指導(dǎo)。概述部分簡(jiǎn)述實(shí)驗(yàn)內(nèi)容和實(shí)驗(yàn)?zāi)康。案例部分詳?xì)描述了完整的課題,包括課題內(nèi)容、課題分析、完整的源代碼和對(duì)本課題的思考。每個(gè)實(shí)驗(yàn)的實(shí)驗(yàn)指導(dǎo)部分設(shè)計(jì)了2~3個(gè)課題。這些課題的難度,所代表的概念、技巧或算法各不相同,供不同能力的讀者選做。每個(gè)實(shí)驗(yàn)的案例和讀者課題都是經(jīng)過(guò)精心設(shè)計(jì)的,所構(gòu)思的對(duì)課題的分析和思考,引導(dǎo)讀者從不同的角度去審視課題,從而設(shè)計(jì)出不同的、各具特色的程序。
本書是為沒(méi)有學(xué)習(xí)過(guò)程序設(shè)計(jì)語(yǔ)言的讀者而編寫的。可以作為大專院校理工科學(xué)生學(xué)習(xí)C++語(yǔ)言的教材,也可以作為計(jì)算機(jī)二級(jí)考試的參考書
計(jì)算機(jī)語(yǔ)言是現(xiàn)代大學(xué)生的必修課。C++是一種重要的計(jì)算機(jī)語(yǔ)言,它特別適合開(kāi)發(fā)大型系統(tǒng)程序,它的機(jī)制獨(dú)特,功能強(qiáng)大,高效而實(shí)用,引導(dǎo)著程序設(shè)計(jì)的潮流。在計(jì)算機(jī)基礎(chǔ)教學(xué)領(lǐng)域,C++教學(xué)蓬勃發(fā)展,大有迅速取代C語(yǔ)言的勢(shì)頭。
Windows是當(dāng)前最流行的程序設(shè)計(jì)工作平臺(tái),而Microsoft Visual C++是最常用的Windows平臺(tái)下的C++程序設(shè)計(jì)集成環(huán)境之一。本書中的實(shí)驗(yàn)就是以Visual C++為平臺(tái)展開(kāi)的,當(dāng)然多數(shù)課題實(shí)驗(yàn)也可以在其他C++環(huán)境下進(jìn)行。
本書作者都是從事高校計(jì)算機(jī)語(yǔ)言教學(xué)的專家,也有著大型軟件設(shè)計(jì)的經(jīng)驗(yàn)。對(duì)高等教育熟悉,對(duì)C++的深刻理解,對(duì)大學(xué)生心理、思維習(xí)慣、學(xué)習(xí)困惑的了解,是編寫這本書的基礎(chǔ)。學(xué)生在學(xué)習(xí)C++課程的過(guò)程中,聽(tīng)課一般聽(tīng)得懂,課后看書也可以看懂,但是動(dòng)手編程時(shí),往往無(wú)從下手,不知所措。很多參加等級(jí)考試的學(xué)生未能通過(guò),都是因?yàn)闄C(jī)試考不好。編寫本書的目的就是試圖幫助學(xué)生解決這一難題。
全書設(shè)置了25個(gè)實(shí)驗(yàn),涵蓋了《C++程序設(shè)計(jì)》一書從面向過(guò)程到面向?qū)ο蟛糠值娜績(jī)?nèi)容。每個(gè)實(shí)驗(yàn)分為三個(gè)部分:概述、案例和實(shí)驗(yàn)指導(dǎo)。概述部分簡(jiǎn)述實(shí)驗(yàn)內(nèi)容和實(shí)驗(yàn)?zāi)康。案例部分詳?xì)地描述了一個(gè)完整的課題,包括課題內(nèi)容、課題分析、完整的源代碼和對(duì)本課題的思考。案例向讀者展示對(duì)本類課題的認(rèn)識(shí)、分析和思考,力圖使學(xué)生能舉一反三,完成其他課題。每個(gè)實(shí)驗(yàn)的實(shí)驗(yàn)指導(dǎo)部分設(shè)計(jì)了2~3個(gè)讀者課題,由讀者完成。這些課題的難度,所代表的概念、技巧或算法不同,供不同能力的讀者選做。讀者可以做其中之一,也可以全做。書中對(duì)這些課題給出了分析,作為讀者完成這些實(shí)驗(yàn)的引導(dǎo)和啟示。每個(gè)實(shí)驗(yàn)的案例和讀者課題都是經(jīng)過(guò)精心設(shè)計(jì)的,所構(gòu)思的對(duì)課題的分析和思考,引導(dǎo)讀者從不同的角度去審視課題,從而可以設(shè)計(jì)出不同的、各具特色的程序。
本書在第一個(gè)實(shí)驗(yàn)就介紹了VC++的集成環(huán)境,從實(shí)用的角度出發(fā),略去了一些暫時(shí)用不著的部分,減輕了讀者的學(xué)習(xí)負(fù)擔(dān)。在第二個(gè)實(shí)驗(yàn)介紹了VC++環(huán)境下調(diào)試程序的方法和技巧。為了增強(qiáng)學(xué)生的分析能力,書中還專門介紹如何將N-S圖轉(zhuǎn)換為C++程序。
在日常的教學(xué)活動(dòng)和作者自己開(kāi)發(fā)軟件的過(guò)程中,都遇到過(guò)不少實(shí)驗(yàn)問(wèn)題,學(xué)生上機(jī)所出現(xiàn)的問(wèn)題以及存在的困惑,都給了作者許多有益的啟發(fā),也是編寫本書的動(dòng)力。但是本書作者對(duì)C++的實(shí)驗(yàn)的理解尚有局限性,加上本書成書倉(cāng)促,書中難免有許多不足甚至是錯(cuò)誤之處,懇請(qǐng)廣大讀者不吝指正,以利于在再版時(shí)修正。
本書由朱金付、柏毅、鄭雪清、何鐵軍、徐冬梅、朱萍等老師合作編寫。朱敏教授審閱了全書并做了大量的指導(dǎo)工作。
實(shí)驗(yàn)1 熟悉Visual C++下項(xiàng)目文件的創(chuàng)建1
1.1 概述1
1.2 Visual C++集成開(kāi)發(fā)環(huán)境介紹及項(xiàng)目文件的創(chuàng)建1
1.3 實(shí)驗(yàn)指導(dǎo)6
1.3.1 表達(dá)式求解6
1.3.2 整除與求余數(shù)運(yùn)算符6
1.3.3 條件運(yùn)算符7
1.3.4 sizeof運(yùn)算符7
實(shí)驗(yàn)2 選擇結(jié)構(gòu)9
2.1 概述9
2.2 Visual C++ 6.0單步(Step Over)調(diào)試方法9
2.3 案例11
案例1 使用N-S圖分析程序11
案例2 將N-S圖轉(zhuǎn)換成C++程序11
2.4 實(shí)驗(yàn)指導(dǎo)13
2.4.1 變量排序13
2.4.2 三角形類型判別14
2.4.3 貨價(jià)計(jì)算14
實(shí)驗(yàn)3 循環(huán)結(jié)構(gòu)15
3.1 概述15
3.2 Visual C++6.0斷點(diǎn)設(shè)置和變量監(jiān)視15
3.3 案例17
案例3 用遞推法求階乘多項(xiàng)式和17
3.4 實(shí)驗(yàn)指導(dǎo)19
3.4.1 整數(shù)的逆序轉(zhuǎn)換193.4.2 輸出圖形19
3.4.3 猴子吃桃19
3.4.4 判斷降序數(shù)20
實(shí)驗(yàn)4 流程控制綜合實(shí)驗(yàn)21
4.1 概述21
4.2 案例21
案例4 枚舉法示例21
案例5 遞推迭代法22
4.3 實(shí)驗(yàn)指導(dǎo)23
4.3.1 求親密對(duì)數(shù)23
4.3.2 求滿足12+22+32+…+n2<10000的n的最大值23
4.3.3 計(jì)算分?jǐn)?shù)序列之和23
4.3.4 利用級(jí)數(shù)展開(kāi)式計(jì)算cosx24
4.3.5 求方程的解24
C++實(shí)驗(yàn)指導(dǎo)書目錄 實(shí)驗(yàn)5 函數(shù)的定義和調(diào)用25
5.1 概述25
5.2 Visual C++ 6.0的函數(shù)調(diào)試25
5.3 案例27
案例6 求親密對(duì)數(shù)27
5.4 實(shí)驗(yàn)指導(dǎo)28
5.4.1 求400以內(nèi)的素?cái)?shù)28
5.4.2 哥德巴赫猜想28
5.4.3 求質(zhì)因子之和28
5.4.4 變量排序29
實(shí)驗(yàn)6 遞歸函數(shù)31
6.1 概述31
6.2 Visual C++ 6.0的Call Stack31
6.3 案例33
案例7 用遞歸法進(jìn)行進(jìn)制轉(zhuǎn)換33
6.4 實(shí)驗(yàn)指導(dǎo)34
6.4.1 整數(shù)十二進(jìn)制逆序輸出34
6.4.2 遞歸求公約數(shù)34
6.4.3 遞歸求級(jí)數(shù)35
6.4.4 求n階勒讓德多項(xiàng)式的值35
實(shí)驗(yàn)7 編譯預(yù)處理實(shí)驗(yàn)37
7.1 概述37
7.2 Visual C++6.0的多文件組織37
7.3 案例39
案例8 宏定義示例39
7.4 實(shí)驗(yàn)指導(dǎo)39
7.4.1 計(jì)算梯形的面積39
7.4.2 輸出Fibonnaci數(shù)列各項(xiàng)的值40
7.4.3 計(jì)算圓、矩形、梯形的面積40
實(shí)驗(yàn)8 一維數(shù)組的基本處理41
8.1 概述41
8.2 案例41
案例9 根據(jù)期中成績(jī)和期末成績(jī)計(jì)算學(xué)生最終成績(jī)41
8.3 實(shí)驗(yàn)指導(dǎo)43
8.3.1 統(tǒng)計(jì)數(shù)組元素中正數(shù)、負(fù)數(shù)和零的個(gè)數(shù)43
8.3.2 統(tǒng)計(jì)學(xué)生平均成績(jī)43
8.3.3 上浮策略的冒泡排序44
實(shí)驗(yàn)9 一維、二維數(shù)組應(yīng)用45
9.1 概述45
9.2 案例45
案例10 二路歸并排序45
9.3 實(shí)驗(yàn)指導(dǎo)48
9.3.1 二維數(shù)組處理48
9.3.2 用冒泡法對(duì)二維數(shù)組排序48
9.3.3 堆棧處理50
實(shí)驗(yàn)10 字符數(shù)組應(yīng)用51
10.1 概述51
10.2 案例51
案例11 字符串統(tǒng)計(jì)51
10.3 實(shí)驗(yàn)指導(dǎo)53
10.3.1 字符串復(fù)制53
10.3.2 字符串拼接54
10.3.3 刪除相同字符55
實(shí)驗(yàn)11 結(jié)構(gòu)體類型及其應(yīng)用57
11.1 概述57
11.2 案例57
案例12 學(xué)生成績(jī)統(tǒng)計(jì)57
11.3 實(shí)驗(yàn)指導(dǎo)59
11.3.1 商品結(jié)構(gòu)體類型變量的定義和使用59
11.3.2 定義二維坐標(biāo)點(diǎn)結(jié)構(gòu)體類型并計(jì)算矩形面積60
實(shí)驗(yàn)12 類與對(duì)象的概念與設(shè)計(jì)61
12.1 概述61
12.2 案例61
案例13 定義復(fù)數(shù)類61
12.3 實(shí)驗(yàn)指導(dǎo)63
12.3.1 定義圖書類63
12.3.2 定義商品類63
實(shí)驗(yàn)13 指針的定義與使用65
13.1 概述65
13.2 案例65
案例14 查找子串65
13.3 實(shí)驗(yàn)指導(dǎo)67
13.3.1 使用指針輸入10個(gè)實(shí)數(shù)67
13.3.2 求兩集合的交集67
13.3.3 構(gòu)造回文68
實(shí)驗(yàn)14 指針?biāo)惴ǖ木C合應(yīng)用71
14.1 概述71
14.2 案例71
案例15 二叉樹遍歷71
14.3 實(shí)驗(yàn)指導(dǎo)74
14.3.1 質(zhì)因子分解74
14.3.2 線性表處理75
實(shí)驗(yàn)15 鏈表程序設(shè)計(jì)77
15.1 概述77
15.2 案例77
案例16 單向鏈表合并77
15.3 實(shí)驗(yàn)指導(dǎo)81
15.3.1 單向鏈表應(yīng)用--插入排序81
15.3.2 單向鏈表應(yīng)用--高考錄取處理82
實(shí)驗(yàn)16 構(gòu)造函數(shù)定義與使用83
16.1 概述83
16.2 案例83
案例17 學(xué)生類的聲明及其對(duì)象的初始化83
16.3 實(shí)驗(yàn)指導(dǎo)85
16.3.1 日期類的聲明和對(duì)象的定義85
16.3.2 集合類的聲明和對(duì)象的定義85
16.3.3 職工類的聲明和對(duì)象的定義86
實(shí)驗(yàn)17 構(gòu)造函數(shù)和析構(gòu)函數(shù)87
17.1 概述87
17.2 案例87
案例18 含有指針成員學(xué)生類的聲明及其對(duì)象的初始化87
17.3 實(shí)驗(yàn)指導(dǎo)89
17.3.1 通訊錄類的聲明和對(duì)象的定義89
17.3.2 線性表類的聲明和對(duì)象的定義90
實(shí)驗(yàn)18 繼承與派生的概念與設(shè)計(jì)93
18.1 概述93
18.2 案例93
案例19 由基類在校人員類派生學(xué)生類93
18.3 實(shí)驗(yàn)指導(dǎo)95
18.3.1 由基類圓類派生圓柱體類95
18.3.2 由在校人員類作為基類派生教師類96
18.3.3 由學(xué)生類、課程類作為基類,共同派生選課類96
實(shí)驗(yàn)19 繼承與派生的應(yīng)用99
19.1 概述99
19.2 案例99
案例20 由基類在校人員類派生研究生類和教師類99
案例21 虛基類的應(yīng)用101
19.3 實(shí)驗(yàn)指導(dǎo)103
實(shí)驗(yàn)20 虛函數(shù)的概念與應(yīng)用105
20.1 概述105
20.2 案例105
案例22 虛函數(shù)的定義和使用105
案例23 純虛函數(shù)的應(yīng)用108
20.3 實(shí)驗(yàn)指導(dǎo)108
實(shí)驗(yàn)21 運(yùn)算符重載的概念與應(yīng)用(一)111
21.1 概述111
21.2 案例111
案例24 用函數(shù)成員實(shí)現(xiàn)圓類對(duì)象間的直接運(yùn)算111
案例25 用友元函數(shù)實(shí)現(xiàn)圓類對(duì)象間的直接運(yùn)算113
21.3 實(shí)驗(yàn)指導(dǎo)114
21.3.1 三維坐標(biāo)類對(duì)象間的直接運(yùn)算114
21.3.2 用函數(shù)成員實(shí)現(xiàn)線性表對(duì)象間的直接運(yùn)算114
21.3.3 用友元函數(shù)實(shí)現(xiàn)線性表對(duì)象間的直接運(yùn)算116
實(shí)驗(yàn)22 運(yùn)算符重載的概念與應(yīng)用(二)117
22.1 概述117
22.2 案例117
案例26 利用友元運(yùn)算符實(shí)現(xiàn)字符串類對(duì)象間的直接運(yùn)算117
22.3 實(shí)驗(yàn)指導(dǎo)120
22.3.1 用類型轉(zhuǎn)換函數(shù)計(jì)算學(xué)生類對(duì)象的平均成績(jī)120
22.3.2 利用成員運(yùn)算符實(shí)現(xiàn)字符串類對(duì)象間的直接運(yùn)算120
實(shí)驗(yàn)23 文本文件的輸入輸出程序設(shè)計(jì)121
23.1 概述121
23.2 案例121
案例27 對(duì)磁盤文件的讀寫處理(數(shù)值數(shù)據(jù))121
案例28 對(duì)磁盤文件的讀寫處理(字符數(shù)據(jù))124
23.3 實(shí)驗(yàn)指導(dǎo)126
23.3.1 數(shù)值數(shù)據(jù)文本文件的讀寫操作126
23.3.2 字符數(shù)據(jù)文本文件的讀寫操作127
實(shí)驗(yàn)24 二進(jìn)制文件的輸入輸出程序設(shè)計(jì)129
24.1 概述129
24.2 案例129
案例29 binary型學(xué)生數(shù)據(jù)文件的簡(jiǎn)單管理129
24.3 實(shí)驗(yàn)指導(dǎo)134
24.3.1 二進(jìn)制文件與文本文件之間的轉(zhuǎn)換134
24.3.2 通過(guò)移動(dòng)文件的指針來(lái)實(shí)現(xiàn)文件的隨機(jī)存取135
實(shí)驗(yàn)25 模板的概念與應(yīng)用137
25.1 概述137
25.2 案例137
案例30 從二維數(shù)組中找最大元和最小元的函數(shù)模板137
案例31 結(jié)構(gòu)體模板與類模板的應(yīng)用139
25.3 實(shí)驗(yàn)指導(dǎo)140
25.3.1 函數(shù)模板與函數(shù)重載140
25.3.2 結(jié)構(gòu)體模板與類模板141