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

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

工业技术

  • 电子书积分:13 积分如何计算积分?
  • 作 者:李师贤等编著
  • 出 版 社:北京:高等教育出版社
  • 出版年份:1998
  • ISBN:7040064103
  • 页数:379 页
图书介绍:本书以循序渐进、深入浅出的方式引导读者步入面向对象程序设计的大门。本书假设读者无任何程序设计基础,从基本数据类型与基本控制结构开始,逐步过渡到函数、类与对象、复合数据类型、继承、多态性、类属、输入/输出流等复杂机制,最后还介绍了提高程序可靠性的程序断言与异常处理机制、提高程序可重用性的规范方法等高级内容。书中提供了丰富、典型的例题,并且每一章均附大量精选的练习题考题与上机实习题。本书不仅介绍面向对象程序设计语言,而且强调面向对象程序设计方法,注重程序设计理论与实践相结合,适合作为计算机专业程序设计课程的入门教材,也可作为其他专业高年级学生学习面向对象程序设计的教材,同时可供广大软件开发人员参考。
《面向对象程序设计基础》目录

引言 1

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

§1.1 计算机程序 4

1.1.1 算法 4

1.1.2 实体 4

1.1.3 程序 5

1.1.4 程序设计 7

§1.2 程序设计的演变 8

1.2.1 早期程序设计 8

1.2.3 面向对象程序设计 9

1.2.2 结构化程序设计 9

§1.3 程序设计语言的定义 10

1.3.1 语法和语义 10

1.3.2 字符集 10

1.3.3 Backus-Naur范式 11

1.3.4 语法图 12

§1.4 C++语言的程序结构 13

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

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

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

§1.5 C++语言程序的运行 16

本章小结 18

§1.6 面向对象程序设计过程 18

练习与思考题 19

上机实习题 20

第二章 基本数据类型 21

§2.1 数据类型概述 21

2.1.1 类型 21

2.1.2 类型的作用 21

2.1.3 C++语言的类型 21

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

2.2.1 单词 22

2.2.3 标识符 23

2.2.2 保留字 23

2.2.4 选择合适的标识符 24

2.2.5 常量与变量 25

2.2.6 简单输入/输出 26

§2.3 基本数据类型 27

2.3.1 字符类型 28

2.3.2 整数类型 30

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

2.3.4 字符串常量 32

§2.4 运算符与表达式 33

2.3.5 符号常量 33

2.4.1 表达式 34

2.4.2 算术运算 35

2.4.3 关系运算 37

2.4.4 逻辑运算 37

2.4.5 位运算 38

2.4.6 条件运算 40

2.4.7 Sizeof运算 40

2.4.8 运算符优先级与结合性质 41

§2.5 类型之间的关系 43

2.5.1 隐式类型转换 43

2.5.2 强制类型转换 44

§2.6 一个简单的应用程序 45

本章小结 46

练习与思考题 46

上机实习题 48

第三章 基本控制结构 49

§3.1 程序的基本控制结构 49

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

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

3.1.3 结构化程序设计工具 50

3.2.1 if语句 53

§3.2 选择结构 53

3.2.2 switch语句 59

§3.3 循环结构 64

3.3.1 while语句 64

3.3.2 do-while语句 68

3.3.3 for语句 70

3.3.4 设计正确的循环 73

§3.4 简单程序设计举例 74

3.4.1 问题 74

3.4.2 求解问题的精美算法 74

3.4.3 求解问题的原始算法 75

本章小结 76

练习与思考题 77

上机实习题 78

第四章 函数 80

§4.1 C++语言的函数 80

4.1.1 例程与函数 80

4.1.2 函数的建立与使用 81

4.1.3 两个简单的例子 82

§4.2 函数的声明与调用 84

4.2.1 函数声明 84

4.2.2 return语句 85

4.2.3 函数调用 86

4.2.4 函数与模块 89

§4.3 参数传递 91

4.3.1 参数传递方式 91

4.3.2 按值调用 91

4.3.3 缺省参数 92

§4.4 标识符的作用域 94

