《新編計(jì)算機(jī)類本科規(guī)劃教材:面向?qū)ο蟪绦蛟O(shè)計(jì)與C++語(yǔ)言》討論面向?qū)ο蟪绦蛟O(shè)計(jì)的基本概念,以及使用Visual C++進(jìn)行Windows用戶界面設(shè)計(jì)的基本方法。《新編計(jì)算機(jī)類本科規(guī)劃教材:面向?qū)ο蟪绦蛟O(shè)計(jì)與C++語(yǔ)言》的內(nèi)容主要包括:C++語(yǔ)言基礎(chǔ)、面向?qū)ο蟪绦蛟O(shè)計(jì)、類和對(duì)象、友元和運(yùn)算符重載、繼承、運(yùn)行時(shí)的多態(tài)性和抽象類、模板、異常處理、I/O流類庫(kù)、MFC編程、對(duì)話框及常用控件!缎戮幱(jì)算機(jī)類本科規(guī)劃教材:面向?qū)ο蟪绦蛟O(shè)計(jì)與C++語(yǔ)言》的所有例子都用Visual C++ 6.0調(diào)試通過(guò)。
《新編計(jì)算機(jī)類本科規(guī)劃教材:面向?qū)ο蟪绦蛟O(shè)計(jì)與C++語(yǔ)言》既可作為高等院校計(jì)算機(jī)等專業(yè)面向?qū)ο蟪绦蛟O(shè)計(jì)課程的教材,也可作為從事計(jì)算機(jī)開發(fā)和應(yīng)用的工程技術(shù)人員的自學(xué)參考書。
第1章 C++語(yǔ)言基礎(chǔ)
1.1 數(shù)據(jù)類型
1.1.1 基本數(shù)據(jù)類型
1.1.2 枚舉類型
1.1.3 結(jié)構(gòu)體
1.2 基本語(yǔ)句
1.2.1 賦值語(yǔ)句
1.2.2 自加減表達(dá)式語(yǔ)句
1.2.3 分支語(yǔ)句
1.2.4 循環(huán)語(yǔ)句
1.2.5 流程控制語(yǔ)句
1.3 變量
1.3.1 變量的定義方法
1.3.2 const類型限定符
1.3.3 函數(shù)形式的變量類型轉(zhuǎn)換
1.4 函數(shù)
1.4.1 返回值
1.4.2 輸入型參數(shù)
1.4.3 輸出型參數(shù)
1.4.4 系統(tǒng)庫(kù)函數(shù)和用戶自定義函數(shù)
1.4.5 函數(shù)原型
1.4.6 內(nèi)聯(lián)函數(shù)
1.4.7 帶默認(rèn)參數(shù)的函數(shù)
1.4.8 函數(shù)重載
1.5 指針和引用
1.5.1 指針變量
1.5.2 引用變量
1.6 自定義語(yǔ)句
1.7 程序預(yù)處理
1.8 new和delete運(yùn)算符
1.9 輸入和輸出
1.1 0名字空間
習(xí)題1
第2章 面向?qū)ο蟪绦蛟O(shè)計(jì)
2.1 從面向過(guò)程到面向?qū)ο?br />
2.1.1 設(shè)計(jì)實(shí)例對(duì)比
2.1.2 從面向過(guò)程到面向?qū)ο?br />
2.2 面向?qū)ο蠹夹g(shù)的基本概念
2.2.1 類
2.2.2 實(shí)例
2.2.3 消息
2.3 面向?qū)ο蠹夹g(shù)的基本特征
2.3.1 抽象性
2.3.2 封裝性
2.3.3 繼承性
2.3.4 多態(tài)性
2.4 面向?qū)ο蟮能浖_發(fā)
2.4.1 面向?qū)ο蠓治?br />
2.4.2 面向?qū)ο笤O(shè)計(jì)
2.4.3 面向?qū)ο髮?shí)現(xiàn)
2.5 面向?qū)ο蟪绦蛟O(shè)計(jì)的優(yōu)點(diǎn)
習(xí)題2
第3章 類和對(duì)象
3.1 類
3.1.1 類的定義
3.1.2 成員變量
3.1.3 構(gòu)造函數(shù)和類的實(shí)例化
3.1.4 成員函數(shù)和對(duì)象的消息
3.1.5 析構(gòu)函數(shù)
3.1.6 const修飾符
3.1.7 成員函數(shù)重載
3.2 對(duì)象
3.3 對(duì)象成員變量
3.3.1 整體-部分對(duì)象模式和子對(duì)象
3.3.2 子對(duì)象和構(gòu)造函數(shù)設(shè)計(jì)
3.3.3 構(gòu)造函數(shù)和析構(gòu)函數(shù)自動(dòng)調(diào)用過(guò)程
3.4 內(nèi)部類
3.5 static成員
3.6 自引用對(duì)象指針this
3.7 抽象過(guò)程與類
3.8 設(shè)計(jì)舉例——銀行貸記卡系統(tǒng)
習(xí)題3
第4章 友元和運(yùn)算符重載
4.1 友元的概念
4.2 定義友元的方法
4.3 運(yùn)算符重載
4.3.1 運(yùn)算符重載的定義和規(guī)定
4.3.2 運(yùn)算符重載為類的成員函數(shù)
4.3.3 運(yùn)算符重載為類的友元函數(shù)
4.3.4 兩種運(yùn)算符重載方法的比較
4.4 設(shè)計(jì)舉例
4.4.1 數(shù)組類設(shè)計(jì)
4.4.2 字符串類設(shè)計(jì)
習(xí)題4
第5章 繼承
5.1 面向?qū)ο蟮闹匾卣鳎豪^承性
5.2 繼承
5.2.1 基類、派生類和保護(hù)成員
5.2.2 派生類的定義
5.2.3 派生類的3種繼承方式
5.2.4 派生類的基類子對(duì)象
5.2.5 派生類的析構(gòu)函數(shù)
5.2.6 派生類與基類的關(guān)系
5.3 賦值兼容規(guī)則
5.4 派生類對(duì)基類成員函數(shù)的覆蓋
5.5 多重繼承
5.5.1 多重繼承的意義
5.5.2 多重繼承的設(shè)計(jì)方法
5.5.3 多重繼承的二義性問題
5.5.4 虛基類
5.6 設(shè)計(jì)舉例
5.6.1 圖書館信息——公有繼承舉例
5.6.2 鏈?zhǔn)蕉褩!接欣^承舉例
習(xí)題5
第6章 運(yùn)行時(shí)的多態(tài)性和抽象類
6.1 面向?qū)ο蟮闹匾卣鳎憾鄳B(tài)性
6.2 運(yùn)行時(shí)的多態(tài)性
6.2.1 虛函數(shù)和運(yùn)行時(shí)的多態(tài)性
6.2.2 動(dòng)態(tài)綁定
6.2.3 虛函數(shù)和派生類對(duì)基類成員函數(shù)覆蓋的區(qū)別
6.2.4 虛析構(gòu)函數(shù)
6.3 抽象類
6.4 設(shè)計(jì)舉例
習(xí)題6
第7章 模板
7.1 參數(shù)多態(tài)性和模板
7.1.1 參數(shù)多態(tài)性
7.1.2 模板
7.2 類模板
7.3 函數(shù)模板
習(xí)題7
第8章 異常處理
8.1 異常和異常處理
8.1.1 異常的基本類型
8.1.2 傳統(tǒng)的異常處理方法及其問題
8.2 C++語(yǔ)言的異常處理方法
8.2.1 基本的異常處理方法
8.2.2 多個(gè)異常的處理方法
8.3 異常類的設(shè)計(jì)
8.4 異常拋出和處理的兩種方式
習(xí)題8
第9章 I/O流類庫(kù)
9.1 基本概念
9.2 C++的基本流類結(jié)構(gòu)
9.3 istream類和ostream類
9.4 格式控制
9.4.1 格式控制成員函數(shù)
9.4.2 操作符
9.5 文件的讀/寫
9.5.1 文件的打開和關(guān)閉
9.5.2 文本文件的讀/寫
9.5.3 二進(jìn)制代碼文件的讀/寫
9.5.4 隨機(jī)訪問文件
9.6 可流類
習(xí)題9
第10章 MFC編程
10.1 MFC體系結(jié)構(gòu)
10.2 用MFCAppWizard自動(dòng)生成Windows程序
10.2.1 應(yīng)用程序框架
10.2.2 MFC消息映射
10.2.3 使用ClassWizard工具
10.3 文檔/視圖結(jié)構(gòu)
10.3.1 文檔模板類
10.3.2 文檔類
10.3.3 視圖類
10.4 MFCWindows應(yīng)用程序典型執(zhí)行過(guò)程
10.4.1 Windows應(yīng)用程序執(zhí)行過(guò)程
10.4.2 MFCWindows應(yīng)用程序執(zhí)行過(guò)程
習(xí)題10
第11章 對(duì)話框及常用控件
11.1 對(duì)話框的創(chuàng)建與使用
11.1.1 對(duì)話框的創(chuàng)建
11.1.2 對(duì)話框的使用
11.1.3 對(duì)話框的銷毀
11.1.4 對(duì)話框數(shù)據(jù)交換和驗(yàn)證機(jī)制
11.2 MFC通用對(duì)話框
11.2.1 文件對(duì)話框
11.2.2 字體對(duì)話框
11.2.3 顏色對(duì)話框
11.3 常用控件
11.3.1 靜態(tài)文本控件
11.3.2 組框控件
11.3.3 編輯框控件
11.3.4 按鈕控件
11.3.5 列表框控件
11.3.6 組合框控件
11.4 簡(jiǎn)單數(shù)據(jù)類型
11.4.1 CString類
11.4.2 CTime類
11.4.3 CPoint類
11.4.4 CRect類
11.4.5 CSize類
習(xí)題11
參考文獻(xiàn)
面向?qū)ο蟪绦蛟O(shè)計(jì)是目前軟件開發(fā)的主流方法。從面向?qū)ο蠓治龅矫嫦驅(qū)ο笤O(shè)計(jì)的過(guò)程,以及從面向?qū)ο笤O(shè)計(jì)到面向?qū)ο髮?shí)現(xiàn)的過(guò)程具有平滑無(wú)縫過(guò)渡的性質(zhì),這是面向?qū)ο蠓椒▍^(qū)別于其他傳統(tǒng)的軟件開發(fā)方法的一個(gè)重要特點(diǎn)。
2.5面向?qū)ο蟪绦蛟O(shè)計(jì)的優(yōu)點(diǎn)
在2.1.2節(jié)曾指出,用面向過(guò)程程序設(shè)計(jì)方法進(jìn)行軟件開發(fā)存在很多問題,主要表現(xiàn)為:①軟件模塊重用難;②軟件系統(tǒng)功能擴(kuò)展難;③軟件維護(hù)難。面向?qū)ο蟪绦蛟O(shè)計(jì)技術(shù)可以有效地解決這些方面的問題。
面向?qū)ο蟪绦蛟O(shè)計(jì)具有重用性好、擴(kuò)展性好和維護(hù)性好的優(yōu)點(diǎn)。
1.重用性
重用性是面向?qū)ο蟪绦蛟O(shè)計(jì)的核心思想所在。面向?qū)ο蟪绦蛟O(shè)計(jì)的抽象性、封裝性、繼承性和多態(tài)性特點(diǎn),都首先圍繞著軟件模塊的重用性這個(gè)焦點(diǎn)問題,并為之服務(wù)。
可重用軟件模塊要求具有以下基本特點(diǎn)。
、俳Y(jié)構(gòu)完整,邏輯嚴(yán)謹(jǐn),功能明確,模塊獨(dú)立。
、诳梢浦残院,可方便地在各種不同的軟硬件環(huán)境下,以及各種不同的應(yīng)用程序中使用。
③具有良好的與外界交互和通信的功能。
、芫哂辛己玫呐c外界協(xié)同工作的能力。
面向?qū)ο蟪绦蛟O(shè)計(jì)的抽象性使得所設(shè)計(jì)的類能抓住事物的本質(zhì)特征,因而具有普遍性,具有普遍性的類模塊自然被重用的可能性大;封裝性使得設(shè)計(jì)的類有對(duì)外部隔離的內(nèi)部結(jié)構(gòu),但提供了與外部交互和通信的接口,外部程序不能隨意影響類的內(nèi)部結(jié)構(gòu);繼承性使得一個(gè)新類可以利用一個(gè)已經(jīng)存在類的資源,這本身就是軟件重用;多態(tài)性使得設(shè)計(jì)的類具有靈活性,這種靈活性使得所設(shè)計(jì)的類的抽象性更強(qiáng),因而重用性也更強(qiáng)。
2.擴(kuò)展性
現(xiàn)代應(yīng)用軟件的更新?lián)Q代越來(lái)越快,主要原因有二:第一,用戶業(yè)務(wù)發(fā)展變化引起的應(yīng)用軟件功能修改;第二,計(jì)算機(jī)軟硬件發(fā)展造成的軟硬件升級(jí)。應(yīng)用軟件要能很好地跟上這種發(fā)展變化,就需要具有良好的擴(kuò)展性,要能方便、快速、正確地進(jìn)行應(yīng)用軟件的功能擴(kuò)展。
面向?qū)ο蟪绦蛟O(shè)計(jì)的擴(kuò)展性主要體現(xiàn)在它從分析到設(shè)計(jì)、再到實(shí)現(xiàn)整個(gè)過(guò)程的一致性上。抽象地看,面向?qū)ο蟪绦蛟O(shè)計(jì)的整個(gè)設(shè)計(jì)過(guò)程是:分析過(guò)程建立起基本的框架結(jié)構(gòu),設(shè)計(jì)過(guò)程在框架內(nèi)加入具體的細(xì)節(jié)內(nèi)容,實(shí)現(xiàn)過(guò)程用某種高級(jí)程序設(shè)計(jì)語(yǔ)言實(shí)現(xiàn)所有細(xì)節(jié)內(nèi)容。
……