当前位置:首页 > 工业技术
面向对象程序设计基础  第2版
面向对象程序设计基础  第2版

面向对象程序设计基础 第2版PDF电子书下载

工业技术

  • 电子书积分:15 积分如何计算积分?
  • 作 者:李师贤等编著
  • 出 版 社:北京:高等教育出版社
  • 出版年份:2005
  • ISBN:704016650X
  • 页数:489 页
图书介绍:本书第一版为“面向21世纪课程教材”,自出版以来,深受读者欢迎。作为给程序设计初学者提供的一本入门教材,本书以循序渐进、深入浅出的方式,引导众多学子走进了面向对象程序设计的大门。新版教材在归纳多年教学体会的基础上,以继续保持原书的特色为前提,对前版教材进行了修改和补充,使相关概念阐述得更加通俗易懂;并适当增加了相关的例子,以求使读者在学习时能更好地理解和领会。新版教材内容包括了程序设计基础、程序设计语言、算法与复杂性和软件工程等内容,可作为高校计算机专业本科生程序设计课程的入门教材,也可供相关专业高年级学生作为面向对象程序设计课程教材使用。
《面向对象程序设计基础 第2版》目录

1.1 计算机程序 1

1.1.1 算法 1

1.1.2 实体 1

第一章 程序设计与C++语言初步 1

1.1.3 程序 3

1.1.4 程序设计 5

1.2 程序设计的演变 6

1.2.1 早期程序设计 6

1.2.2 结构化程序设计 6

1.2.3 面向对象程序设计 7

1.3.2 字符集 8

1.3 程序设计语言的定义 8

1.3.1 语法和语义 8

1.3.3 Backus-Naur范式 9

1.3.4 语法图 11

1.4 C++语言的程序结构 12

1.4.1 C++语言程序的组成 12

1.4.2 C++语言程序的基本结构 12

1.4.3 C++语言程序的退化结构 14

1.5 C++语言程序的运行 15

1.6 面向对象程序设计 16

1.6.1 面向对象程序设计过程 16

1.6.2 面向对象程序设计的特征 17

本章小结 19

练习与思考题 19

上机实习题 20

第二章 基本数据类型 22

2.1 数据类型概述 22

2.1.1 类型 22

2.1.2 类型的作用 22

2.1.3 C++语言的类型 23

2.2 保留字、标识符、常量与变量 24

2.2.1 单词 24

2.2.3 标识符 25

2.2.2 保留字 25

2.2.4 选择合适的标识符 26

2.2.5 常量与变量 27

2.2.6 简单输入/输出 28

2.3 基本数据类型 29

2.3.1 字符类型 31

2.3.2 整数类型 33

2.3.3 浮点类型和双精度类型 34

2.3.4 字符串常量 35

2.3.5 符号常量 36

2.4 运算符与表达式 38

2.4.1 表达式 38

2.4.2 表达式的运算次序 39

2.4.3 C++的运算符 40

2.4.4 算术运算 42

2.4.5 关系运算 43

2.4.6 逻辑运算 44

2.4.7 位运算 44

2.4.8 条件运算 47

2.4.9 sizeof运算 47

2.4.10 赋值运算 48

2.4.11 逗号运算 49

2.4.12 表达式与运算符的应用举例 49

2.5.1 隐式类型转换 50

2.5 类型之间的关系 50

2.5.2 强制类型转换 52

2.6 一个简单的应用程序 52

本章小结 54

练习与思考题 54

上机实习题 55

第三章 基本控制结构 56

3.1 程序的基本控制结构 56

3.1.1 C++语言的简单语句 56

3.1.2 单入口/单出口控制结构 57

3.1.3 结构化程序设计工具 57

3.2.1 if语句 60

3.2 选择结构 60

3.2.2 switch语句 67

3.3 循环结构 73

3.3.1 while语句 73

3.3.2 do_while语句 77

3.3.3 for语句 79

3.3.4 一个简单的循环例子 83

3.3.5 设计正确的循环 85

3.4 简单程序设计举例 86

3.4.1 问题 86

3.4.2 求解问题的精美算法 87

3.4.3 求解问题的原始算法 88

本章小结 89

练习与思考题 89

上机实习题 91

第四章 函数 92

4.1 C++语言的函数 92

4.1.1 例程与函数 92

4.1.2 函数的建立与使用 93

4.1.3 两个简单的例子 94

4.2 函数的声明与调用 97

4.2.1 函数声明 97

4.2.2 return语句 98

4.2.3 函数调用 99

4.2.4 函数与模块 102

4.2.5 内联函数 104

4.3 参数传递 107

4.3.1 参数传递方式 107

4.3.2 按值调用 107

4.3.3 缺省参数 109

4.4 作用域与生存期 110

4.4.1 标识符的作用域 110

4.4.3 变量的生存期 112

4.5 局部变量与全局变量 112

4.4.2 C++程序的存储组织 112

4.5.1 局部变量 113

4.5.2 全局变量 114

4.5.3 局部变量与全局变量的讨论 115

4.6 变量的存储类别 118

4.6.1 自动变量和寄存器变量 118

