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