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