4.4.1 作用域 94

4.4.2 局部变量与全局变量 95

§4.5 变量的生存期 98

4.5.1 C++程序的存储组织 99

4.5.2 自动变量和寄存器变量 99

4.5.3 静态变量 100

4.5.4 外部变量 101

§4.6 递归程序设计 102

4.6.1 简单递归程序 102

4.6.2 梵塔问题 104

§4.7 C++语言的库函数 106

4.7.1 库函数的用法 106

4.7.2 常用数值函数 106

4.7.3 常用字符函数 107

练习与思考题 108

本章小结 108

上机实习题 112

第五章 类与对象 113

§5.1 类的引入 113

5.1.1 循环计数器 113

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

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

§5.2 类的定义 118

5.2.1 类声明 118

5.2.3 类界面与类实现 120

5.2.2 类成员的访问控制 120

5.2.4 标识符的类作用域 123

§5.3 对象的创建 123

5.3.1 对象声明 123

5.3.2 使用对象成员 125

5.3.3 对象的生存期 126

§5.4 对象的初始化 126

5.4.1 构造函数 127

5.4.2 析构函数 129

5.4.3 对象成员的初始化 130

5.5.1 模拟数字式时钟 132

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

5.5.2 单实例对象类 134

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

5.6.1 基本数据类型与对象 135

5.6.2 抽象数据类型 135

5.6.3 设计良好的类界面 136

5.6.4 再论对象 137

5.6.5 下一步 137

本章小结 138

练习与思考题 139

上机实习题 144

第六章 复合数据类型 145

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

§6.2 指针类型 146

6.2.1 指针的声明 146

6.2.2 指针的引用 148

6.2.3 指针的运算 149

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

§6.3 数组类型 151

6.3.1 一维数组的声明 151

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

6.3.4 一维数组应用举例 154

6.3.3 数组作为函数的参数 154

6.3.5 二维数组的声明 156

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

6.3.7 二维数组应用举例 157

6.3.8 指针与数组 159

6.3.9 指针数组与数组指针 161

§6.4 字符串 161

6.4.1 字符串常量与变量 161

6.4.2 字符串数组 162

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

6.5.1 对象指针 165

§6.5 指向对象的指针 165

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

6.5.3 对象的复制与比较 168

§6.6 指向函数的指针 171

6.6.1 函数指针 171

6.6.2 函数指针作为参数 172

6.6.3 主动对象 172

§6.7 结构类型、枚举类型与类型别名 173

6.7.1 结构类型 173

6.7.2 枚举类型 174

§6.8 高级数据结构应用 175

6.7.3 类型别名 175

本章小结 180

练习与思考题 180

上机实习题 186

第七章 继承机制 187

§7.1 继承的基本概念 187

7.1.1 IS-A关系 187

7.1.2 继承机制 187

7.1.3 继承的作用 189

7.1.4 继承与软件重用 189

7.2.1 继承的语法 190

§7.2 C++语言的继承机制 190

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

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

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

7.2.5 类型兼容性 200

§7.3 继承与构造函数、析构函数 202

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

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

§7.4 继承成员的调整 205

7.4.1 恢复访问控制方式 205

7.4.2 继承成员的重定义 206

7.4.4 屏蔽继承成员 208

7.4.3 继承成员的重命名 208

§7.5 多重继承 210

7.5.1 多重继承的应用背景 210

7.5.2 多重继承的语法形式 211

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

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

§7.6 重复继承 216

7.6.1 重复继承的应用背景 216

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

7.6.3 虚基类 220

7.6.4 虚基类的构造函数与析构函数 221

§7.7 优化类层次设计 222

7.7.1 抽象与具体 222

7.7.2 封装与开放 222

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

7.7.4 典型类层次 223

7.7.5 其他技术 223

本章小结 224

练习与思考题 225

上机实习题 230

8.1.2 表示独立性 231

8.1.1 程序的多态性 231

第八章 多态性 231

§8.1 多态性的基本概念 231

§8.2 函数重载 232

