当前位置:首页 > 工业技术
C++程序设计
C++程序设计

C++程序设计PDF电子书下载

工业技术

  • 电子书积分:15 积分如何计算积分?
  • 作 者:(美)梁勇(Y. Daniel Liang)著;王刚,刘晓光,刘璟译
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2008
  • ISBN:7111240170
  • 页数:495 页
图书介绍:本书介绍C++程序设计的相关知识。
《C++程序设计》目录

第1章 计算机、程序和C++语言简介 2

1.1引言 2

1.2什么是计算机 2

1.2.1CPU 3

1.2.2内存 3

1.2.3外存储设备 3

1.2.4输入输出设备 4

1.2.5通信设备 5

1.3程序 5

1.4操作系统 6

1.4.1控制和监视系统活动 6

1.4.2分配和指派系统资源 6

1.4.3任务调度 7

1.5数制 7

1.5.1二进制数与十进制数之间的转换 7

1.5.2十六进制数与十进制数之间的转换 8

1.5.3二进制数与十六进制数之间的转换 9

1.6C++语言的历史 9

1.7一个简单的C++程序 10

1.8C++程序开发周期 11

1.9使用VisualC++开发C++程序 12

1.9.1起步 12

1.9.2创建项目 13

1.9.3创建C++程序 14

1.9.4编译C++程序 16

1.9.5运行C++程序 16

1.10使用Dev-C++开发C++程序 17

1.10.1起步 17

1.10.2创建程序 17

1.10.3编译C++程序 18

1.0.4运行C++程序 19

1.11用Windows命令行方式开发C++程序 20

1.12在UNIX平台上开发C++程序 21

小结 21

习题 22

程序设计练习 22

第2章 基本数据类型和运算 23

2.1引言 23

2.2编写简单的程序 23

2.3从键盘读取输入 25

2.4省略std.:前缀 26

2.5标识符 27

2.6变量 27

2.7赋值语句和赋值表达式 28

2.8命名常量 29

2.9数值数据类型及其运算 30

2.9.1数值文字常量 31

2.9.2数值运算符 32

2.9.3算术表达式 33

2.9.4简写运算符 34

2.10数值类型转换 35

2.11字符数据类型及其运算 37

2.11.1转义序列表示特殊符号 37

2.11.2char型和数值型之间的转换 38

2.12实例研究 38

2.12.1实例:计算贷款偿还金额 38

2.12.2实例:计算给定金额的货币数量 40

2.12.3实例:显示当前时间 42

2.13程序设计风格和文档 43

2.13.1适当的注释和注释风格 43

2.13.2变量和常量的命名 43

2.13.3恰当的缩进和空白 43

2.14程序设计错误 43

2.14.1语法错误 44

2.14.2运行时错误 44

2.14.3逻辑错误 44

2.15调试 45

小结 45

习题 46

程序设计练习 48

第3章 分支语句 50

3.1引言 50

3.2bool类型 50

3.3if语句 51

3.4实例:猜生日 53

3.5逻辑运算符 55

3.6if.else语句 57

3.7嵌套的if语句 58

3.8实例:计算税款 60

3.9实例:一个数学学习工具 62

3.10switch语句 63

3.11条件表达式 65

3.12输出格式控制 65

3.13运算符优先级和结合律 68

3.14枚举类型 69

小结 71

习题 71

程序设计练习 75

第4章 循环 77

4.1引言 77

4.2while循环 77

4.2.1实例:一个改进的数学学习工具 78

4.2.2使用用户确认控制循环 80

4.2.3使用哨兵值控制循环 80

4.3do-while循环 81

4.4for循环 82

4.5使用哪种循环 84

4.6嵌套的循环 85

4.7实例研究 86

4.7.1实例:求最大公约数 86

4.7.2实例:计算销售额 87

4.7.3实例:显示数字金字塔 89

4.8关键字break和continue 91

4.9实例:输出素数 92

4.10简单文件输入输出 94

4.10.1向一个文件写入数据 94

4.10.2从一个文件读取数据 95

4.10.3检测文件尾 96

小结 97

习题 97

程序设计练习 100

第5章 函数 105

5.1引言 105

5.2函数创建 105

5.3函数调用 106

5.4无返回值函数 108

5.5按值方式传递参数 109

5.6按引用方式传递参数 111

5.7函数重载 113

5.8函数原型 115

5.9默认参数 116

5.10实例研究:使用函数计算税款 117

5.11在不同程序中重用函数 118

5.12实例研究:生成随机字符 119

5.13变量的作用域 121

5.13.1for循环中变量的作用域 123

5.13.2静态局部变量 123

5.14数学函数 124

