 |
-- 會員 / 註冊 --
|
|
|
|
UML+OOPC嵌入式C語言開發精講 ( 簡體 字) |
作者:高煥堂 | 類別:1. -> 軟體工程 -> UML 2. -> 程式設計 -> C -> C |
譯者: |
出版社:電子工業出版社 | 3dWoo書號: 15496 詢問書籍請說出此書號!【缺書】 【不接受訂購】 |
出版日:9/1/2008 |
頁數:564 |
光碟數:1 |
|
站長推薦:  |
印刷:黑白印刷 | 語系: ( 簡體 版 ) |
|
【不接受訂購】 | ISBN:9787121071089 |
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 序 |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證) |
作者序: |
譯者序: |
前言: |
內容簡介:OOPC通過將面向對象程序設計技術與C語言相結合,以提升C語言的簡潔性、易讀性和重復使用性,進而提升嵌入式系統分析及架構設計的技術能量。本書由淺入深,從C語言的復習開始,然后講述C語言如何與OOP相結合,接著從面向對象技術進入UML,最后教讀者從實踐應用出發,活用UML+OOPC開發流程,做好系統分析和架構設計,實現高質量的嵌入式軟件系統。本書的實例通過定制頭文件,為ANSI-C和Keil C51添加類、接口的定義機制,來說明面向對象程序設計技術與C語言相結合的優點和特色。通過詳細介紹相關的類、接口、UML和基本模式,以深入進行UML分析及設計,讓讀者精確掌握系統需求和設計優美的系統架構,以求大幅提高嵌入式系統的可靠性和質量。本書適合廣大嵌入式系統及應用開發人員閱讀。 |
目錄:第1篇 復習ANSI-C語言 1 第1章 嵌入式時代最劃算策略 3 1.1 迎接高質量的嵌入式軟件時代 4 1.2 基于TURBO C 2.0環境的評估 4 1.2.1 加入第1個類 4 1.2.2 加入第2個類 6 1.2.3 加入第3個類 9 1.2.4 加入第4個類 11 1.2.5 評估統計圖 13 1.3 基于VISUAL C++環境的評估 14 1.4 LW_OOPC與C++ 的比較和評估 17 第2章 C程序的基本組成 19 2.1 認識C語言與LW_OOPC語言 20 2.1.1 C語言的身世背景 20 2.1.2 C影響C++、Java、C#等語言文化 20 2.1.3 用C語言編寫面向對象(Object-Oriented)程序 21 2.1.4 面向對象概念讓UML與C攜手合作 22 2.2 函數:C程序的基本結構 25 2.2.1 指令、函數與程序 25 2.2.2 函數間的調用(Call) 25 2.2.3 庫函數 26 2.3 變量的概念 26 2.3.1 數據分類與變量 26 2.3.2 聲明變量 27 2.4 變量的聲明格式 27 2.5 如何輸出數據 28 2.6 如何傳遞參數 29 2.7 如何替函數和變量命名 30 第3章 C語言的數據類型 33 3.1 基本數據類型 34 3.2 整數類型 34 3.2.1 short int類型 35 3.2.2 long int 類型 36 3.3 無符號整數 37 3.3.1 無符號字符(unsigned char) 38 3.3.2 無符號短整數(unsigned short int) 38 3.3.3 無符號(長)整數(unsigned int) 39 3.4 整數的輸出格式 41 3.5 字符類型 43 3.5.1 一般字符 43 3.5.2 控制字符 45 3.6 浮點數類型 46 3.6.1 float類型 46 3.6.2 double類型 48 第4章 C的數據運算 51 4.1 基本運算符號 52 4.2 算術及賦值運算 52 4.3 關系運算 56 4.4 邏輯運算符號 57 4.5 算術賦值運算符號 59 4.6 加1及減1運算符號 60 4.7 取地址運算符號 61 4.8 按位運算符號 62 4.8.1 &、|、^ 及~ 運算符號 63 4.8.2 <<及>>運算符號 65 4.8.3 按位賦值運算符號 66 4.9 類型轉換運算符號 67 第5章 決策與循環 69 5.1 邏輯運算與決策 70 5.2 嵌套的IF指令 71 5.3 多選1 的抉擇 72 5.4 WHILE 循環 74 5.5 FOR 循環 75 5.5.1 基本格式 75 5.5.2 各式各樣的for循環 76 5.6 DO循環 78 第6章 C語言的指針 79 6.1 認識指針 80 6.1.1 指針是什么 80 6.1.2 指針的聲明 80 6.1.3 指針的指針 81 6.2 傳遞指針參數 82 6.3 函數回傳指針 83 6.4 函數指針 84 第7章 結構(STRUCT)及動態內存分配 87 7.1 C語言的結構(STRUCT) 88 7.2 結構指針 90 7.3 傳遞結構參數 91 7.4 結構內的函數指針 92 7.4.1 先介紹typedef指令 92 7.4.2 復習函數指針 93 7.4.3 把函數指針放入結構里 94 7.4.4 讓函數存取結構里的數據細項 94 7.5 動態內存分配 97 7.5.1 malloc()及free()函數 97 7.5.2 calloc()及realloc()函數 100 第8章 外部變量與靜態函數 101 8.1 變量的儲存種類 102 8.2 自動變量 103 8.3 外部變量 103 8.4 外部靜態變量 104 8.5 EXTERN種類 107 8.6 靜態函數 110 第9章 數組與字符串 113 9.1 數組的意義 114 9.2 1維數組 114 9.3 1維數組與指針 115 9.4 2維數組與多維數組 120 9.5 2維數組與指針 121 9.6 數組參數 123 9.6.1 1維數組參數 123 9.6.2 2維數組參數 124 9.7 為數組賦初值 125 9.8 使用字符串 126 9.8.1 何謂字符串 126 9.8.2 給予字符串初值 126 9.9 庫字符串函數 127 9.10 傳遞字符串參數 129 第10章 預處理程序 131 10.1 預處理程序的工作 132 10.2 使用宏 132 10.2.1 宏常數 132 10.2.2 #define與typedef的區別 134 10.2.3 帶參數的宏 135 10.2.4 取消宏 138 10.3 添加頭文件 139 10.4 條件性編譯 140 10.4.1 條件性編譯概述 140 10.4.2 條件性定義 141 10.5 認識MISOO的LW_OOPC.H宏文件 143 10.5.1 復習重要的C宏 143 10.5.2 使用lw_oopc.h頭文件 145 第2篇 介紹面向對象概念及OOPC 149 第11章 認識對象(OBJECT) 151 11.1 自然界的對象(NATURAL OBJECT) 152 11.1.1 對象(Object) 152 11.1.2 信息(Message) 152 11.1.3 事件(Event) 152 11.2 軟件對象(SOFTWARE OBJECT) 153 11.2.1 “抽象”的意義 153 11.2.2 抽象表示 153 11.2.3 數據和函數 153 11.2.4 歷史的足跡 154 11.3 對象與函數 155 11.3.1 函數的角色 155 11.3.2 對象與類 156 11.3.3 類的用途:描述對象的共同特點 156 11.4 對象與類 157 11.4.1 類的用途 157 11.4.2 定義類 158 11.5 對象指針 161 11.6 構造器(CONSTRUCTOR) 162 11.7 類設計的實例說明 163 11.7.1 以電燈(Light)類為例 163 11.7.2 以數學矩陣(Matrix)類為例 164 第12章 對象溝通方法 167 12.1 “信息傳遞”溝通方法 168 12.2 “信息傳遞”示例說明 169 12.2.1 分析與設計 169 12.2.2 設計OOPC類 169 12.2.3 生成OOPC對象 170 12.3 以OOPC實現:使用TURBO C 170 12.4 以OOPC實現:使用VC++ 2005 173 第13章 對象溝通實例 181 13.1 以向量類封裝1維數組 182 13.1.1 定義Vector類 182 13.1.2 運用malloc()庫函數 183 13.1.3 運用#define語句 184 13.1.4 運用void*指針 185 13.2 以矩陣類封裝2維數組 189 13.2.1 定義Matrix類 189 13.2.2 Matrix對象包含Vector對象 190 第14章 認識接口(INTERFACE) 197 14.1 如何定義接口 198 14.2 多個類實現同一接口 201 14.3 以接口實現多態性(POLYMORPHISM) 204 14.4 一個類實現多個接口 208 第15章 接口應用實例 213 15.1 電池接口的用意 214 15.2 設計電池接口 214 15.3 以OOPC實現接口設計 216 第16章 集合對象鏈表(LINKED LIST) 221 16.1 認識集合對象 222 16.2 以OOPC實現LLIST集合類 224 16.3 應用實例說明 229 第17章 LW_OOPC宏的設計思維 235 17.1 前言 236 17.2 從ANSI-C出發 236 17.3 運用C的結構 237 17.4 設計構造器 238 17.5 運用函數指針 239 17.6 運用C宏 240 17.6.1 定義宏:CLASS(類名稱) 241 17.6.2 定義宏:CTOR(類名稱) 242 17.7 定義接口(INTERFACE)宏 243 17.8 定義CTOR2()構造器宏 246 17.9 將宏獨立成LW_OOPC.H頭文件 248 第3篇 介紹UML 251 第18章 認識UML 253 18.1 UML:世界標準對象模型語言 254 18.2 UML的演化 254 18.3 UML的基本元素 256 18.4 UML的圖示 256 第19章 UML類圖 259 19.1 為什么需要面向對象思維 260 19.2 為什么需要設計類 261 19.3 為什么要描述類間的關系 263 19.3.1 類間的組合關系 263 19.3.2 類間的結合關系 265 19.4 為什么要繪制UML類圖 267 19.5 如何繪制UML類圖 270 19.5.1 EA的類圖 270 19.5.2 StarUML的類圖 272 19.5.3 JUDE的類圖 272 19.6 如何得到類 274 19.6.1 從對象歸類而得到類 274 19.6.2 從領域概念(Domain Concepts)找到類 276 第20章 UML用例圖 279 20.1 為什么需要用例圖 280 20.2 用例的內涵是什么 280 20.2.1 用例圖表達What及Who 281 20.2.2 用例描述表達How及When 282 20.3 用例與對象的密切關系 283 20.4 用例的經濟意義 284 20.5 用例間的關系 286 20.5.1 ud Bill-1 UC描述:結賬 288 20.5.2 ud Bill-1 UC描述:買漢堡套餐 288 20.5.3 ud Bill-2 UC描述:結賬 289 20.5.4 ud Bill-2 UC描述:買漢堡套餐 289 20.5.5 ud Bill-2 UC描述:贈送玩具 289 20.6 企業用例與系統用例 290 20.6.1 上、下層級的用例 290 20.6.2 上、下層級用例的美妙關聯 290 20.6.3 從“上層用例”導出“下層用例”的步驟 292 20.7 如何繪制UML用例圖 295 第21章 UML序列圖 299 21.1 UML序列圖的意義 300 21.2 UML序列圖的語法 301 21.3 如何繪制UML序列圖 302 21.4 從序列圖落實到OOPC類 304 21.4.1 共享類的考慮 305 21.4.2 對應到類 306 21.4.3 對應到函數 306 21.4.4 對方對象→信息名稱(參數) 308 21.5 UML序列圖示例說明 309 21.5.1 繪制用例圖 309 21.5.2 繪制類圖 310 21.5.3 繪制序列圖 311 21.5.4 對應到OOPC類 312 第22章 UML對象狀態圖 315 22.1 WHY 狀態圖 316 22.2 簡介UML狀態圖 316 22.2.1 狀態、事件與轉移 316 22.2.2 活動 318 22.2.3 復合狀態 319 22.2.4 子機狀態 320 22.2.5 歷史狀態 321 22.2.6 決策 323 22.2.7 匯合 323 22.2.8 并行 324 22.2.9 同步 324 22.3 使用UML繪圖工具 325 22.3.1 繪圖區 325 22.3.2 工具箱 326 22.3.3 畫一個狀態 326 22.3.4 狀態轉移 327 22.3.5 活動的表示 328 22.4 如何以OOPC實現UML狀態圖 329 22.4.1 舉例:以小燈狀態為例 329 22.4.2 舉例:以冰箱的狀態為例 332 22.4.3 舉例:以銀行賬戶(Account)的狀態為例 334 第4篇 UML+OOPC實用示例 341 第23章 UML+OOPC實用示例之一 343 23.1 形形色色的涂鴉程序 344 23.2 涂鴉程序示例說明 345 23.3 涂鴉系統分析與設計 346 23.3.1 繪制系統用例(Use Case)圖 346 23.3.2 繪制類圖 348 23.3.3 繪制Scribble狀態圖 349 23.3.4 繪制序列圖 350 23.3.5 用例:“涂鴉” 350 23.3.6 用例:“播放” 351 23.4 涂鴉程序的實現:使用OOPC語言 352 第24章 UML+OOPC實用示例之二 365 24.1 認識“錄音”概念和技術 366 24.1.1 認識PCM規格 366 24.1.2 設定錄音格式 366 24.1.3 設定緩沖區格式 367 24.1.4 將音頻數據寫入.wav聲音文件 367 24.1.5 使用Win32所提供的錄音API 368 24.2 單純“錄音”的示例分析 368 24.2.1 繪制系統用例圖 368 24.2.2 繪制類圖 368 24.2.3 繪制序列圖 370 24.3 “錄音/播放”示例的分析 370 24.3.1 繪制系統用例圖 370 24.3.2 繪制類圖 372 24.3.3 繪制序列圖 372 24.4 “錄音/播放”示例的實現 372 第25章 UML+OOPC實現示例之三 385 25.1 層次分析(AHP)法簡介 386 25.2 AHP的分析步驟 387 25.3 如何得到權數值 388 25.3.1 成對相比 388 25.3.2 從“成對比值”算出“權數值” 391 25.3.3 “成對比值”的一致性檢驗 396 25.4 “AHP”示例分析與設計 398 25.4.1 繪制系統用例圖 398 25.4.2 繪制類圖 399 25.4.3 繪制序列圖 400 25.5 “AHP”示例的實現:使用OOPC 402 25.5.1 準備決策數據 402 25.5.2 以OOPC編寫AHP程序 404 第26章 UML+OOPC實用示例之四 413 26.1 什么是半加器 414 26.2 設計一個“位計算器” 415 26.2.1 以軟件模擬硬件的意義 415 26.2.2 設計單位計算器的操作畫面 416 26.2.3 設計單位計算器的UML狀態圖 417 26.3 實現位計算器:使用OOPC 418 第5篇 面向對象Keil C51語言:在單片機(SOC)上的應用 427 第27章 替KEIL C51黃袍加身 429 27.1 以200 BYTES代價換得優雅架構 430 27.2 3種彈性又高雅的寫法 431 27.2.1 動態型(Dynamic, 昵稱為豪華型) 431 27.2.2 靜態型(Static, 昵稱為標準型) 431 27.2.3 純粹靜態型(Pure Static, 昵稱為精簡型) 432 27.3 靜態(STATIC)型寫法及其評估 432 27.4 純粹靜態(PURE STATIC)型寫法及其評估 441 27.5 動態(DYNAMIC)型寫法及其評估 444 第28章 KEIL C51的特殊數據類型 449 28.1 8051的CODE存儲區 450 28.2 8051的DATA存儲區 450 28.3 KEIL C的存儲模式 451 28.4 KEIL C的專用數據類型 452 第29章 以KEIL C51定義類 455 29.1 定義類 456 29.2 構造器(CONSTRUCTOR) 456 29.3 KEIL C51類設計之實例說明 457 29.3.1 分析與設計 457 29.3.2 以Keil C實現紅綠燈控制程序 459 29.3.3 紅綠燈類的另一種寫法 461 第30章 應用范例一 463 30.1 以TOGGLE LIGHT電燈為例 464 30.1.1 分析與設計 464 30.1.2 設計OOPC類 464 30.1.3 以OOPC實現:使用Keil C 465 30.2 以紅綠燈控制系統為例 469 30.2.1 分析與設計 469 30.2.2 以LW_OOPC實現:使用Keil C 473 第31章 應用范例二 479 31.1 界面用途:從硬件的PNP談起 480 31.1.1 硬件端口(Port)就是接口 480 31.1.2 軟件接口 480 31.2 LED顯示器控制設計(1) 481 31.2.1 分析與設計 481 31.2.2 UML圖示 482 31.2.3 以Keil C實現范例 483 31.3 LED顯示器控制設計(2) 486 31.3.1 分析與設計 486 31.3.2 以Keil C實現范例 487 31.4 LED顯示器控制設計(3) 489 第32章 應用范例三 495 32.1 模式觀念 496 32.2 軟件設計模式 496 32.2.1 Why 設計模式 496 32.2.2 設計模式的起源 497 32.3 IOC模式簡介 498 32.3.1 傳統細節設計方法:高度耦合性 498 32.3.2 使用接口方法:中等耦合性 500 32.3.3 使用IoC模式:低度耦合性 501 32.4 以8051控制LED顯示器為例 504 32.4.1 分析與設計 504 32.4.2 以Keil C實作范例 505 32.5 IOC與COR模式的攜手合作 508 第33章 應用范例四 515 33.1 前言 516 33.2 活用STATE模式 516 33.2.1 溫故而知新 516 33.2.2 State模式 518 33.3 以飛機狀態控制為例 522 33.3.1 需求分析(Analysis) 522 33.3.2 以Keil C實現范例(1) 523 33.3.3 以Keil C實現范例(2) 527 33.4 結語:類、接口與模式 532 33.5 祝福您 536 關于本書的習題和示例代碼 537 著作權說明 |
序: |
|