4.6.2 静态变量 119

4.6.3 外部变量 120

4.7 递归程序设计 120

4.7.1 简单递归程序 121

4.7.2 梵塔问题 123

4.8 预处理命令 125

4.8.1 文件包含 126

4.8.2 宏定义 127

4.8.3 条件编译 128

4.9 C++语言的库函数 129

4.9.1 库函数的用法 129

4.9.2 常用数值函数 129

4.9.3 常用字符函数 130

本章小结 131

练习与思考题 132

上机实习题 136

5.1.1 循环计数器 137

5.1 类的引入 137

第五章 类与对象 137

5.1.2 关于循环计数器的讨论 141

5.1.3 类作为构造程序的基本单位 142

5.2 类的定义 143

5.2.1 类声明 143

5.2.2 类成员的访问控制 145

5.2.3 类界面与类实现 146

5.2.4 标识符的类作用域 149

5.3 对象的创建 150

5.3.1 对象声明 150

5.3.2 使用对象成员 151

5.4 对象的初始化 153

5.3.3 对象的生存期 153

5.4.1 构造函数 154

5.4.2 析构函数 158

5.4.3 对象成员的初始化 160

5.5 使用类与对象构造程序的实例 163

5.5.1 模拟数字式时钟 163

5.5.2 模拟加油站油泵的对象工作 166

5.5.3 单实例对象类 168

5.6.1 基本数据类型与对象 170

5.6.2 抽象数据类型 170

5.6 关于类与对象的进一步讨论 170

5.6.3 设计良好的类界面 171

5.6.4 再论对象 172

5.6.5 下一步 172

本章小结 173

练习与思考题 174

上机实习题 180

第六章 复合数据类型 181

6.1 变量与赋值的进一步讨论 181

6.2 指针类型 182

6.2.1 指针的声明 183

6.2.2 指针的引用 184

6.2.4 按引用调用的参数传递方式 186

6.2.3 指针的运算 186

6.3 数组类型 188

6.3.1 一维数组的声明 188

6.3.2 一维数组元素的引用与初始化 190

6.3.3 数组作为函数的参数 192

6.3.4 一维数组应用举例 192

6.3.5 二维数组的声明 194

6.3.6 二维数组元素的引用与初始化 195

6.3.7 二维数组应用举例 196

6.3.8 指针与数组 198

6.4 字符串 200

6.3.9 指针数组与数组指针 200

6.4.1 字符串常量与变量 201

6.4.2 字符串数组 202

6.4.3 关于字符串操作的库函数 203

6.4.4 字符串与指针数组应用的例子(主函数带参数) 205

6.5 指向对象的指针 208

6.5.1 对象指针 209

6.5.2 对象的动态创建与撤销 210

6.5.3 对象的复制与比较 212

6.6 指向函数的指针 214

6.6.1 函数指针 214

6.6.2 函数指针作为参数 218

6.7.1 结构类型 219

6.6.3 主动对象 219

6.7 结构类型、枚举类型与类型别名 219

6.7.2 枚举类型 221

6.7.3 类型别名 222

6.8 高级数据结构应用 223

本章小结 228

练习与思考题 229

上机实习题 235

第七章 继承机制 236

7.1 继承的基本概念 236

7.1.1 IS-A关系 236

7.1.2 继承机制 237

7.1.3 继承的作用 238

7.1.4 继承与软件重用 239

7.1.5 C++继承常见的几种形式 239

7.2 C++语言的继承机制 240

7.2.1 继承的语法 240

7.2.2 继承成员的访问控制规则 243

7.2.3 一个应用继承机制的完整例子 245

7.2.4 派生类对象的存储组织 251

7.2.5 类型兼容性 252

7.3 继承与构造函数、析构函数 254

7.3.1 构造函数与析构函数的调用次序 254

7.3.2 向基类构造函数传递实际参数 256

7.4 继承成员的调整 257

7.4.1 恢复访问控制方式 257

7.4.2 继承成员的重定义 259

7.4.3 继承成员的重命名 261

7.4.4 屏蔽继承成员 261

7.5 多重继承 263

7.5.1 多重继承的应用背景 263

7.5.2 多重继承的语法形式 264

7.5.3 多重继承的名字冲突问题 265

7.5.4 多重继承的构造函数和析构函数 268

7.6.1 重复继承的应用背景 270

7.6 重复继承 270

7.6.2 重复继承的二义性问题 272

7.6.3 虚基类 274

7.6.4 虚基类的构造函数和析构函数 275

7.7 优化类层次设计 278

7.7.1 抽象与具体 279

7.7.2 封装与开放 279

7.7.3 使用继承与使用对象成员 280

7.7.4 典型类层次 280

7.7.5 其他技术 281

本章小结 281

练习与思考题 282

上机实习题 288

第八章 多态性 290

8.1 多态性的基本概念 290

8.1.1 程序的多态性 290

8.1.2 多态性的作用——表示独立性 291

8.2 函数重载 292

8.2.1 函数重载的方法 292

8.2.2 函数重载的注意事项 294

8.2.3 函数重载的二义性 296

