|
1.內(nèi)容提要
本書可以作為普通高校程序設(shè)計課程的教材,也適合已有一定基礎(chǔ)、需要進(jìn)一步系統(tǒng)化提高思維能力的廣大程序設(shè)計人員自學(xué)。本書可以作為各個層次程序設(shè)計課程相關(guān)教師的教學(xué)指導(dǎo)用書。
2.前言
多年來,作者一直從事計算思維原理及應(yīng)用的研究與實踐,并將其與認(rèn)知科學(xué)相關(guān)理論融合,取得較好的教學(xué)效果。在此基礎(chǔ)上,構(gòu)建了本書的體系結(jié)構(gòu),嘗試新的教學(xué)思路和策略。本書的主要特色如下:1)將計算思維原理隱式地貫穿在全書體系、各個章節(jié)、各個維度、各個程序設(shè)計知識的解析之中;2)正確梳理了計算機語言、計算機環(huán)境、計算機應(yīng)用和程序構(gòu)造基本模型及方法幾個方面的同步關(guān)系,并以計算思維原理耦合各個方面;3)以程序構(gòu)造基本方法及其演化為主線,將計算機語言機制巧妙地作為基本方法的支持而展開;4)從演化角度,系統(tǒng)地解析了兩種主流程序設(shè)計方法的內(nèi)在思維聯(lián)系;5) 對C++語言機制及其對程序設(shè)計基本方法的支持與拓展給予詳細(xì)的解析。 本書的出版,期望引起各界同行對普通高校程序設(shè)計課程教學(xué)思路和改革方向的思考與討論,并且,面向泛計算社會,為從根本上提高程序設(shè)計應(yīng)用能力,構(gòu)筑必要的思維基礎(chǔ)。 本書的出版,我的學(xué)生們付出了大量的工作。孫竹山、周曉和崔效偉參與了案例設(shè)計并調(diào)試了大部分案例程序,徐旻昱、沈軒、張勇、黃亞彭、丁德林、袁明明、萬逸、任杰完成了全書圖表整理和制作工作。在此,對他(她)們付出的辛勤工作表示衷心感謝! 本書的出版得到江蘇省教育廳(江蘇省“十三五”高等學(xué)校重點教材立項)、東南大學(xué)(中央高校建設(shè)一流大學(xué)/學(xué)科經(jīng)費)等組織機構(gòu)和單位的支持,在此表示衷心致謝。 本書的出版得到了東南大學(xué)出版社的支持,在此表示衷心感謝!特別感謝張煦編輯的大力支持。 本書中的觀點都是基于作者個人的認(rèn)識、理解和感悟,難免存在錯誤和不妥之處,希望讀者來信批評與指正。作者懇切盼望各位同仁來信切磋,作者的Email是junshen@seu.edu.cn。
3.目錄
1.1程序與程序設(shè)計 1.1.1程序 1.1.2程序設(shè)計 1.2程序設(shè)計四要素 1.2.1方法 1.2.2語言 1.2.3環(huán)境 1.2.4應(yīng)用 1.2.5程序設(shè)計四要素的關(guān)系 1.3程序設(shè)計的思維特征 1.4程序設(shè)計的基本學(xué)習(xí)策略及其C++映射 1.5本章小結(jié)
2.1數(shù)據(jù)類型 2.2單個數(shù)據(jù)的組織 2.3堆疊、關(guān)聯(lián)與綁定 2.3.1堆疊 2.3.2關(guān)聯(lián) 2.3.3綁定 2.4數(shù)據(jù)組織中的計算思維 2.5常用基本數(shù)據(jù)組織形態(tài) 2.5.1線性數(shù)據(jù)組織 2.5.2層次數(shù)據(jù)組織 2.5.3網(wǎng)狀數(shù)據(jù)組織 2.5.4C++語言常用基本數(shù)據(jù)組織方法及其描述 2.6本章小結(jié)
3.1表達(dá)式 3.2基本語句 3.2.1基本處理語句 3.2.2流程控制語句 3.3堆疊與嵌套 3.4數(shù)據(jù)處理中的計算思維 3.4.1表達(dá)式嵌套 3.4.2語句堆疊與嵌套 3.5常用基本數(shù)據(jù)處理方法 3.6本章小結(jié)
第二篇方法
4.1方法與模型 4.2程序構(gòu)造方法的認(rèn)識視圖 4.3程序構(gòu)造方法建立的基本原理 4.4兩種主流的程序設(shè)計方法及其思維聯(lián)系 4.4.1面向功能方法概述 4.4.2面向?qū)ο蠓椒ǜ攀?/p> 4.4.3兩者的思維聯(lián)系 4.5程序構(gòu)造方法的進(jìn)一步認(rèn)識 4.5.1數(shù)據(jù)組織與數(shù)據(jù)處理的關(guān)系 4.5.2程序構(gòu)造方法的計算思維特征 4.5.3C++語言對數(shù)據(jù)組織和數(shù)據(jù)處理的統(tǒng)一 4.6本章小結(jié)
5.1基本功能模塊的構(gòu)造機制及其描述 5.1.1基本功能模塊構(gòu)造機制的抽象 5.1.2C++語言對基本功能模塊構(gòu)造機制的支持及描述 5.2常用基本數(shù)據(jù)處理方法的C++語言函數(shù)定義及解析 5.3基本功能模塊構(gòu)造機制對數(shù)據(jù)組織方法應(yīng)用的具體規(guī)則 5.3.1基本功能模塊構(gòu)造機制中數(shù)據(jù)組織方法的應(yīng)用規(guī)則 5.3.2C++語言對基本功能模塊中數(shù)據(jù)組織方法的拓展 5.4C++語言對基本功能模塊表達(dá)模型的進(jìn)一步拓展 5.4.1空返回值 5.4.2空函數(shù)與無參函數(shù) 5.4.3默認(rèn)參數(shù)與可變參數(shù) 5.4.4多重返回 5.4.5系統(tǒng)庫函數(shù) 5.5本章小結(jié)
6.1函數(shù)之間的耦合 6.1.1函數(shù)之間交互關(guān)系的實現(xiàn)機制 6.1.2函數(shù)的調(diào)用 6.1.3函數(shù)的返回 6.1.4C++語言中函數(shù)調(diào)用與返回的描述 6.2函數(shù)的一種特殊耦合關(guān)系——遞歸 6.3C++語言對函數(shù)耦合關(guān)系的拓展 6.3.1表達(dá)式參數(shù)與表達(dá)式返回 6.3.2函數(shù)重載 6.3.3函數(shù)模板 6.3.4高階函數(shù) 6.4C++語言中面向功能方法的程序基本結(jié)構(gòu) 6.4.1多文件結(jié)構(gòu)概述 6.4.2編譯預(yù)處理 6.5深入認(rèn)識面向功能方法 6.5.1模型化方法的建立 6.5.2存在的弊端 6.5.3多維思維特征 6.6本章小結(jié)
7.1概述 7.1.1數(shù)據(jù)類型的重要性 7.1.2運用面向功能方法拓展新的數(shù)據(jù)類型——抽象數(shù)據(jù)類型(對象) 7.2數(shù)據(jù)類型拓展后帶來的問題及其處理 7.2.1實例的構(gòu)造和銷毀 7.2.2默認(rèn)構(gòu)造函數(shù)與復(fù)制構(gòu)造函數(shù) 7.2.3初始化參數(shù)列表 7.2.4同一種對象多個實例之間的數(shù)據(jù)共享 7.2.5實例訪問與this指針 7.2.6如何實現(xiàn)新類型的基本運算 7.2.7如何解決類型不一致問題 7.2.8如何實現(xiàn)新類型的輸入和輸出(可流類) 7.3讓對象生活在面向功能方法時代 7.3.1基于抽象數(shù)據(jù)類型的數(shù)據(jù)組織方法 7.3.2基于抽象數(shù)據(jù)類型的數(shù)據(jù)處理方法 7.3.3支持抽象數(shù)據(jù)類型的面向功能方法的程序構(gòu)造 7.4深入認(rèn)識數(shù)據(jù)類型 7.5本章小結(jié)
8.1對象關(guān)系概述 8.2對象嵌套關(guān)系 8.2.1對象嵌套時的實例構(gòu)造與析構(gòu) 8.2.2宿主對象的使用 8.3同族對象之間的關(guān)系 8.3.1繼承(或普通遺傳) 8.3.2多態(tài)(或遺傳變異) 8.3.3C++語言對繼承和多態(tài)的拓展 8.3.4對同族關(guān)系的進(jìn)一步認(rèn)識 8.4抽象數(shù)據(jù)類型的進(jìn)一步抽象與拓展 8.4.1類模板 8.4.2類模板特化 8.4.3類模板與繼承 8.4.4泛型編程 8.5C++語言中面向?qū)ο蠓椒ǖ某绦蚧窘Y(jié)構(gòu) 8.6深入認(rèn)識面向?qū)ο蟮姆椒?/p> 8.7本章小結(jié)
9.1共享 9.1.1函數(shù)內(nèi)的共享 9.1.2抽象數(shù)據(jù)類型內(nèi)的共享 9.1.3單文件程序內(nèi)的共享 9.1.4多文件程序內(nèi)的共享 9.1.5共享帶來的問題 9.2安全 9.2.1引用 9.2.2const限定 9.2.3異??刂?/p> 9.2.4動態(tài)類型檢查 9.3性能 9.3.1inline函數(shù) 9.3.2類的友元 9.3.3類數(shù)據(jù)成員的mutable限定 9.3.4臨時變量 9.3.5初始化參數(shù)列表 9.4對共享、安全與性能的綜合認(rèn)識 9.5本章小結(jié)
第三篇應(yīng)用
10.1什么是應(yīng)用 10.2應(yīng)用的思維特征及其C++映射 10.2.1應(yīng)用的思維特征 10.2.2應(yīng)用思維特征的C++映射 10.3學(xué)習(xí)應(yīng)用的基本策略 10.4本章小結(jié)
11.1什么是I/O流 11.2C++ I/O流機制的實現(xiàn)概述 11.3C++標(biāo)準(zhǔn)I/O流 11.3.1標(biāo)準(zhǔn)輸入流類型及其使用 11.3.2標(biāo)準(zhǔn)輸出流類型及其使用 11.3.3對標(biāo)準(zhǔn)I/O流的深入認(rèn)識 11.4標(biāo)準(zhǔn)I/O流的狀態(tài)管理和格式控制 11.5文件I/O流 11.5.1操作系統(tǒng)文件處理的一般原理 11.5.2如何創(chuàng)建文件輸入流對象實例 11.5.3如何創(chuàng)建文件輸出流對象實例 11.5.4如何關(guān)閉文件I/O流 11.5.5如何訪問文件 11.5.6文件流應(yīng)用示例及解析 11.6對I/O流的深入認(rèn)識 11.6.1I/O流概念的認(rèn)知層次 11.6.2I/O流概念的通用性 11.6.3I/O流機制的安全性 11.6.4I/O流概念的遞歸性 11.6.5I/O流的模板化(模板化I/O流) 11.6.6標(biāo)準(zhǔn)I/O流體系的可擴展性 11.7本章小結(jié)
12.1字符串的傳統(tǒng)處理方法 12.1.1通過字符數(shù)組處理符號串 12.1.2通過字符型指針處理符號串 12.1.3傳統(tǒng)處理方法存在的問題 12.2自己構(gòu)建字符串?dāng)?shù)據(jù)類型String 12.3C++標(biāo)準(zhǔn)庫的字符串?dāng)?shù)據(jù)類型string 12.4字符串流 12.5進(jìn)一步認(rèn)識字符串 12.6本章小結(jié)
13.1什么是異常 13.2如何處理異常 13.3C++異常處理機制 13.3.1異常處理框架及其描述 13.3.2C++異常機制使用的基本規(guī)則 13.3.3異常處理時的對象實例析構(gòu) 13.4深入認(rèn)識異常 13.5本章小結(jié)
14.1泛型程序設(shè)計及其思維本質(zhì) 14.1.1泛型程序設(shè)計 14.1.2泛型程序設(shè)計的思維本質(zhì) 14.2C++標(biāo)準(zhǔn)模板庫STL 14.2.1STL的基本原理及其體系結(jié)構(gòu) 14.2.2對類型通用化的處理 14.2.3實例解析 14.2.4STL的基本應(yīng)用 14.2.5深入認(rèn)識STL 14.3本章小結(jié)
15.1基于框架的程序設(shè)計基本思維 15.2MFC框架的基本原理 15.2.1Windows操作系統(tǒng)定義的基本程序模型 15.2.2MFC對Windows基本程序模型的包裝 15.2.3MFC與Visual C++的關(guān)系 15.3MFC框架的基本應(yīng)用 15.3.1MFC框架編程概述 15.3.2MFC框架編程的基本步驟 15.3.3應(yīng)用示例及解析 15.3.4從Visual C++到Visual Studio 15.4深入認(rèn)識基于框架的程序設(shè)計 15.4.1框架式程序設(shè)計方法的必要性 15.4.2MFC框架的高級應(yīng)用 15.5本章小結(jié)
16.1基本應(yīng)用模式及其建構(gòu) 16.1.1基本慣用法及其建構(gòu) 16.1.2數(shù)據(jù)組織結(jié)構(gòu)中的基本應(yīng)用模式及其建構(gòu) 16.1.3數(shù)據(jù)處理算法中的基本應(yīng)用模式及其建構(gòu) 16.2設(shè)計模式及其建構(gòu) 16.2.1MVC模式及其建構(gòu) 16.2.2工廠方法模式及其建構(gòu) 16.2.3適配器模式及其建構(gòu) 16.3模式及其建構(gòu)應(yīng)用中的計算思維 16.4本章小結(jié)
17.1什么是廣譜隱式應(yīng)用 17.2廣譜隱式應(yīng)用的核心與關(guān)鍵 17.3應(yīng)用示例 17.4深入認(rèn)識廣譜隱式應(yīng)用 17.5本章小結(jié)
18.1應(yīng)用的進(jìn)化之道 18.2應(yīng)用的思維之道 18.3應(yīng)用之大道 18.4本章小結(jié)
|
|
| ||||||
|
| ||||||
|
| ||||||
|
| ||||||