8.2.1 函数重载的方法 232

8.2.2 函数重载的注意事项 233

8.2.3 函数重载的二义性 234

8.2.4 构造函数重载 236

§8.3 拷贝构造函数 238

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

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

8.3.3 拷贝构造函数 241

§8.4 运算符重载 242

8.4.1 运算符函数 242

8.4.2 类成员运算符重载 243

8.4.3 重载一元运算符 246

8.4.4 重载赋值运算符 = 247

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

8.4.6 友元 248

8.4.7 友元运算符重载 249

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

8.5.1 什么是虚函数 251

§8.5 虚函数 251

8.5.2 静态绑定与动态绑定 253

8.5.3 设计合适的绑定方式 254

§8.6 抽象类 255

5.6.1 纯虚函数 255

8.6.2 抽象类 257

8.6.3 多态数据结构 258

本章小结 267

练习与思考题 267

上机实习题 273

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

9.1.2 解决冲突的途径 274

第九章 类属机制 274

§9.1 类属的基本概念 274

9.1.3 类属机制 275

§9.2 类模板 275

9.2.1 类属类的定义 275

9.2.2 类属类的实例化 278

9.2.3 多个形式类属参数 280

9.2.4 类属类的继承关系 281

9.3.1 类属函数 283

§9.3 函数模板 283

9.3.2 类属函数的定义 284

9.3.3 类属函数的实例化 285

9.3.4 类属函数的重载 285

本章小结 287

练习与思考题 287

上机实习题 289

第十章 输入/输出流 290

§10.1 C++语言的输入/输出 290

10.1.1 外部设备与文件 290

10.1.2 程序中对文件的操作 290

10.1.3 文件的基本概念 291

§10.2 C++的流类库 292

10.2.1 流类库的基本结构 292

10.2.2 预定义的流 292

10.2.3 支持文件的流类 293

10.2.4 支持字符串的流类 294

§10.3 格式化输入/输出 294

10.3.1 使用ios成员函数 294

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

10.3.3 格式化输出到字符串 299

10.4.1 重载流的插入操作 301

§10.4 设计自己的输入/输出操作 301

10.4.3 一个完整的实例 302

10.4.2 重载流的提取操作 302

10.4.4 设计自己的输入/输出操纵符 305

§10.5 检测流操作的错误 307

§10.6 文件流 307

10.6.1 文件的打开与关闭 307

10.6.2 文本文件的操作 309

10.6.3 二进制文件的操作 310

10.6.4 文件的随机读/写 312

练习与思考题 314

10.6.5 程序的打印输出 314

本章小结 314

上机实习题 316

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

§11.1 软件质量 317

§11.2 程序断言机制 317

11.2.1 程序断言 317

11.2.2 程序断言的用法 319

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

11.3.2 异常处理的模式 322

11.3.1 异常处理 322

§11.3 异常处理机制 322

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

11.3.4 捕获所有类型的异常 325

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

11.3.6 异常的逐层传递 327

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

§11.4 可重用构件库 329

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

11.4.2 基本术语定义 329

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

11.4.4 构件库设计风格 332

11.4.5 构件库设计原则 337

11.4.6 构件库文档编制指南 338

§11.5 面向对象软件构造 338

11.5.1 标识对象与行为 339

11.5.2 标识对象之间的关系 339

11.5.3 建立对象的类描述 340

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

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

11.6.1 问题定义 340

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

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

本章小结 365

练习与思考题 365

上机实习题 367

第十二章 结束语 368

§12.1 程序设计风范 368

12.1.1 过程程序设计 368

12.1.2 模块程序设计 368

12.1.3 类型程序设计 370

12.1.4 面向对象程序设计 372

§12.2 面向对象程序设计语言 373

12.1.5 其他程序设计风范 373

12.2.1 Simula语言 374

12.2.2 Smalltalk语言 374

12.2.3 C++语言 374

12.2.4 Eiffel语言 375

12.2.5 Java语言 376

本章小结 377

练习与思考题 377

上机实习题 377

附录A ASCII编码表 378

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