普通高等教育“十二五”規(guī)劃教材·高等院校計算機系列教材:C++程序設(shè)計教程
定 價:25.8 元
- 作者:瞿紹軍 ,劉宏 著
- 出版時間:2010/8/1
- ISBN:9787560963655
- 出 版 社:華中科技大學(xué)出版社
- 中圖法分類:TP312C
- 頁碼:265
- 紙張:膠版紙
- 版次:1
- 開本:16開
《C++程序設(shè)計教程》緊密結(jié)合目前高等學(xué)校計算機教學(xué)的發(fā)展趨勢,將ACM國際大學(xué)生程序設(shè)計競賽的相關(guān)內(nèi)容引入教材,對學(xué)生養(yǎng)成良好的編程習(xí)慣和編程思維,提高分析和解決問題的能力大有幫助-這是《C++程序設(shè)計教程》的創(chuàng)新之處。
全書共分12章,各章節(jié)內(nèi)容由淺入深、相互銜接、前后呼應(yīng)、循序漸進。第1~6章介紹了C+十程序設(shè)計的基礎(chǔ)、函數(shù)與程序結(jié)構(gòu)、數(shù)組與字符串、指針、結(jié)構(gòu)體與共用體、ACM國際大學(xué)生程序設(shè)計競賽相關(guān)知識和競賽中的輸入/輸出等;第7~11章介紹了C++面向?qū)ο蟮奶匦,包括類與對象及封裝性、類的深入、運算符重載和模板、繼承性、多態(tài)性;第12章介紹了C++輸入/輸出流和ACM國際大學(xué)生程序設(shè)計競賽中的文件輸入/輸出;附錄A列出了ASCⅡ碼對照表;附錄B列出了C/C++與標準C++頭文件對照表,方便學(xué)習(xí)和參考;附錄C介紹了Linux、Unix下編譯和調(diào)試C++程序的方法。
與《C++程序設(shè)計教程》配套的教材《C++程序設(shè)計教程習(xí)題答案和實驗指導(dǎo)》提供了本課程的實驗內(nèi)容、習(xí)題參考答案和模擬試卷。所有習(xí)題和程序均按照.ACM國際大學(xué)生程序設(shè)計競賽要求進行設(shè)計,并進行了嚴格的測試,驗證了程序的正確性。本課程設(shè)有專門的課程學(xué)習(xí)網(wǎng)站,具有豐富的學(xué)習(xí)參考資料,所有的習(xí)題均可在學(xué)習(xí)網(wǎng)站進行測試。
《C++程序設(shè)計教程》特別適合用做計算機專業(yè)和相關(guān)專業(yè)的教材,作為ACM國際大學(xué)生程序設(shè)計競賽入門教材,也可作為各類考試培訓(xùn)和C++程序設(shè)計自學(xué)教材。
C++語言是目前最流行的面向?qū)ο蟮某绦蛟O(shè)計語言之一。它既支持傳統(tǒng)的面向過程的程序設(shè)計方法,也支持面向?qū)ο蟮某绦蛟O(shè)計方法。它是Linux和Unix下編程的最主要的語言之一,也是嵌入式開發(fā)最常用的編程語言之一。C++全面兼容C,熟悉C的程序員僅需學(xué)習(xí)C++語言的面向?qū)ο筇卣鳎涂珊芸斓赜肅++編寫程序。
本書是一本通過編程實踐引導(dǎo)學(xué)生掌握C++程序開發(fā)的教材。我們組織了多位長期從事程序設(shè)計、數(shù)據(jù)結(jié)構(gòu)、面向?qū)ο蟪绦蛟O(shè)計和計算機算法設(shè)計課程教學(xué)的老師參與本書編寫,其中部分老師還是本校的ACM國際大學(xué)生程序設(shè)計競賽集訓(xùn)隊的教練和指導(dǎo)老師,他們都有著豐富的教學(xué)和編程經(jīng)驗。本書在編寫過程中力求將復(fù)雜的概念用簡潔、通俗的語言來描述,做到深入淺出、循序漸進,從而使學(xué)生能體會到學(xué)習(xí)編程的樂趣。
本書將ACM國際大學(xué)生程序設(shè)計競賽引入課程學(xué)習(xí)之中,使學(xué)生從編程入門開始就養(yǎng)成良好的編程習(xí)慣和編程思維,強化學(xué)生對實際問題分析能力和解決問題能力的培養(yǎng),激發(fā)學(xué)生對編程的興趣,達到以教學(xué)促競賽,以競賽強化教學(xué)的目的。
ACM國際大學(xué)生程序設(shè)計競賽是由國際計算機界具有悠久歷史的權(quán)威性組織ACM學(xué)會(Association for Computing Machinery)主辦的,是目前世界上公認的規(guī)模最大、水平最高、參與人數(shù)最多的大學(xué)生程序設(shè)計競賽之一,其宗旨是使大學(xué)生能通過計算機充分展示自己分析問題和解決問題的能力。現(xiàn)在各個高校都非常重視計算機程序設(shè)計競賽。
與本書配套的教材《C++程序設(shè)計教程習(xí)題答案和實驗指導(dǎo)》提供了本課程的實驗內(nèi)容、習(xí)題參考答案和模擬試卷。所有習(xí)題和程序均按照ACM國際大學(xué)生程序設(shè)計競賽要求進行設(shè)計,編者進行了嚴格的測試,驗證了程序的正確性。
參與本書編寫的人員有瞿紹軍、劉宏、邱建雄、謝中科、何迎生、張楚才、戴經(jīng)國、唐贊玉、張引瓊、張歷卓、彭華。
本書吸收了國內(nèi)外近幾年出版的同類教材的優(yōu)點,內(nèi)容豐富,特別適合用做計算機專業(yè)和相關(guān)專業(yè)的教材,作為ACM國際大學(xué)生程序設(shè)計競賽入門教材,也可作為各類考試培訓(xùn)和C++自學(xué)教材。
第1章 C++語言概述
1.1 C++語言簡介
1.1.1 C++語言的發(fā)展
1.1.2 C++語言的特點
1.2 C++程序基本結(jié)構(gòu)
1.3 C++程序的開發(fā)環(huán)境
1.3.1 Turbo C++
1.3.2 Visual C++
1.3.3 Dev-C++
1.4 ACM國際大學(xué)生程序設(shè)計競賽
1.4.1 ACM國際大學(xué)生程序設(shè)計競賽簡介
1.4.2 競賽規(guī)則
1.4.3 自動評測系統(tǒng)
l.4.4 競賽學(xué)習(xí)資源
習(xí)題1
第2章 C++語言編程基礎(chǔ)
2.1 C++語言詞法
2.1.1 注釋
2.1.2 關(guān)鍵字
2.1.3 標識符
2.1.4 常量
2.1.5 變量
2。1.6 運算符
2.1.7 分隔符
2.2 基本數(shù)據(jù)類型
2.2.1 整型
2.2.2 浮點型
2.2.3 字符型
2.2.4 布爾型
2.2.5 類型轉(zhuǎn)換
2.3 運算符與表達式
2.3.1 算術(shù)運算符及其表達式
2.3.2 賦值運算符及其表達式
2.3.3 關(guān)系運算符及其表達式
2.3.4 邏輯運算符及其表達式
2.3.5 位運算符
2.3.6 條件運算符
2.3.7 運算符的優(yōu)先級
2.4 流程控制語句
2.4.1 C++語句
2.4.2 if語句與條件選擇控制
2.4.3 條件表達式
2.4.4 switch語句與多項選擇
2.4.5 while語句
2.4.6 do while語句
2.4.7 for語句
2.4.8 break語句和continue語句
2.4.9 循環(huán)嵌套
2.4.10 return語句
2.4.兒程序設(shè)計綜合舉例
2.5 ACM-ICPC中的輸入/輸出
習(xí)題2
第3章 函數(shù)與程序結(jié)構(gòu)
3.1 函數(shù)與程序結(jié)構(gòu)概述
3.2 函數(shù)的定義與聲明
3.2.1 函數(shù)的定義
3.2.2 函數(shù)聲明與函數(shù)原型
3.3 函數(shù)參數(shù)和函數(shù)調(diào)用
3.3.1 函數(shù)形式參數(shù)和實際參數(shù)
3.3.2 函數(shù)的返回值
3.3.3 函數(shù)調(diào)用
3.4 函數(shù)的嵌套與遞歸調(diào)用
3.4.1 函數(shù)的嵌套調(diào)用
3.4.2 遞歸調(diào)用
3.5 變量作用域和存儲類型
3.5.1 局部變量與全局變量
3.5.2 靜態(tài)存儲變量和動態(tài)存儲變量
3.6 內(nèi)聯(lián)函數(shù)
3.7 重載函數(shù)與默認參數(shù)函數(shù)
3.7.1 重載函數(shù)
3.7.2 默認參數(shù)函數(shù)
3.8 編譯預(yù)處理
3.8.1 文件包含
3.8.2 宏定義
3.8.3 條件編譯
習(xí)題3
第4章 數(shù)組與字符串
4.1 數(shù)組的概念
4.2 數(shù)組的定義
4.2.1 一維數(shù)組
4.2.2 二維數(shù)組
4.3 數(shù)組作為函數(shù)的參數(shù)
4.3.1 用數(shù)組元素做函數(shù)實參
4.3.2 用數(shù)組名做函數(shù)參數(shù)
4.3.3 用多維數(shù)組名做函數(shù)參數(shù)
4.4 數(shù)組應(yīng)用舉例
4.5 字符串
4.5.1 字符串概念
4.5.2 字符串函數(shù)
4.5.3 字符串應(yīng)用舉例
習(xí)題4
第5章 指針
5.1 指針的概念
5.2 指針變量
5.2.1 指針定義
5.2.2 指針運算符
5.2.3 引用變量
5.2.4 多級指針與指針數(shù)組
5.2.5 指針與常量限定符
5.3 指針與數(shù)組
5.3.1 指針與一維數(shù)組
5.3.2 指針與二維數(shù)組
5.3.3 指針與字符數(shù)組
5.3.4 指針與函數(shù)
5.4 指針運算
5.5 動態(tài)存儲分配
5.5.1 new操作符
5.5.2 delete操作符
習(xí)題5
第6章 結(jié)構(gòu)體與共用體
6.1 結(jié)構(gòu)體
6.1.1 結(jié)構(gòu)體的聲明
6.1.2 結(jié)構(gòu)體變量的引用及初始化賦值
6.2 嵌套結(jié)構(gòu)體
6.3 結(jié)構(gòu)體數(shù)組
6.3.1 結(jié)構(gòu)體數(shù)組的定義和初始化
6.3.2 結(jié)構(gòu)體數(shù)組成員的引用
6.4 結(jié)構(gòu)體指針
6.4.1 指向結(jié)構(gòu)體變量的指針
6.4.2 指向結(jié)構(gòu)體數(shù)組的指針
6.4.3 用結(jié)構(gòu)體變量和指向結(jié)構(gòu)體變量的指針作為函數(shù)參數(shù)
6.5 鏈表的基本操作
6.5.1 鏈表基本知識
6.5.2 內(nèi)存動態(tài)管理函數(shù)
6.5.3 建立鏈表
6.5.4 輸出鏈表
6.5.5 對鏈表的刪除操作
6.5.6 對鏈表的插入操作
6.5.7 對鏈表的綜合操作
6.6 共用體
6.6.1 共用體的概念
6.6.2 共用型變量的定義
6.6.3 共用型變量的引用
6.6.4 共用型數(shù)據(jù)的特點
6.6.5 共用型變量的應(yīng)用
6.7 枚舉類型
6.8 用typedef定義
習(xí)題6
……
第7章 類與對象及封裝性
第8章 類的深入
第9章 運算符重載和模板
第10章 繼承性
第11章 多態(tài)性
第12章 輸入/輸出流
附錄A ASCⅡ碼對照表
附錄B C/C++與標準C++頭文件對照表
附錄C Linux、Unix下編譯C++程序
參考文獻
[本章主要內(nèi)容]本章主要介紹C++語言的發(fā)展、特點,面向?qū)ο蟪绦蛟O(shè)計的基本概念,C++程序的基本結(jié)構(gòu),幾種常用的C++開發(fā)環(huán)境,以及ACM國際大學(xué)生程序設(shè)計競賽的基本情況。
1.1 C++語言簡介
1.1.1 C++語言的發(fā)展
C語言是貝爾實驗室于20世紀70年代初研制出來的,后來又被多次改進,并出現(xiàn)了多種版本。C語言既具有高級語言的特點,即表達力豐富,可移植性好,又具有低級語言的一些特點,即能夠很方便地實現(xiàn)匯編級的操作,目標程序效率較高。剛開始形成的C語言受到那些想建立更快、更有效的代碼的程序員歡迎。有一位名為Bjarne Stroustrup的人卻不滿足于僅僅是快速生成代碼,他想創(chuàng)建面向?qū)ο蟮腃語言。他開始對C語言的內(nèi)核進行必要的修改,使其能滿足面向?qū)ο竽P偷囊,C++從此產(chǎn)生。
C++語言自誕生以來,經(jīng)過開發(fā)和擴充,已成一種完全成熟的編程語言,F(xiàn)在C++已被ANSI、BSI、DIN、一些國家標準機構(gòu)和ISO定為標準。
C++標準演變了許多年。C++模板則是近幾年來對此語言的一種擴展。模板是根據(jù)類型參數(shù)來產(chǎn)生函數(shù)和類的機制的,有時也稱模板為“參數(shù)化的類型”。使用模板,可以設(shè)計一個對許多類型的數(shù)據(jù)進行操作的類,而不需要為每個類型的數(shù)據(jù)建立一個單獨的類。標準模板庫(standardtemplate1mrary,STL)和微軟的活動模板庫(activetem platelibrary,ATL)都是基于這個C++語言擴展的。
C++標準可分為兩部分:C++語言本身和C++標準庫。C++標準庫提供了標準的輸入/輸出、字符串、容器(如矢量、列表和映射等)、非數(shù)值運算(如排序、搜索和合并等)和對數(shù)值計算的支持。應(yīng)該說,C/C++包含了相對少的關(guān)鍵字,很多最有用的函數(shù)都來源于庫,用C++標準庫實現(xiàn)容器和部分算法就是標準模板庫。1.1.2 C++語言的特點
C++語言之所以被人們廣泛認可,是因為它具有許多先進的技術(shù)特點。
1.優(yōu)越的性能
性能包含兩方面:算法速度和機器代碼效率。通俗地講,算法是指解決問題的一種方法或一個過程。嚴格地定義,算法是由若干條指令組成的有窮序列。例如,一個算法定義為獲取一個字符串,計算字符串中的字符個數(shù),并作為結(jié)果返回的過程。所以在編程之前必須設(shè)計算法,編寫一個快速程序的第一個步驟是設(shè)計良好的算法,以最少的操作步驟得出問題的答案。第二個步驟是選擇語言,這也影響程序的速度。