出版時(shí)間:2010-4 出版社:科學(xué) 作者:王學(xué)穎//李航//張燕麗//李暉 頁數(shù):285
前言
面向?qū)ο蟪绦蛟O(shè)計(jì)是計(jì)算機(jī)軟件開發(fā)人員必須掌握的一門技術(shù),它與傳統(tǒng)的結(jié)構(gòu)化程序設(shè)計(jì)相比,具有很多優(yōu)點(diǎn),從根本上改變了人們設(shè)計(jì)軟件的思維方式,使程序設(shè)計(jì)者不用特別關(guān)心具體的數(shù)據(jù)格式和過程,只需將重點(diǎn)放在要處理對象的設(shè)計(jì)和研究上即可。C++語言是一種面向?qū)ο蟮木幊陶Z言,同時(shí)又兼容C語言的特征。用C++語言編寫的程序可讀性更好,代碼結(jié)構(gòu)更合理,對面向?qū)ο蠹夹g(shù)提供全面支持。C++語言具有簡單易學(xué)的特點(diǎn),適合作為面向?qū)ο蟪绦蛟O(shè)計(jì)方法學(xué)習(xí)的入門語言?! ”緯蔷幷叨嗄闏++教學(xué)經(jīng)驗(yàn)的總結(jié),針對編者在教學(xué)中出現(xiàn)的問題及遇到的困難進(jìn)行講解,全面系統(tǒng)地講述了C++語言的基本概念和編程方法,重點(diǎn)敘述面向?qū)ο蟪绦蛟O(shè)計(jì)的特征,即封裝性(類和對象)、繼承性和多態(tài)性。本書以一個(gè)完整的應(yīng)用案例——水果超市管理系統(tǒng)的實(shí)現(xiàn)貫穿各章,使讀者能夠充分認(rèn)識(shí)面向?qū)ο蟮木幊谭椒?,并能進(jìn)行實(shí)際操作。在案例中,按照應(yīng)用系統(tǒng)的開發(fā)步驟對系統(tǒng)進(jìn)行分模塊講解,尤其是對水果超市管理系統(tǒng)中使用的類、對象和繼承關(guān)系進(jìn)行了詳細(xì)的分析和設(shè)計(jì),使讀者能通過具體的實(shí)例充分理解面向?qū)ο蟪绦蛟O(shè)計(jì)方法的實(shí)質(zhì),同時(shí)對應(yīng)用系統(tǒng)開發(fā)有一個(gè)初步的認(rèn)識(shí),并能進(jìn)行實(shí)際操作,對提高讀者的編程能力很有幫助。水果超市管理系統(tǒng)的源代碼在附錄中給出,并已調(diào)試通過。 全書共分10章,針對各章的知識(shí)點(diǎn)提供了相應(yīng)的例題,并配有大量習(xí)題,便于讀者對所學(xué)知識(shí)進(jìn)行檢測和鞏固。全書主要內(nèi)容包括以下3部分。 第一部分(第1~4章)簡單介紹C++語言的特點(diǎn)和面向?qū)ο蟪绦蛟O(shè)計(jì)的基本概念,詳細(xì)講述C++語言的基本語法規(guī)則和功能,包括各種數(shù)據(jù)類型、控制語句,以及函數(shù)、指針和引用等。 第二部分(第5~7章)重點(diǎn)敘述C++語言所支持的面向?qū)ο蟪绦蛟O(shè)計(jì)方法的核心內(nèi)容:封裝性、繼承性和多態(tài)性。具體內(nèi)容包括類和對象的定義和使用、對象的賦值和運(yùn)算、繼承性和派生類、多態(tài)性和虛函數(shù)等。這一部分是學(xué)習(xí)C++語言的重點(diǎn)和難點(diǎn)?! 〉谌糠郑ǖ?~10章)介紹函數(shù)模板、類模板和標(biāo)準(zhǔn)模板庫(STL)的使用方法,同時(shí)對c++中的異常處理機(jī)制和標(biāo)準(zhǔn)庫中的異常類進(jìn)行詳細(xì)敘述,最后針對ACM-ICPC平臺(tái)及在線實(shí)訓(xùn)內(nèi)容進(jìn)行簡要說明。
內(nèi)容概要
《C++程序設(shè)計(jì)案例教程》首先簡單介紹了面向?qū)ο蟪绦蛟O(shè)計(jì)的基本概念,然后全面系統(tǒng)講解C++語言的基本語法和編程方法以及C++語言面向?qū)ο蟮闹匾卣鳎惡蛯ο?、繼承和派生類、多態(tài)性和虛函數(shù))等,最后介紹ACM-ICPC實(shí)訓(xùn)平臺(tái)的基本使用方法。《C++程序設(shè)計(jì)案例教程》內(nèi)含豐富的例題和習(xí)題,便于讀者學(xué)習(xí)和鞏固知識(shí)?! 禖++程序設(shè)計(jì)案例教程》可作為高等院校計(jì)算機(jī)、電子信息及信息管理等相關(guān)專業(yè)“C++程序設(shè)計(jì)”課程的教材,也可供初學(xué)者自學(xué)使用。
書籍目錄
第1章 C++程序設(shè)計(jì)概述1.1 C++語言的歷史和演進(jìn)1.1.1 計(jì)算機(jī)語言的發(fā)展1.1.2 C++語言的產(chǎn)生1.1.3 C++語言的主要版本1.2 C+4語言的特點(diǎn)1.2.1 面向過程1.2.2 面向?qū)ο?.3 面向?qū)ο蟮南嚓P(guān)概念1.4 C++程序的基本結(jié)構(gòu)和開發(fā)環(huán)境1.4.1 C++程序的基本結(jié)構(gòu)1.4.2 C++程序的實(shí)現(xiàn)1.4.3 C++程序的開發(fā)環(huán)境習(xí)題第2章 C++語言基礎(chǔ)2.1 基本數(shù)據(jù)類型2.2 標(biāo)識(shí)符與關(guān)鍵字2.3 常量與變量2.3.1 常量2.3.2 變量2.4 運(yùn)算符與表達(dá)式2.4.1 運(yùn)算符2.4.2 表達(dá)式2.5 數(shù)組2.5.1 數(shù)組的定義2.5.2 數(shù)組的賦值2.5.3 字符數(shù)組2.6 枚舉2.6.1 枚舉類型定義2.6.2 枚舉變量定義2.6.3 枚舉變量賦值2.7 結(jié)構(gòu)體2.7.1 結(jié)構(gòu)體類型定義2.7.2 結(jié)構(gòu)體變量的定義和初始化2.7.3 結(jié)構(gòu)體變量的引用2.8 共用體2.9 控制語句2.9.1 選擇結(jié)構(gòu)語句2.9.2 循環(huán)結(jié)構(gòu)語句2.9.3 轉(zhuǎn)向語句2.10 應(yīng)用實(shí)例——水果超市管理系統(tǒng)菜單設(shè)計(jì)2.10.1 系統(tǒng)功能介紹2.10.2 系統(tǒng)菜單設(shè)計(jì)習(xí)題第3章 指針和引用3.1 指針3.1.1 指針的概念3.1.2 指針變量的定義3.1.3 指針變量的運(yùn)算3.1.4 指針的指針3.2 指針與數(shù)組3.2.1 指向數(shù)組的指針3.2.2 指針數(shù)組3.3 字符串3.3.1 C風(fēng)格字符串3.3.2 string類型3.4 引用3.4.1 引用的概念3.4.2 指針和引用的區(qū)別與聯(lián)系3.5 指針及引用在函數(shù)中的作用3.6 應(yīng)用實(shí)例——果超市管理系統(tǒng)的水果基本信息管理習(xí)題第4章 函數(shù)4.1 函數(shù)的定義、聲明和類型4.1.1 函數(shù)的定義4.1.2 函數(shù)的聲明4.1.3 函數(shù)的類型4.2 函數(shù)的參數(shù)與調(diào)用4.2.1 函數(shù)的參數(shù)4.2.2 函數(shù)的調(diào)用4.3 內(nèi)聯(lián)函數(shù)4.4 函數(shù)的重載4.5 標(biāo)識(shí)符的作用域4.5.1 作用域的種類4.5.2 標(biāo)識(shí)符的作用域規(guī)則4.5.3 全局變量和局部變量4.6 應(yīng)用實(shí)例——水果超市管理系統(tǒng)中購物車的設(shè)計(jì)習(xí)題第5章 類和對象5.1 類的定義5.1.1 類的定義格式5.1.2 類成員的訪問控制5.1.3 成員函數(shù)的特性5.2 對象的定義和使用5.2.1 對象的定義方法5.2.2 對象成員的表示方法5.3 構(gòu)造函數(shù)和析構(gòu)函數(shù)5.3.1 構(gòu)造函數(shù)5.3.2 析構(gòu)函數(shù)5.4 靜態(tài)成員5.4.1 靜態(tài)數(shù)據(jù)成員5.4.2 靜態(tài)成員函數(shù)5.5 常對象和常成員5.5.1 常對象5.5.2 常數(shù)據(jù)成員5.5.3 常成員函數(shù)5.6 對象指針和對象引用5.6.1 對象指針5.6.2 this指針5.6.3 對象引用5.7 對象數(shù)組5.7.1 對象數(shù)組的定義和使用5.7.2 對象指針數(shù)組5.7.3 指向?qū)ο髷?shù)組的指針5.8 子對象和堆對象5.8.1 子對象5.8.2 堆對象5.9 友元5.9.1 友元函數(shù)5.9.2 友元類5.10 類的作用域和對象的生存期5.10.1 類的作用域5.10.2 對象的生存期5.11 應(yīng)用實(shí)例——水果超市管理系統(tǒng)基本類的設(shè)計(jì)5.11.1 “水果類”Fruit的設(shè)計(jì)5.11.2 “水果總類”FruitKind的設(shè)計(jì)5.11.3 “購買水果品種類”CartItem設(shè)計(jì)5.11.4 “購物車類”Cart的設(shè)計(jì)習(xí)題第6章 繼承6.1 繼承的概念6.1.1 什么是繼承6.1.2 派生類的定義格式6.1.3 派生類對象的結(jié)構(gòu)6.2 繼承方式6.2.1 公有繼承6.2.2 私有繼承6.2.3 保護(hù)繼承6.3 派生類的構(gòu)造函數(shù)和析構(gòu)函數(shù)6.4 多繼承6.4.1 多繼承的概念6.4.2 多繼承下的構(gòu)造函數(shù)6.4.3 二義性6.5 虛基類6.5.1 虛基類的定義6.5.2 虛基類的構(gòu)造函數(shù)和分析構(gòu)函數(shù)6.6 類型轉(zhuǎn)換6.6.1 派生類到基類的轉(zhuǎn)換6.6.2 基類到派生類的轉(zhuǎn)換6.7 應(yīng)用實(shí)例——水果超市管理系統(tǒng)中類的繼承關(guān)系6.7.1 “正價(jià)水果類”RegularFruit的設(shè)計(jì)6.7.2 “特價(jià)水果類”DiscountFruit的設(shè)計(jì)6.7.3 驗(yàn)證習(xí)題第7章 多態(tài)7.1 多態(tài)的描述7.1.1 什么是多態(tài)7.1.2 多態(tài)的分類7.1.3 多態(tài)的實(shí)現(xiàn)方式7.2 運(yùn)算符重載7.2.1 運(yùn)算符重載的定義7.2.2 雙目運(yùn)算符重載7.2.3 單目運(yùn)算符重載7.3 虛函數(shù)7.3.1 虛成員函數(shù)7.3.2 虛析構(gòu)函數(shù)7.4 抽象類7.4.1 純虛函數(shù)7.4.2 抽象類與具體類7.5 應(yīng)用實(shí)例——水果超市管理系統(tǒng)中虛函數(shù)的使用習(xí)題第8章 模板和STL8.1 模板簡介8.2 函數(shù)模板8.3 類模板8.3.1 類模板的定義8.3.2 類模板用作函數(shù)的參數(shù)8.3.3 類模板用作基類8.4 STL8.4.1 STL簡介8.4.2 容器8.4.3 迭代子8.4.4 算法習(xí)題第9章 異常處理9.1 簡介9.2 基本語法9.3 構(gòu)造函數(shù)、析構(gòu)函數(shù)和異常9.4 繼承和異常9.5 標(biāo)準(zhǔn)庫中的異常類習(xí)題第10章 ACM-ICPC簡介及在線實(shí)訓(xùn)10.1 ACM-ICPC簡介10.2 在線實(shí)訓(xùn)模式10.3 實(shí)訓(xùn)練習(xí)習(xí)題附錄A C++常用運(yùn)算符的功能、優(yōu)先級和結(jié)合性附錄B 水果超市管理系統(tǒng)源程序清單參考文獻(xiàn)
章節(jié)摘錄
對象之間傳遞信息是通過消息實(shí)現(xiàn)的,當(dāng)一個(gè)對象對另一個(gè)對象發(fā)出的消息進(jìn)行響應(yīng)時(shí),其操作才得以實(shí)現(xiàn)?! ?.類(Class) 類是人們對客觀事物的高度抽象。抽象是指抓住事物的本質(zhì)特性,找出事物之間的共性,并將具有共同特性的事物劃分為一類,得到一個(gè)抽象的概念。例如,人、汽車、房屋、水果等都是類的例子?! ☆愂且环N類型,是具有相同屬性和操作的一組對象的集合。類的作用是定義對象,類給出了屬于該類的全部對象的抽象定義,而對象則是類的具體化,是符合這種定義的一個(gè)類的實(shí)例。類還可以有子類和父類,子類通過對父類的繼承形成層次結(jié)構(gòu)?! “岩唤M對象的共同特性加以抽象并存儲(chǔ)在一個(gè)類中的能力是面向?qū)ο蠹夹g(shù)中最重要的一點(diǎn),是否建立了一個(gè)豐富的類庫則是衡量一個(gè)面向?qū)ο蟪绦蛟O(shè)計(jì)語言成熟與否的重要標(biāo)志?! ?.封裝(EncapsulatIon) 封裝是面向?qū)ο蠓椒ǖ闹匾卣髦?,是指將對象的屬性和行為(?shù)據(jù)和操作)包裹起來形成一個(gè)封裝體。該封裝體內(nèi)包含對象的屬性和對象的行為,對象的屬性由若干個(gè)數(shù)據(jù)組成,而對象的行為則由若干操作組成,這些操作是通過函數(shù)來實(shí)現(xiàn)的,也稱之為方法?! 》庋b體具有獨(dú)立性和隱藏性。獨(dú)立性是指封裝體內(nèi)所包含的屬性和行為構(gòu)成了一個(gè)不可分割的獨(dú)立單位。隱藏性是指封裝體內(nèi)的某些成員(數(shù)據(jù)或者方法)在封裝體外是不可見的,既不能被訪問,也不能被改變,這部分成員被隱藏了,具有安全性。一般情況下,封裝體和外界的聯(lián)系是通過接口來進(jìn)行的?! ?.繼承(Inhe ritance) 繼承是面向?qū)ο蠓椒ǖ牧硪粋€(gè)重要特征,是提高重用性的重要措施。繼承提供了創(chuàng)建新類的一種方法,表現(xiàn)了特殊類與一般類的關(guān)系。特殊類具有一般類的全部屬性和行為,并且還具有自己特殊的屬性和行為,這就是特殊類對一般類的繼承。通常將一般類稱為基類(父類),而將特殊類稱為派生類(子類)。 使用繼承可以使人們對事物的描述變得簡單。例如,已經(jīng)描述了動(dòng)物這個(gè)類的屬性和行為,由于哺乳動(dòng)物是動(dòng)物的一種,它除了具有動(dòng)物這個(gè)類的所有屬性和行為外,還具有自己特殊的屬性和行為,這樣在描述哺乳動(dòng)物時(shí)就只需要在繼承動(dòng)物類的基礎(chǔ)上再加入哺乳動(dòng)物所特有的屬性和行為就可以了。因此,哺乳動(dòng)物是特殊類,是子類;而動(dòng)物是一般類,是父類?! ±^承的本質(zhì)特征就是行為共享。通過行為共享,可以減少冗余性,很好地解決軟件重用性的問題。
編輯推薦
一個(gè)完整應(yīng)用案例——水果超市管理系統(tǒng)貫穿各章,按照應(yīng)用系統(tǒng)的開發(fā)步驟對該系統(tǒng)進(jìn)行分模塊講解,充分展示面向?qū)ο蟮木幊趟枷肱c方法 詳細(xì)介紹C++語言的基本概念,重點(diǎn)敘述面向?qū)ο蟪绦蛟O(shè)計(jì)的特征:封裝性(類和對象)、繼承性和多態(tài)性 分析教學(xué)中易出現(xiàn)的問題及遇到的困難 適用對象 ·高等院校計(jì)算機(jī)、電子信息及信息管理等相關(guān)專業(yè) ·計(jì)算機(jī)培訓(xùn)學(xué)?! こ绦蛟O(shè)計(jì)自學(xué)人員
圖書封面
評論、評分、閱讀與下載