5.15函数抽象和逐步求精 125

5.15.1自顶向下设计 125

5.15.2自顶向下或自底向上实现 127

5.15.3实现细节 128

5.16内联函数 131

小结 132

习题 133

程序设计练习 136

第6章 数组 141

6.1引言 141

6.2数组基础 141

6.2.1声明数组 141

6.2.2数组下标变量 142

6.2.3数组初始化语句 143

6.2.4初始化字符数组 143

6.2.5处理数组 144

6.2.6实例:测试数组 145

6.2.7实例:评定成绩等级 146

6.3数组作为函数参数 147

6.4数组作为函数返回值 149

6.5搜索 151

6.5.1顺序搜索方法 151

6.5.2二分搜索方法 151

6.6排序数组 153

6.6.1选择排序 153

6.6.2插入排序 155

6.7二维数组 156

6.7.1声明二维数组 156

6.7.2处理二维数组 157

6.7.3二维数组作为函数参数 158

6.7.4实例:评定多项选择测试的成绩 159

6.7.5实例:计算纳税额 160

6.8多维数组 162

6.8.1实例:计算学生成绩 162

6.8.2实例:猜生日 163

小结 164

习题 165

程序设计练习 166

第7章 指针和C字符串 171

7.1引言 171

7.2指针基础 171

7.3用指针实现实参的引用传递 174

7.4数组和指针 174

7.5常量指针 176

7.6指针作为函数返回值 177

7.7动态内存分配 178

7.8实例研究:统计每个字母的出现次数 180

7.9字符和字符串 182

7.9.1字符串函数 183

7.9.2字符串存储和访问 184

7.9.3读取字符串 185

7.9.4C字符串函数 185

7.9.5实例:获取子串 189

7.10实例研究:检查回文串 189

小结 191

习题 191

程序设计练习 193

第8章 递归 196

8.1引言 196

8.2实例:阶乘 196

8.3实例:斐波那契数列 198

8.4用递归方法求解问题 200

8.5递归辅助函数 201

8.5.1选择排序 202

8.5.2二分搜索 203

8.6汉诺塔 204

8.7递归与迭代 207

小结 207

习题 207

程序设计练习 209

第9章 对象和类 212

9.1引言 212

9.2声明类 212

9.3构造函数 214

9.4对象名 214

9.5声明和实现分离 217

9.6通过指针访问对象成员 219

9.7在堆中创建动态对象 220

9.8C++字符串类 220

9.8.1构造一个字符串 220

9.8.2追加字符串 221

9.8.3字符串赋值 222

9.8.4函数at、clear、erase和empty 222

9.8.5函数length、size和capacity 222

9.8.6字符串比较 222

9.8.7获得子串 223

9.8.8字符串搜索 223

9.8.9字符串插入和替换 223

9.8.10字符串运算符 223

9.9数据域封装 224

9.10变量作用域 226

9.11this指针 227

9.12对象作为函数参数 228

9.13对象数组 230

9.14类抽象和封装 232

9.15实例研究:Loan类 232

9.16构造函数初始化列表 235

小结 237

习题 238

程序设计练习 240

第10章 对象和类的更多内容 243

10.1引言 243

10.2不可变对象和不可变类 243

10.3避免重复声明 245

10.4实例成员和静态成员 246

10.5析构函数 250

10.6拷贝构造函数 252

10.7自定义拷贝构造函数 254

10.8友元函数和友元类 256

10.9对象合成 257

10.10实例研究:Course类 259

10.11实例研究:StackOflntegers类 261

10.12C++向量类 263

小结 265

习题 265

程序设计练习 268

第11章 继承和多态 269

11.1引言 269

11.2基类和派生类 269

11.3泛型程序设计 275

11.4构造函数和析构函数 275

11.4.1调用基类构造函数 275

11.4.2构造函数链和析构函数链 276

11.5函数重定义 277

11.6多态和虚函数 278

11.7关键字protected 280

11.8抽象类和纯虚函数 281

11.9动态类型转换 285

小结 286

习题 287

程序设计练习 291

第12章 文件输入输出 293

12.1引言 293

12.2文本输入输出 293

12.2.1向文件中写入数据 293

12.2.2从文件中读取数据 294

12.2.3检测文件是否存在 295

12.2.4检测文件末尾 296

12.3格式化输出 297

12.4成员函数:getline、get和put 297

12.5fstream和文件打开模式 300

12.6检测流状态 301

12.7二进制输入输出 303

12.7.1write函数 303

12.7.2read函数 304

12.7.3实例:二进制数组I/O 305

12.7.4实例:二进制对象I/O 306

12.8随机访问文件 309