8.2.4 构造函数重载 298

8.3.1 函数按值调用传递对象参数产生的问题 300

8.3 拷贝构造函数 300

8.3.2 对象作为函数返回值产生的问题 302

8.3.3 问题的解决——拷贝构造函数 304

8.4 运算符重载 306

8.4.1 运算符函数 306

8.4.2 类成员运算符重载 306

8.4.3 重载一元运算符“-” 310

8.4.4 重载赋值运算符“=” 311

8.4.5 重载下标运算符“[]” 311

8.4.6 友元 312

8.4.7 友元运算符重载 313

8.5.1 什么是虚函数 316

8.5 虚函数 316

8.4.8 运算符重载的其他规则 316

8.5.2 静态绑定与动态绑定 319

8.5.3 设计合适的绑定方式 320

8.6 抽象类 320

8.6.1 纯虚函数 320

8.6.2 抽象类 324

8.6.3 纯虚函数与抽象类的应用——多态数据结构 324

本章小结 336

练习与思考题 336

上机实习题 344

9.1.1 类型的严格性与灵活性 345

9.1.2 解决冲突的途径 345

9.1 类属的基本概念 345

第九章 类属机制 345

9.1.3 类属机制 346

9.2 类模板 346

9.2.1 类属类的定义 347

9.2.2 类属类的实例化 351

9.2.3 多个形式类属参数 353

9.2.4 类属类的继承关系 354

9.3 函数模板 362

9.3.1 类属函数 362

9.3.3 类属函数的实例化 363

9.3.2 类属函数的定义 363

9.3.4 类属函数的重载 364

本章小结 366

练习与思考题 366

上机实习题 368

第十章 输入/输出流 369

10.1 C++语言的输入/输出 369

10.1.1 外部设备与文件 369

10.1.2 程序中对文件的操作 370

10.1.3 文件的基本概念 370

10.2.1 流类库的基本结构 371

10.2 C++的流类库 371

10.2.2 预定义的流 372

10.2.3 支持文件的流类 372

10.2.4 支持字符串的流类 373

10.3 格式化输入/输出 374

10.3.1 使用ios成员函数 374

10.3.2 使用输入/输出操纵符 378

10.3.3 格式化输出到字符串 380

10.4 常用成员函数输入/输出 381

10.4.1 put成员函数 382

10.4.2 write成员函数 382

10.4.3 read和gcount成员函数 382

10.4.4 get成员函数 383

10.4.5 getline成员函数 386

10.4.6 peek、putback和ignore成员函数 387

10.5 设计自己的输入/输出操作 388

10.5.1 重载流的插入操作 388

10.5.2 重载流的提取操作 389

10.5.3 一个完整的实例 390

10.5.4 设计自己的输入/输出操纵符 394

10.6 检测流操作的错误 396

10.7 文件流 396

10.7.1 文件的打开与关闭 397

10.7.2 文本文件的操作 398

10.7.3 二进制文件的操作 400

10.7.4 文件的随机读/写 402

10.7.5 程序的打印输出 404

本章小结 405

练习与思考题 405

上机实习题 406

第十一章 面向对象软件构造 408

11.1 软件质量 408

11.2 程序断言机制 408

11.2.1 程序断言 408

11.2.2 程序断言的用法 410

11.2.3 在C++语言中实现部分断言 412

11.3.1 异常处理 413

11.3 异常处理机制 413

11.3.2 异常处理的模式 414

11.3.3 C++语言的异常处理机制 415

11.3.4 捕获所有类型的异常 417

11.3.5 带有异常说明的函数原型 418

11.3.6 异常的逐层传递 420

11.3.7 创建对象时的异常处理 421

11.4.1 可重用构件库开发规范 422

11.4.2 基本术语定义 422

11.4 可重用构件库 422

11.4.3 构件库组织形式与使用方法 423

11.4.4 构件库设计风格 425

11.4.5 构件库设计原则 431

11.4.6 构件库文档编制指南 432

11.5 面向对象软件构造 433

11.5.1 标识对象与行为 434

11.5.2 标识对象之间的关系 435

11.5.3 建立对象的类描述 435

11.5.4 创建并驱动对象的运行 435

11.6 实例研究:Petri网图形编辑器 435

11.6.1 问题定义 435

11.6.2 对象之间关系与类的设计 436

11.6.3 关于Petri网图形编辑器的讨论 466

本章小结 467

练习与思考题 467

上机实习题 469

第十二章 结束语 471

12.1 程序设计风范 471

12.1.1 过程程序设计 471

12.1.2 模块程序设计 471

12.1.3 类型程序设计 473

12.1.4 面向对象程序设计 475

12.2 面向对象程序设计语言 476

12.1.5 其他程序设计风范 476

12.2.1 Simula语言 477

12.2.2 Smalltalk语言 477

12.2.3 C++语言 478

12.2.4 Eiffel语言 478

12.2.5 Java语言 479

本章小结 481

练习与思考题 481

上机实习题 481

附录A ASCII编码表 482

附录B 主要术语索引 484

附录C 主要参考文献 489

相关图书
作者其它书籍
返回顶部