本書共分為三部分。*部分為設計部分,主要針對兩個綜合項目(LostCraft游戲以及HR服務平臺)進行介紹,引出面向對象思維概念并構建面向對象思維模型;第二部分為實踐部分,將抽象的案例模型實例化,并在實現過程中掌握C 基礎語法;第三部分為提高部分,通過一個綜合項目示例培養(yǎng)學生綜合編程能力。
前 言近年來,支持面向對象程序設計的C 語言迅速在國內普及,并且我國大部分高校均開設了C 課程,但縱觀大部分高校的整體課程設計,課件內容多、小章節(jié)劃分細是普遍現象,基礎內容較多,但實際應用方面略顯不足。國內的課程多偏向于講解概念化的東西,例如什么是類、什么是構造函數、什么是OOP等,教材多偏向于介紹解釋性內容,卻沒有詳細說明為什么需要、如何應用等。鑒于此,我們將面向對象基本概念、C 語言和實際綜合案例項目進行結合,打破傳統的知識點講授順序,以案例驅動知識點的方式來講解面向對象,并最終以C 語法進行落地。
考慮到國內大部分課程中面向對象思維與C 語法分離的現狀,我們編寫了這本易于入門的教材,以幫助更多的初學者更順利地邁進面向對象的大門。本教材的特點如下。
基于解決問題的知識架構書籍的開發(fā)思路,準確定位該教材的重點目標是培養(yǎng)學生分析問題、解決問題的能力,面向對象思維能力,項目設計與建模能力。因此,本教材的編寫主要采用軟件工程模塊化、能力導向的思路,基于解決問題的知識架構模式重新構建課程知識體系,以案例、任務為驅動,結合探究式模式構建核心學習內容,并使用C 作為最終實現語言,易教易學,效果好。
基于解決問題的知識架構模式主要是以提高學習者解決問題的思維能力為導向,先建立模型, 不拘泥于編程語法細節(jié),然后按真實模型演變產生問題,循序漸進地引入知識來解決。在學習每個模型之前,注重使其與學習者已有的知識或模型建立連接,盡量基于同一個案例重構或迭代,只有當知識與場景不匹配時,才引入新的案例或場景。
基于能力導向的應用型人才培養(yǎng)要求進行分解,合理設計案例本教材所涉及的3個綜合案例均由擁有豐富企業(yè)開發(fā)經驗的實訓教師所設計,是他們多年教育教學設計和軟件開發(fā)的經驗與知識積累的結晶。
3個案例的難易程度不同,從一開始的基礎設計到最終的綜合提高,每一個案例都有對應的設計模型以及知識點,在實現過程中學生可以根據不同的項目需求學習到C 語法的相關重點和難點,并且整本書采用同一案例不同版本迭代的方式進行講解,學生每學習完一個案例版本,便可掌握一些基礎知識的應用以及實際的應用場景,這種從簡單到復雜逐漸演化的學習路徑,又讓他們可以更輕松地理解知識之間的相互關系。
基于模塊化的知識結構劃分,合理設計教材內容面向對象程序設計(C 語言)是計算機專業(yè)的核心基礎課程,結合案例特色,本書共分為三部分。第一部分為設計,主要針對綜合項目進行介紹,引出面向對象思維概念并構建面向對象思維模型;第二部分為實踐,將抽象的案例模型實例化,使學生掌握C 基礎語法;第三部分為提高,培養(yǎng)學生的綜合編程能力。
本書主要面向的群體是具有一定的C語言編程基礎但從未接觸過或者較少接觸面向對象的學生。全書共分9章,各章節(jié)內容安排如下:
第1章主要從公共平臺中下載綜合案例并進行演示,在演示的過程中進行項目介紹以及角色功能分析。學完本章內容,學生應該能夠清晰地了解該門課程所需完成的項目概況,以及該項目所涉及的角色與功能。
第2章主要從軟件行業(yè)現狀入手,結合實際項目案例,引入面向對象概念,并通過案例分析了解對象之間的行為關系且加以抽象,最后再通過生活中的案例進行思維強化。學完本章內容,學生應該能夠初步建立面向對象思維,針對已有的案例需求,可有意識地進行對象區(qū)分與功能抽象。
第3章主要從生活案例開始引入面向對象的概念,通過多個案例的描述培養(yǎng)學生的對象思維,最后通過UML工具進行建模,從而實現面向對象的設計部分。學完本章內容,學生應該能夠從日常生活或者一段項目需求描述中找到所涉及的類與對象,通過UML工具實現具體建模,并繪制出對應的類圖、時序圖與用例圖。
第4章主要針對C 的一些基礎語法知識點進行講解,同時通過介紹程序設計語言的發(fā)展史,使學生對C 語言有一個初步的認知;A語法包括:變量的定義與使用、常用的幾種數據類型、各類運算符的使用、控制語句中的判斷語句以及循環(huán)語句的使用、一維數組的定義與查找遍歷、函數與指針。
第5章主要針對設計部分進行代碼落地,將所設計的內容通過C 編程語言最終實現出來,要求學生能夠將之前所學過的基礎語法與思維建模很好地結合到一起,完成一個完整項目的開發(fā)。
第6章主要是C 語法的提高與擴展。由于項目需求越來越大,以及需求的多變性,所以需要使用更高級的語法知識來實現項目。本章主要包含以下內容:成員函數的定義與實現、函數的重載、構造函數的聲明與使用以及面向對象的封裝機制,并通過知識點的整合最終實現一個小型項目。
第7章主要通過對已有項目進行優(yōu)化,根據項目實現的合理性提出繼承概念并實現。在實現的過程中講解單繼承的概念及其存在意義,以及實現單繼承的C 語法及其應用。學完本章內容,學生應該能夠運用繼承的思想分析項目,抽取出繼承類和派生類,理解并掌握單繼承的概念以及應用方法,最終能用C 代碼實現基于繼承的項目。
第8章主要通過解決實際應用中的一些擴展問題,引出
目 錄
前言
教學建議
第一部分 設 計
第1章 綜合項目初體驗 2
1.1 項目下載地址及安裝操作說明 2
1.2 綜合項目介紹 2
1.2.1 綜合實例1LostCraft游戲項目介紹 2
1.2.2 綜合實例2HR服務平臺項目介紹 5
1.3 項目角色功能分析 7
1.3.1 綜合實例1LostCraft游戲項目的角色功能分析 7
1.3.2 綜合實例2HR服務平臺項目的角色功能分析 9
1.4 本章小結 10
1.5 本章習題 11
第2章 面向對象思維建立 12
2.1 面向對象概念的引入 12
2.1.1 軟件行業(yè)現狀 12
2.1.2 何為面向對象 13
2.2 類與對象 15
2.2.1 綜合實例1LostCraft游戲項目中對象間的行為關系 15
2.2.2 綜合實例1LostCraft游戲項目中類的抽象 16
2.2.3 類與對象的概念和關系 17
2.3 本章小結 20
2.4 本章習題 21
第3章 面向對象思維建模 22
3.1 UML概述 22
3.1.1 類圖 22
3.1.2 時序圖 24
3.1.3 用例圖 26
3.2 項目實現的UML設計 27
3.2.1 綜合實例1LostCraft游戲項目的UML設計 27
3.2.2 綜合實例2HR服務平臺項目的UML設計 32
3.3 本章小結 41
3.4 本章習題 42
第二部分 實 踐
第4章 程序設計語言C 初識 44
4.1 C 概述 44
4.2 第一個C 程序 44
4.2.1 VS 2010工具介紹 44
4.2.2 編寫第一個C 程序helloworld 45
4.2.3 代碼解釋 49
4.2.4 程序注釋 50
4.3 C 編譯過程 51
4.4 C 編程邏輯 52
4.4.1 程序中的簡單數據存儲 52
4.4.2 輸入與輸出 55
4.4.3 控制語句 57
4.4.4 一維數組 63
4.4.5 函數 66
4.4.6 指針與引用 69
4.5 本章小結 72
4.6 本章習題 73
第5章 類與對象的實現 75
5.1 綜合實例1LostCraft游戲項目 75
5.1.1 類的構成 75
5.1.2 技能類的聲明與實現 76
5.1.3 對象實例化 79
5.1.4 其他類的聲明 81
5.1.5 對象間的協作實現 84
5.2 綜合實例2HR服務平臺項目 90
5.2.1 類的聲明與實現 90
5.2.2 對象實例化之new運算符 92
5.2.3 對象資源回收之delete運算符 94
5.2.4 對象間的協作實現 95
5.3 本章小結 97
5.4 本章習題 98
第6章 深入學習面向對象函數 100
6.1 綜合實例1LostCraft游戲項目 100
6.1.1 成員函數介紹 100
6.1.2 函數重載 100
6.1.3 構造函數 102
6.1.4 C 封裝機制的private權限 104
6.2 綜合實例2HR服務平臺項目 106
6.2.1 封裝技巧的get和set方法 106
6.2.2 引用技巧的this指針 108
6.2.3 構造函數的重載 108
6.2.4 析構函數 110
6.2.5 其他核心方法的代碼實現 111
6.3 本章小結 117
6.4 本章習題 118
第7章 繼承 121
7.1 綜合實例1LostCraft游戲項目 121
7.1.1 繼承的概念 121
7.1.2 單繼承的聲明與實現 122
7.2 綜合實例2HR服務平臺項目 124
7.2.1 巧用繼承中的構造函數 125
7.2.2 訪問權限的protected關鍵字 126
7.3 本章小結 127
7.4 本章習題 128
第8章 多態(tài) 129
8.1 綜合實例1LostCraft游戲項目 129
8.1.1 多態(tài)的概念 129
8.1.2 靜態(tài)多態(tài)的函數多態(tài) 129
8.1.3 動態(tài)多態(tài)的虛函數實現 130
8.2 綜合實例2HR服務平臺項目 135
8.2.1 多態(tài)的實現 135
8.2.2 純虛函數與抽象類 136
8.3 本章小結 138
8.4 本章習題 139
第三部分 提 高
第9章 綜合項目鍛煉系統 142
9.1 系統項目介紹 142
9.2 系統項目角色功能分析 142
9.2.1 普通用戶 142
9.2.2 群主 144
9.2.3 私教/教練 145
9.3 系統項目的UML設計 146
9.3.1 用例圖 146
9.3.2 時序圖 147
9.3.3 類圖及說明 153
9.4 本章小結 180
9.5 本章習題 181
附錄 183
附錄A LostCraft游戲的實現代碼 183
附錄B HR服務平臺的實現代碼 192
附錄C 綜合項目 鍛煉系統的實現代碼 200
參考文獻 228