《UML+OOPC嵌入式C语言开发精讲》PDF下载

  • 购买积分:16 如何计算积分?
  • 作  者:高焕堂著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2008
  • ISBN:9787121071089
  • 页数:539 页
图书介绍:本书通过将面向对象程序设计技术与C语言相结合,以提升C语言的简洁性、易读性和重复使用性,进而提升嵌入式系统分析及架构设计的技术能量。本书由浅入深,从C语言的复习开始,然后讲述C语言如何与OOP相结合,接着从面向对象技术进入UML,最后教读者从实践应用出发,活用UML+OOPC开发流程,做好系统分析和架构设计,实现高质量的嵌入式软件系统。本书适合广大嵌入式系统及应用开发人员阅读。

第1篇 复习ANSI-C语方 1

第1章 嵌入式时代最划算策略 3

1.1迎接高质量的嵌入式软件时代 4

1.2基于Turbo C2.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.4LW OOPC与C++的比较和评估 17

第2章 C程序的基本组成 19

2.1认识C语言与LW_OOPC语言 20

2.1.1C语言的身世背景 20

2.1.2C影响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.1shortint类型 35

3.2.2longint类型 36

3.3无符号整数 37

3.3.1无符号字符(unsignedchar) 38

3.3.2无符号短整数(unsignedshortint) 38

3.3.3无符号(长)整数(unsignedint) 39

3.4整数的输出格式 41

3.5字符类型 43

3.5.1一般字符 43

3.5.2控制字符 45

3.6浮点数类型 46

3.6.1float类型 46

3.6.2double类型 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.4while循环 74

5.5for循环 75

5.5.1基本格式 75

5.5.2各式各样的for循环 76

5.6do循环 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.1C语言的结构(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.1malloc()及free()函数 97

7.5.2calloc()及realloc()函数 100

第8章 外部变量与静态函数 101

8.1变量的储存种类 102

8.2自动变量 103

8.3外部变量 103

8.4外部静态变量 104

8.5extern种类 107

8.6静态函数 110

第9章 数组与字符串 113

9.1数组的意义 114

9.21维数组 114

9.31维数组与指针 115

9.42维数组与多维数组 120

9.52维数组与指针 121

9.6数组参数 123

9.6.11维数组参数 123

9.6.22维数组参数 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自然界的对象(NaturalObject) 152

11.1.1对象(Object) 152

11.1.2信息(Message) 152

11.1.3事件(Event) 152

11.2软件对象(SoftwareObject) 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实现:使用TurboC 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.2Matrix对象包含Vector对象 190

第14章 认识接口(Intertace) 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章 集合对象链表(LinkedList) 221

16.1认识集合对象 222

16.2以OOPC实现LList集合类 224

16.3应用实例说明 229

第17章 LWOOPC宏的设计思维 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将宏独立成1w_oopc.h头文件 248

第3篇 介绍UML 251

第18章 认识UML 253

18.1UML:世界标准对象模型语言 254

18.2UML的演化 254

18.3UML的基本元素 256

18.4UML的图示 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.1EA的类图 270

19.5.2StarUML的类图 272

19.5.3JUDE的类图 272

19.6如何得到类 274

19.6.1从对象归类而得到类 274

19.6.2从领域概念(DomainConcepts)找到类 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.1udBill-1UC描述:结账 288

20.5.2udBill-1UC描述:买汉堡套餐 288

20.5.3udBill-2UC描述:结账 289

20.5.4udBill-2UC描述:买汉堡套餐 289

20.5.5udBill-2UC描述:赠送玩具 289

20.6企业用例与系统用例 290

20.6.1上、下层级的用例 290

20.6.2上、下层级用例的美妙关联 290

20.6.3从“上层用例”导出“下层用例”的步骤 292

20.7如何绘制UML用例图 295

第21章 UML序列图 299

21.1UML序列图的意义 300

21.2UML序列图的语法 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.5UML序列图示例说明 309

21.5.1绘制用例图 309

21.5.2绘制类图 310

21.5.3绘制序列图 311

21.5.4对应到OOPC类 312

第22章 UML对象状态图 315

22.1Why状态图 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绘制系统用例(UseCase)图 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.2AHP的分析步骤 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章 替KeilC51黄袍加身 429

27.1以200Bytes代价换得优雅架构 430

27.23种弹性又高雅的写法 431

27.2.1动态型(Dynamic,昵称为豪华型) 431

27.2.2静态型(Static,昵称为标准型) 431

27.2.3纯粹静态型(PureStatic,昵称为精简型) 432

27.3静态(Static)型写法及其评估 432

27.4纯粹静态(Pure Static)型写法及其评估 441

27.5动态(Dynamic)型写法及其评估 444

第28章 KeilC51的特殊数据类型 449

28.18051的CODE存储区 450

28.28051的DATA存储区 450

28.3KeilC的存储模式 451

28.4KeilC的专用数据类型 452

第29章 以KeilC51定义类 455

29.1定义类 456

29.2构造器(Constructor) 456

29.3KeilC51类设计之实例说明 457

29.3.1分析与设计 457

29.3.2以KeilC实现红绿灯控制程序 459

29.3.3红绿灯类的另一种写法 461

第30章 应用范例一 463

30.1以ToggleLight电灯为例 464

30.1.1分析与设计 464

30.1.2设计OOPC类 464

30.1.3以OOPC实现:使用KeilC 465

30.2以红绿灯控制系统为例 469

30.2.1分析与设计 469

30.2.2以LW_OOPC实现:使用KeilC 473

第31章 应用范例二 479

31.1界面用途:从硬件的PnP谈起 480

31.1.1硬件端口(Port)就是接口 480

31.1.2软件接口 480

31.2LED显示器控制设计(1) 481

31.2.1分析与设计 481

31.2.2UML图示 482

31.2.3以KeilC实现范例 483

31.3LED显示器控制设计(2) 486

31.3.1分析与设计 486

31.3.2以KeilC实现范例 487

31.4LED显示器控制设计(3) 489

第32章 应用范例三 495

32.1模式观念 496

32.2软件设计模式 496

32.2.1Why设计模式 496

32.2.2设计模式的起源 497

32.3IoC模式简介 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以KeilC实作范例 505

32.5IoC与COR模式的携手合作 508

第33章 应用范例四 515

33.1前言 516

33.2活用State模式 516

33.2.1温故而知新 516

33.2.2State模式 518

33.3以飞机状态控制为例 522

33.3.1需求分析(Analysis) 522

33.3.2以KeilC实现范例(1) 523

33.3.3以KeilC实现范例(2) 527

33.4结语:类、接口与模式 532

33.5祝福您 536

关于本书的习题和示例代码 537

著作权说明 538