12.9更新文件 311

小结 312

习题 313

程序设计练习 313

第13章 运算符重载 315

13.1引言 315

13.2Rational类 315

13.3运算符函数 320

13.4简写运算符重载 321

13.5[]运算符重载 322

13.6一元运算符重载 323

13.7++和--运算符重载 323

13.8<<和>>运算符重载 324

13.9对象类型转换 325

13.10新的Rational类 326

13.11重载赋值运算符 332

小结 333

习题 333

程序设计练习 334

第14章 异常处理 335

14.1引言 335

14.2异常处理概述 335

14.3异常处理机制的优点 337

14.4异常类 338

14.5自定义异常类 341

14.6多重异常捕获 344

14.7异常的传播 347

14.8重抛出异常 349

14.9异常规约 350

14.10何时使用异常机制 350

小结 351

习题 351

程序设计练习 353

第15章 模板 356

15.1引言 356

15.2模板基础 356

15.3实例:一个通用排序函数 358

15.4模板类 359

15.5改进Stack类 364

小结 365

习题 366

程序设计练习 368

第16章 链表、栈和队列 369

16.1引言 369

16.2节点 369

16.3链表类 371

16.4实现LinkedList 373

16.4.1实现addFirst(Telement) 373

16.4.2实现addLast(Telement) 373

16.4.3实现add(intindex,Telement) 374

16.4.4实现removeFirst() 375

16.4.5实现removeLast() 375

16.4.6实现removeAt(intindex) 377

16.5链表的变形 382

16.6使用链表类实现栈类 382

16.7队列 383

16.8迭代器 385

小结 388

习题 388

程序设计练习 390

第17章 树、堆和优先队列 392

17.1引言 392

17.2二叉树 392

17.2.1描述二叉树 392

17.2.2访问二叉树中的节点 393

17.2.3向二又搜索树中插入数据元素 393

17.2.4树的遍历 394

17.2.5二叉树类 394

17.3堆 399

17.3.1堆的描述 399

17.3.2堆的删除操作 399

17.3.3堆的插入操作 400

17.3.4Heap类 400

17.4优先队列 403

小结 405

习题 406

程序设计练习 406

第18章 算法效率和排序 408

18.1引言 408

18.2评价算法效率 408

18.2.1大O符号 409

18.2.2实例:复杂性计算 409

18.2.3分析二分搜索算法 411

18.2.4分析选择排序算法 411

18.2.5分析插入排序算法 412

18.2.6分析汉诺塔算法 412

18.2.7常见增长函数比较 412

18.3起泡排序 413

18.4归并排序 415

18.5快速排序 418

18.6堆排序 421

18.7外排序 422

18.7.1实现阶段Ⅰ 423

18.7.2实现阶段Ⅱ 424

18.7.3合并两个阶段 426

18.7.4外排序分析 429

小结 429

习题 430

程序设计练习 431

第19章 STL容器 433

19.1引言 433

19.2STL基础 433

19.3STL迭代器 437

19.3.1迭代器类型 439

19.3.2迭代器运算符 439

19.3.3预定义的迭代器 441

19.3.4istream_iterator和ostream_iterator 442

19.4顺序容器 443

19.4.1顺序容器:vector 443

19.4.2顺序容器:deque 445

19.4.3顺序容器:list 446

19.5关联容器 449

19.5.1关联容器:set和multiset 449

19.5.2关联容器:map和multimap 451

19.6容器适配器 452

19.6.1容器适配器:stack 452

19.6.2容器适配器:queue 453

19.7容器适配器:priority_queue 454

小结 454

习题 455

程序设计练习 457

第20章 STL算法 459

20.1引言 459

20.2算法类型 459

20.3copy 461

20.4fill和fill_n 462

20.5generate和generate_n 463

20.6remove、remove_if、remove_copy和remove_copy_it 464

20.7replace、replace_if、replace_copy和replace_copy_if 466

20.8find、find_if、find_end和nd_first_of 468

20.9search和search_n 472

20.10sort和binary_search 473

20.11adjacent_find、merge和inplace_merge 475

20.12reverse和reverse_copy 476

20.13rotate和rotate_copy 477

20.14swap、iter_swap和swap_ranges 478

20.15count和count_if 479

20.16max_element和min_element 479

20.17random_shuffle 480

20.18for_each和transform 481

20.19includes、set_union、set_difference、set_intersection和set_symmetric_difference 481

20.20accumulate、adjacent_difference、inner_product和partial_sum 484

小结 486

习题 487

程序设计练习 489

附录 491

附录AC++关键字 492

附录BASCII字符集 493

附录C运算符优先级表 494

附录D位运算 495

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