《大學(xué)計(jì)算機(jī)基礎(chǔ)教育規(guī)劃教材:C++程序設(shè)計(jì)》以c++為基礎(chǔ)系統(tǒng)地介紹程序語言、算法與數(shù)據(jù)結(jié)構(gòu)、高級編程技術(shù)。《大學(xué)計(jì)算機(jī)基礎(chǔ)教育規(guī)劃教材:C++程序設(shè)計(jì)》由16章組成,以程序設(shè)計(jì)語言、程序設(shè)計(jì)方法和程序設(shè)計(jì)技術(shù)三大主題組織教材,采用“數(shù)據(jù)表示”和“程序?qū)崿F(xiàn)”雙線索知識體系,優(yōu)化了程序設(shè)計(jì)知識的安排。
本書結(jié)構(gòu)清晰、語言通俗易懂,示例代碼具有專業(yè)的編程風(fēng)格;內(nèi)容由淺入深、知識循序漸進(jìn),例題豐富,體現(xiàn)了程序設(shè)計(jì)和算法、數(shù)據(jù)結(jié)構(gòu)的緊密結(jié)合。本書注重典型案例的精選與提煉,高級編程技術(shù)內(nèi)容便于開展課程設(shè)計(jì)和研究型學(xué)習(xí)。
本書使用iso/iecl4882-2003c++語言標(biāo)準(zhǔn),配套有經(jīng)過多年教學(xué)實(shí)踐的程序設(shè)計(jì)綜合訓(xùn)練平臺。
本書可作為高等院校理工類專業(yè)和信息技術(shù)類培訓(xùn)機(jī)構(gòu)“程序設(shè)計(jì)”、“軟件開發(fā)技術(shù)”課程的教材,也可作為計(jì)算機(jī)程序愛好者學(xué)習(xí)程序開發(fā)和編程技術(shù)的自學(xué)教材。
程序設(shè)計(jì)是大學(xué)計(jì)算機(jī)基礎(chǔ)教育和計(jì)算機(jī)專業(yè)基礎(chǔ)的核心課程,它既為其他技術(shù)課程奠定程序開發(fā)基礎(chǔ),又是其他專業(yè)課程或?qū)嵺`環(huán)節(jié)的軟件工具,因此成為各類專業(yè)的必修課程。程序設(shè)計(jì)覆蓋面廣、影響大,是卓越工程師教育培養(yǎng)計(jì)劃的通識教育基礎(chǔ),同時(shí)也是大學(xué)生參加課程設(shè)計(jì)、畢業(yè)設(shè)計(jì)、創(chuàng)新實(shí)驗(yàn)、科技制作和學(xué)科競賽等活動(dòng)的重要平臺。
C++是國內(nèi)外廣泛使用的計(jì)算機(jī)程序設(shè)計(jì)語言。其功能強(qiáng)大、面向?qū)ο、?shù)據(jù)表示豐富、代碼運(yùn)行效率高、可移植性好,適合編寫系統(tǒng)軟件和各類應(yīng)用程序。世界上大多數(shù)軟件都是由C語言和C++語言開發(fā)的,在TIOBE編程語言排行榜上,C語言、C++及其衍生發(fā)展起來的Java語言多年來始終處在前三位。學(xué)習(xí)程序設(shè)計(jì)從C++入手,對于培養(yǎng)算法設(shè)計(jì)與分析能力、抽象數(shù)據(jù)描述與表示能力以及利用計(jì)算機(jī)求解現(xiàn)實(shí)問題的計(jì)算思維能力具有其他語言無法比擬的優(yōu)點(diǎn)。而且在完全掌握了C語言、C++之后,再學(xué)習(xí)其他程序語言就會輕車熟路。
然而,C++的學(xué)習(xí)難度也是很大的。很多學(xué)生往往是“考完即忘”,學(xué)了后面的忘了前面的,低年級時(shí)學(xué)習(xí)的程序設(shè)計(jì)到了高年級即處于猶如從未學(xué)過的狀態(tài),更談不上利用程序設(shè)計(jì)解決實(shí)際應(yīng)用問題。而且面對龐大、復(fù)雜的C++知識系統(tǒng),不少學(xué)生甚至教師在教與學(xué)的過程中始終感覺“只見樹木,不見森林”,對學(xué)過的程序思路不甚了解、數(shù)據(jù)描述不清楚、算法設(shè)計(jì)不到位,最后連最基本的語言知識也掌握不住,最基本的開發(fā)環(huán)境也不會使用。缺少以技能為目標(biāo)的程序設(shè)計(jì)教材是造成這一局面的重要原因之一。
現(xiàn)有的C語言和C++程序設(shè)計(jì)類的教材多偏重語言知識,羅列語法多、千篇一律、大同小異,在如何應(yīng)用程序解決實(shí)際問題方面下的工夫少;程序設(shè)計(jì)方法與語言結(jié)合少,缺少推動(dòng)學(xué)生計(jì)算思維的訓(xùn)練;生硬的例子與實(shí)際應(yīng)用脫節(jié),缺少應(yīng)用編程技術(shù)的展開。教學(xué)中盡管有諸如“案例教學(xué)”、“項(xiàng)目驅(qū)動(dòng)”的做法,但由于缺少成熟的教學(xué)平臺和系統(tǒng)化、規(guī)范化的教學(xué)資源,難以培養(yǎng)和提高學(xué)生應(yīng)用程序設(shè)計(jì)解決實(shí)際問題的技能。
需要知道,人類學(xué)自然語言時(shí),學(xué)的不僅是聽還有說;學(xué)字時(shí),學(xué)的不僅是讀還有寫。隨著人們向一個(gè)越來越數(shù)字化的信息世界邁進(jìn),不僅應(yīng)該學(xué)會如何使用程序,還要學(xué)會如何編寫程序。當(dāng)語言知識轉(zhuǎn)化為編程技能時(shí),就沒有知識會遺忘了,應(yīng)用程序設(shè)計(jì)解決實(shí)際問題的計(jì)算能力如同學(xué)習(xí)語言時(shí)的聽、說、讀、寫一般。
為此,我們在多年程序設(shè)計(jì)課程的一線教學(xué)經(jīng)驗(yàn)和軟件開發(fā)科研工作基礎(chǔ)上,結(jié)合自主研發(fā)的程序設(shè)計(jì)綜合訓(xùn)練平臺和系列教育軟件,推出以語言知識為工具、以技能培養(yǎng)為目標(biāo)、以編程技術(shù)為核心的系列程序設(shè)計(jì)教材。
本教材遵循我們多年提倡的“精講多練、注重技能、開拓設(shè)計(jì)”教學(xué)理念編寫。在程序語言知識體系的選取與深度的把握上,在算法、數(shù)據(jù)結(jié)構(gòu)與程序設(shè)計(jì)的結(jié)合上精心設(shè)計(jì),力圖適合高等院校和專業(yè)計(jì)算機(jī)培訓(xùn)的教學(xué)目標(biāo)與知識結(jié)構(gòu)的要求,體現(xiàn)了以下7個(gè)特色。
(1) 首創(chuàng)雙線索的程序設(shè)計(jì)知識體系。
任何一本程序設(shè)計(jì)教材必然是以程序語言為背景的,本書也不例外。然而C++具有龐大的語言知識內(nèi)容,因此以語言知識為教學(xué)線索必然是整體感凌亂。表現(xiàn)為教學(xué)學(xué)時(shí)始終處在不夠的“高壓狀態(tài)”,學(xué)生學(xué)習(xí)始終抓不住主次。
本教材的雙線索程序設(shè)計(jì)知識體系以“數(shù)據(jù)表示”和“程序?qū)崿F(xiàn)”作為教學(xué)上的兩條主線索,螺旋上升、交叉推進(jìn),如圖0.1所示。
圖0.1 雙螺旋線索C++知識體系示意
首先,教材通過簡單程序引出程序基本結(jié)構(gòu),以編程為目標(biāo)給出兩條線索: 數(shù)據(jù)表示和程序?qū)崿F(xiàn)。其次,從引入簡單數(shù)據(jù)開始,逐步解決運(yùn)算和程序組織,進(jìn)而上升到程序模塊化的實(shí)現(xiàn)。再次,從基本類型提高到復(fù)雜數(shù)據(jù)類型,上升到數(shù)據(jù)結(jié)構(gòu)層面的數(shù)據(jù)表示,程序模塊進(jìn)階到算法實(shí)現(xiàn)。最后,兩條線索交匯到高級編程技術(shù)應(yīng)用專題,揭示程序設(shè)計(jì)與應(yīng)用軟件開發(fā)的一般規(guī)律。
實(shí)際教學(xué)效果表明,雙線索程序語言知識體系突出了程序設(shè)計(jì)方法學(xué),使程序語言成為服務(wù)于編程的工具而不是目標(biāo),學(xué)習(xí)者既能獲取語言知識,又能掌握編程技能。
(2) 優(yōu)化程序設(shè)計(jì)知識安排。
多數(shù)現(xiàn)有教材中的知識安排導(dǎo)致以技能為目標(biāo)的程序設(shè)計(jì)難于實(shí)現(xiàn),出現(xiàn)教學(xué)瓶頸。表現(xiàn)在語言階段冗長,使得以函數(shù)、自定義類型等內(nèi)容為教學(xué)中心的編程階段在實(shí)際教學(xué)中接近課程末期,從而讓應(yīng)用程序設(shè)計(jì)教學(xué)目標(biāo)落空。
本教材在程序語言知識方面采用了“快節(jié)奏”,在程序設(shè)計(jì)方法和編程技術(shù)方面采用了“慢節(jié)奏”,解決了多年來程序設(shè)計(jì)教與學(xué)的難題和瓶頸問題。“快節(jié)奏”體現(xiàn)為語言基礎(chǔ)知識學(xué)時(shí)被大幅度壓縮, 從一開始即以簡單程序框架展開程序知識,直接進(jìn)入以程序模塊化為主的教與學(xué)環(huán)境。方便教師精講知識,學(xué)生早早練習(xí)進(jìn)而多練,教材不在語言細(xì)節(jié)、小片段程序上反復(fù)循環(huán)!奥(jié)奏”體現(xiàn)為以(較難的)編程技術(shù)為研究專題展開(費(fèi)時(shí)的)編程方法教學(xué),方便教師組織技能訓(xùn)練,學(xué)生獲取編程技巧。本教材將軟件開發(fā)中的結(jié)構(gòu)化、面向?qū)ο、組件模型和敏捷思想融入到每個(gè)章節(jié),讓學(xué)習(xí)者接受專業(yè)化訓(xùn)練。
如圖0.2所示是本教材的知識安排,與傳統(tǒng)的C++教學(xué)相比,增加了“設(shè)計(jì)階段”的教學(xué)。顯然,優(yōu)化的知識體系使教師在教學(xué)時(shí)能夠“抓大”(設(shè)計(jì)方法)“放小”(語言知識),學(xué)生學(xué)習(xí)時(shí)能夠得到最大化的“飽滿感”編程訓(xùn)練。
圖0.2 優(yōu)化的C語言程序知識安排
(3) 首創(chuàng)高級編程技術(shù)教學(xué)新思想。
由于沒有更高層次的應(yīng)用程序開發(fā)內(nèi)容,許多教材的實(shí)際教學(xué)效果就是教師和學(xué)生都集中在做題上面。如數(shù)學(xué)一般,將程序設(shè)計(jì)演變成“程序語言+計(jì)算方法”, C++成了數(shù)學(xué)工具。殊不知計(jì)算方法(數(shù)值計(jì)算、非數(shù)值計(jì)算)僅是程序設(shè)計(jì)方法的一種,程序方法學(xué)中還有諸如操作系統(tǒng)、人機(jī)界面、圖形圖像、多媒體、網(wǎng)絡(luò)通信、數(shù)據(jù)庫、硬件接口等技術(shù)領(lǐng)域,每個(gè)領(lǐng)域都有獨(dú)特的編程技術(shù)和精巧的解決方法。
衡量程序設(shè)計(jì)教學(xué)效果有兩個(gè)重要指標(biāo): 編程累計(jì)行數(shù)(TLOC)和單個(gè)程序行數(shù)(SLOC) 。以解題為主的編程訓(xùn)練能提高TLOC,但卻止步于SLOC。即使將習(xí)題做上百題,雖然TLOC指標(biāo)上去了,但SLOC卻不見長。一般地,在專業(yè)的軟件開發(fā)技術(shù)領(lǐng)域,SLOC小于300行時(shí)很難讓人體會到應(yīng)用開發(fā)的“感覺”.
高級編程技術(shù)是本教材主要的創(chuàng)新成果之一。通過研究型專題的技術(shù)教學(xué),拓寬了學(xué)生的知識面,使其充分認(rèn)識到程序是如何解決應(yīng)用問題的,有極大的興趣展開研究型學(xué)習(xí)。在這樣的教與學(xué)環(huán)境下,才能從根本上提高SLOC,提升技能訓(xùn)練層次。
(4) 注重程序設(shè)計(jì)和算法、數(shù)據(jù)結(jié)構(gòu)的緊密結(jié)合。
程序設(shè)計(jì)與算法、數(shù)據(jù)結(jié)構(gòu)實(shí)際上是一個(gè)統(tǒng)一體,不應(yīng)該也不可能將它們對立與分割。我國計(jì)算機(jī)基礎(chǔ)教育的實(shí)際情況是,不少非計(jì)算機(jī)專業(yè)在程序設(shè)計(jì)課程后不再涉及算法和數(shù)據(jù)結(jié)構(gòu)。即使是計(jì)算機(jī)專業(yè)開設(shè)有專門的算法和數(shù)據(jù)結(jié)構(gòu)課程,也是“自說自話”,并不是站在軟件系統(tǒng)開發(fā)(SSD)的角度使之有機(jī)地聯(lián)系在一起。
算法和數(shù)據(jù)結(jié)構(gòu)是程序設(shè)計(jì)的理論升華,是培養(yǎng)學(xué)生向應(yīng)用程序開發(fā)轉(zhuǎn)型的主要工具。本教材給出算法和數(shù)據(jù)結(jié)構(gòu)的初步知識,克服了簡單羅列算法、數(shù)據(jù)結(jié)構(gòu)內(nèi)容和算法與程序設(shè)計(jì)脫節(jié)、數(shù)據(jù)結(jié)構(gòu)與程序數(shù)據(jù)表示脫節(jié)的問題。在講述每一種常用算法和數(shù)據(jù)結(jié)構(gòu)的基本思路與設(shè)計(jì)步驟的基礎(chǔ)上,落實(shí)到每一個(gè)案例求解,從案例的提出到算法設(shè)計(jì)與數(shù)據(jù)描述、從程序?qū)崿F(xiàn)到案例結(jié)果的討論與分析,環(huán)環(huán)相扣,融為一體,力求理論與實(shí)際相結(jié)合,數(shù)據(jù)描述與數(shù)據(jù)表示、算法與程序?qū)崿F(xiàn)相統(tǒng)一,切實(shí)提高對所學(xué)算法、數(shù)據(jù)結(jié)構(gòu)的理解和掌握。
(5) 注重典型案例的精選與提煉。
培養(yǎng)學(xué)生的學(xué)習(xí)興趣,激發(fā)學(xué)生的學(xué)習(xí)熱情,不是一兩句空洞說教所能奏效的,必須通過一些有價(jià)值的實(shí)際案例來引導(dǎo)。本教材設(shè)計(jì)了初等難度語言示范型、中等難度算法和數(shù)據(jù)結(jié)構(gòu)應(yīng)用型、較高難度綜合設(shè)計(jì)型三種梯度的案例。這些案例的精選與提煉,有利于提高學(xué)生學(xué)習(xí)程序設(shè)計(jì)的興趣,有利于學(xué)生在計(jì)算機(jī)現(xiàn)實(shí)問題求解上開闊視野,使之在程序設(shè)計(jì)方法和思路的開拓與編程技巧的應(yīng)用上有一個(gè)深層次的鍛煉與提高。其中難度較大的高級編程技術(shù)綜合設(shè)計(jì)案例可作為課程設(shè)計(jì)、大作業(yè)與課后專題研究選用。
算法、數(shù)據(jù)結(jié)構(gòu)與程序設(shè)計(jì)都不是一成不變的,可以實(shí)施多層次多方位的變通,變通出效果,變通長能力。本教材的部分示例給出了算法改進(jìn)與程序優(yōu)化的過程,既是提高案例求解效率的過程,也是算法設(shè)計(jì)能力培養(yǎng)與提高的過程,更是優(yōu)化意識與創(chuàng)新能力增強(qiáng)的過程。
(6) 注重編程風(fēng)格。
本書使用ISO/IEC 14882-2003 C++語言標(biāo)準(zhǔn)(簡稱C++03標(biāo)準(zhǔn)),充分體現(xiàn)了程序語言的最新進(jìn)展和當(dāng)前業(yè)界的最佳實(shí)踐。
書中廣泛采納各專業(yè)軟件公司編程規(guī)范的優(yōu)點(diǎn),無論語法語義、書寫形式、示例代碼等,均采用專業(yè)編程風(fēng)格編寫,潛移默化地引導(dǎo)學(xué)習(xí)者與專業(yè)化接軌。
書中所有程序均在Visual C++ 6.0和GCC 4.x (Code: : Blocks)上調(diào)試通過。同時(shí),教材中的所有源程序與各章習(xí)題的完整代碼均可在清華大學(xué)出版社網(wǎng)站下載。
(7) 配套程序設(shè)計(jì)教學(xué)平臺、系列教育軟件和教學(xué)資源。
學(xué)習(xí)程序設(shè)計(jì),上機(jī)實(shí)驗(yàn)是重要的環(huán)節(jié)。而實(shí)驗(yàn)環(huán)節(jié)重要的是什么呢?是性能優(yōu)越的計(jì)算機(jī)或者環(huán)境良好的機(jī)房嗎?答案不是。那種在實(shí)驗(yàn)課上做題、講題的教學(xué)模式是很難培養(yǎng)程序設(shè)計(jì)技能的,本質(zhì)上這種模式一開始就是奔期末考試(等級考試)去的。
程序設(shè)計(jì)實(shí)驗(yàn)環(huán)節(jié)最重要的是要有優(yōu)秀的教學(xué)平臺、教育軟件和完整的教學(xué)資源。以技能培養(yǎng)為目標(biāo)、以編程技術(shù)為核心的教學(xué)模式不是傳統(tǒng)實(shí)驗(yàn)手段自發(fā)實(shí)現(xiàn)的,而是通過高集成度的程序設(shè)計(jì)綜合訓(xùn)練平臺,全程自動(dòng)化輔助教學(xué)和教學(xué)管理來實(shí)現(xiàn)的。
自2001年以來,基于專業(yè)的軟件開發(fā)科研優(yōu)勢,結(jié)合一線教學(xué)和課程改革的經(jīng)驗(yàn),圍繞課堂、實(shí)驗(yàn)、作業(yè)、設(shè)計(jì)、考核5個(gè)教學(xué)環(huán)節(jié),我們開發(fā)了系列教育軟件。例如,“程序設(shè)計(jì)在線評測系統(tǒng)INPOJ”采用計(jì)算機(jī)系統(tǒng)使學(xué)生通過大量習(xí)題的訓(xùn)練提高解題速度(POJ訓(xùn)練)以解決TLOC; “軟件設(shè)計(jì)協(xié)同開發(fā)平臺DevForge”按專業(yè)軟件開發(fā)方式引導(dǎo)、跟蹤、自動(dòng)評閱學(xué)生課程設(shè)計(jì)程序和報(bào)告以解決SLOC; “遠(yuǎn)程網(wǎng)絡(luò)考試系統(tǒng)inTest”實(shí)現(xiàn)技能測試和實(shí)踐考核,等等。這些教學(xué)平臺的使用,使得實(shí)驗(yàn)機(jī)房變成了學(xué)生討論、思考、相互教授的研究場所,形成數(shù)字化課堂教學(xué)、網(wǎng)絡(luò)輔助教學(xué)、電子教室、智能答疑、綜合訓(xùn)練等立體化教學(xué)環(huán)境,為落實(shí)教學(xué)理念和教學(xué)目標(biāo)提供了先進(jìn)工具。
使用本教材的高等院校和培訓(xùn)機(jī)構(gòu)想要進(jìn)一步了解有關(guān)程序設(shè)計(jì)綜合訓(xùn)練平臺和系列教育軟件更多的信息,請與作者(jxf@nwpu.edu.cn)聯(lián)系。
由于C++兼容C語言,因此本書第1~8章主要是C語言的知識內(nèi)容,不妨稱為“C語言的”,其中帶號的章節(jié)是C++對C語言的擴(kuò)展。第9~14章完全是C++的知識內(nèi)容,稱為“C++的”. C語言部分以結(jié)構(gòu)化程序設(shè)計(jì)為主要方法,C++部分將逐步上升到面向?qū)ο蟪绦蛟O(shè)計(jì)方法。之所以如此涇渭分明,是因?yàn)镃語言是C++的基礎(chǔ),C語言的即C++的,結(jié)構(gòu)化程序設(shè)計(jì)是面向?qū)ο蟪绦蛟O(shè)計(jì)的起步環(huán)節(jié)。
本書有兩本配套的教學(xué)參考書:
(1) 《C++程序設(shè)計(jì)實(shí)驗(yàn)教程》。該書分為四部分。前兩部分詳細(xì)介紹了Visual C++和GCC開發(fā)工具的使用方法和程序調(diào)試技術(shù);第三部分是與教材知識體系相對應(yīng)的實(shí)驗(yàn)內(nèi)容,分為驗(yàn)證型實(shí)驗(yàn)和設(shè)計(jì)型實(shí)驗(yàn),主要突出綜合性實(shí)驗(yàn),并結(jié)合算法、數(shù)據(jù)結(jié)構(gòu)知識設(shè)計(jì)了一些有難度的實(shí)驗(yàn)題目;第四部分是課程設(shè)計(jì)專題研究實(shí)驗(yàn)內(nèi)容,其目的是使讀者能夠訓(xùn)練應(yīng)用程序開發(fā),獲取設(shè)計(jì)C++程序項(xiàng)目的初步知識和工程經(jīng)驗(yàn),掌握高級編程技術(shù)。
(2) 《C++程序設(shè)計(jì)習(xí)題與解析》。該書主要包括3個(gè)方面的內(nèi)容: 知識點(diǎn)與考點(diǎn)提煉、經(jīng)典例題解析、典型習(xí)題與解答。內(nèi)容緊扣課程教材和實(shí)驗(yàn)教材,對課程的講授、學(xué)習(xí)以及考查起到積極的指導(dǎo)和輔助作用,其目的是使讀者加強(qiáng)程序語言知識的掌握。
此外,向使用本書的教師提供講課的電子演示文稿和素材,以節(jié)省教師的備課時(shí)間。向使用本書的高校和培訓(xùn)機(jī)構(gòu)提供“程序設(shè)計(jì)課程教學(xué)指南”,方便組織教學(xué)、實(shí)施課程管理。
本書第1~8章和第15、16章由姜學(xué)鋒編寫,第9章和第10章由周果清、姜學(xué)鋒共同編寫,第11~14章由劉君瑞編寫,全書由姜學(xué)鋒主編并統(tǒng)稿。在書稿的編著過程中,得到了多位專家的關(guān)心和熱情支持,西北工業(yè)大學(xué)計(jì)算機(jī)學(xué)院的同事們提出了許多寶貴的意見和建議,清華大學(xué)出版社對本書的出版十分重視并做了周到的安排。在此,對所有鼓勵(lì)、支持和幫助過本書編寫工作的領(lǐng)導(dǎo)、專家、同事和廣大讀者表示真摯的謝意!
由于時(shí)間緊迫以及作者水平有限,書中難免有錯(cuò)誤、疏漏之處,懇請讀者批評指正。
姜學(xué)鋒2011年7月于西北工業(yè)大學(xué)
第1章 程序設(shè)計(jì)基礎(chǔ)
1.1 計(jì)算機(jī)系統(tǒng)和工作原理
1.2 信息的表示與存儲
1.3 程序設(shè)計(jì)語言
1.4 程序設(shè)計(jì)概述
1.5 c++概述
習(xí)題
第2章 數(shù)據(jù)類型與表達(dá)式
2.1 數(shù)據(jù)類型
2.2 常量
2.3 變量
2.4 運(yùn)算符與表達(dá)式
2.5 類型轉(zhuǎn)換
習(xí)題
第3章 程序控制結(jié)構(gòu)
3.1 語句
3.2 輸入與輸出
3.3 程序順序結(jié)構(gòu)
3.4 程序選擇結(jié)構(gòu)
3.5 程序循環(huán)結(jié)構(gòu)
習(xí)題
第4章 函數(shù)
4.1 函數(shù)定義
4.2 函數(shù)參數(shù)
4.3 函數(shù)原型與調(diào)用
4.4 內(nèi)聯(lián)函數(shù)
4.5 默認(rèn)參數(shù)
4.6 函數(shù)重載
4.7 函數(shù)模板
4.8 函數(shù)調(diào)用形式
4.9 作用域和生命期
4.10 對象初始化
4.11 聲明與定義
4.12 變量修飾小結(jié)
4.13 程序組織結(jié)構(gòu)
4.14 函數(shù)應(yīng)用程序舉例
習(xí)題
第5章 預(yù)處理命令
5.1 宏定義
5.2 文件包含
5.3 條件編譯
5.4 其他命令
習(xí)題
第6章 數(shù)組
6.1 一維數(shù)組的定義和引用
6.2 多維數(shù)組的定義和引用
6.3 數(shù)組與函數(shù)
6.4 字符串
6.5 c++字符串類
6.6 數(shù)組應(yīng)用程序舉例
習(xí)題
第7章 指針與引用
7.1 指針與指針變量
7.2 指針的使用及運(yùn)算
7.3 指針與數(shù)組
7.4 指針與字符串
7.5 指針與函數(shù)
7.6 動(dòng)態(tài)內(nèi)存
7.7 帶參數(shù)的main函數(shù)
7.8 引用類型
習(xí)題
第8章 自定義數(shù)據(jù)類型
8.1 結(jié)構(gòu)體類型
8.2 結(jié)構(gòu)體對象
8.3 結(jié)構(gòu)體與數(shù)組
8.4 結(jié)構(gòu)體與指針
8.5 結(jié)構(gòu)體與函數(shù)
8.6 共用體
8.7 枚舉類型
8.8 位域
8.9 用戶自定義類型
8.10 鏈表
習(xí)題
第9章 類與對象
9.1 類的定義和聲明
9.2 對象的定義和使用
9.3 構(gòu)造函數(shù)和析構(gòu)函數(shù)
9.4 對象數(shù)組
9.5 對象指針
9.6 類作用域與對象生命期
9.7 const限定
9.8 靜態(tài)成員
9.9 友元
9.10 類模板
9.11 數(shù)據(jù)封裝和信息隱蔽
習(xí)題
第10章 繼承與派生
10.1 類的繼承與派生
10.2 派生類成員的訪問
10.3 賦值兼容規(guī)則
10.4 派生類的構(gòu)造和析構(gòu)函數(shù)
10.5 多重繼承
10.6 多態(tài)性與虛函數(shù)
10.7 命名的強(qiáng)制類型轉(zhuǎn)換
習(xí)題
第11章 運(yùn)算符重載
11.1 運(yùn)算符重載的概念
11.2 運(yùn)算符重載的方法
11.3 典型運(yùn)算符的重載
習(xí)題
第12章 異常處理
12.1 基本概念
12.2 異常處理的實(shí)現(xiàn)
習(xí)題
第13章 命名空間
13.1 命名空間的概念
13.2 命名空間的定義
13.3 命名空間的使用
習(xí)題
第14章 標(biāo)準(zhǔn)庫
14.1 c++標(biāo)準(zhǔn)庫
14.2 標(biāo)準(zhǔn)輸入輸出
14.3 標(biāo)準(zhǔn)模板庫
習(xí)題
第15章 算法
15.1 算法基本概念
15.2 算法分析
15.3 常用算法
習(xí)題
第16章 高級編程技術(shù)
16.1 配置開發(fā)環(huán)境
16.2 界面編程
16.3 圖形編程
16.4 多媒體編程
16.5 網(wǎng)絡(luò)編程
16.6 數(shù)據(jù)庫編程
習(xí)題
附錄a ascii碼對照表
附錄b c++關(guān)鍵字
附錄c c++運(yùn)算符及其優(yōu)先級、結(jié)合性
參考文獻(xiàn)