图书目录

目录

第一部分 计算与算法基础(1)

第1章 导论(3)

  1.1 计算系统(3)

    1.1.1 珠算系统(3)

    1.1.2 电子计算机基本原理(5)

    1.1.3 信息数字化及其标准化(10)

  1.2 计算机程序设计语言概述(15)

    1.2.1 计算机低级语言与高级语言(15)

    1.2.2 高级语言程序要素(16)

    1.2.3 高级语言程序设计方法(17)

  1.3 算法基础(19)

    1.3.1 算法的概念(19)

    1.3.2 算法的表示(19)

  1.4 小结(21)

  练习1(22)

第二部分 面向过程程序设计(25)

第2章 C++概貌(27)

  2.1 基本程序设计(27)

    2.1.1 “算术测验”程序之一(27)

    2.1.2 C++程序基本元素(30)

    2.1.3 输入输出及赋值操作(33)

  2.2 基本程序改进(36)

    2.2.1 “算术测验”程序之二(36)

    2.2.2 C++基本运算(37)

    2.2.3 C++程序流程控制(41)

  2.3 基本程序扩展(47)

    2.3.1 简单函数(47)

    2.3.2 多文件结构(49)

  2.4 C++程序开发流程(51)

  2.5 C++应用程序集成开发环境简介(52)

    2.5.1 MinGW Developer Studio简介(53)

    2.5.2 VC++控制台应用程序开发集成环境(53)

  2.6 *趣味程序——变换的字符(60)

  2.7 小结(61)

  练习2(61)

第3章 数据的表示及I/O流格式控制(68)

  3.1 数据的表示(68)

    3.1.1 常量(68)

    3.1.2 变量(69)

    3.1.3 变量的引用(75)

    3.1.4 常量的引用(75)

  3.2 函数(76)

    3.2.1 函数的形式参数(77)

    3.2.2函数的返回类型(81)

  3.3 运算表达式(84)

    3.3.1 C++运算符汇总(84)

    3.3.2 单目运算(84)

    3.3.3 二进制位运算(84)

    3.3.4 迭代赋值运算(87)

    3.3.5 抽取及插入运算(87)

    3.3.6 三目条件运算(88)

    3.3.7 逗号运算(88)

    3.3.8 区分作用域(88)

  3.4 语句(88)

  3.5 I/O流格式控制(89)

  3.6 应用举例(93)

    3.6.1 深入理解ASCII字符集(93)

    3.6.2 深入理解整型数据(95)

    3.6.3 输出字符图案(97)

  3.7 *趣味程序——行走的字符串(98)

  3.8 小结(99)

  练习3(99)

第4章 变量设计(106)

  4.1 穷举计算(106)

    4.1.1 “百钱买百鸡”问题(106)

    4.1.2 判定素数(109)

  4.2 迭代计算(111)

    4.2.1 牛顿迭代法(112)

    4.2.2 级数计算(112)

    4.2.3 最大公因数和最小公倍数(116)

  4.3 标志变量的设计与应用(117)

    4.3.1 整除问题(117)

    4.3.2 三角形的周长及面积(120)

  4.4 单变量版“评委评分”程序设计(120)

    4.4.1 问题描述及算法分析(121)

    4.4.2 程序实现(121)

  4.5 *趣味程序——击打字母游戏(124)

  4.6 小结(125)

  练习4(125)

第5章 数组与指针(130)

  5.1 数组(130)

    5.1.1 数组的定义(130)

    5.1.2 访问数组元素(131)

    5.1.3 多维数组(131)

  5.2 数组版“评委评分”程序设计(132)

    5.2.1 问题描述及算法分析(132)

    5.2.2 程序实现(133)

  5.3 指针(135)

    5.3.1 定义指针变量(135)

    5.3.2 指针运算(136)

  5.4 动态变量和动态数组——堆变量和堆数组(138)

  5.5 地址值在函数之间传递(140)

    5.5.1 传递地址值——值传递(140)

    5.5.2 传递指针变量——引用传递(144)

    5.5.3 返回地址(145)

  5.6 堆数组版“评委评分”程序设计(145)

  5.7 字符数组与C-字符串(148)

    5.7.1 字符数组(148)

    5.7.2 C-字符串(149)

    5.7.3 字符串I/O操作(150)

    5.7.4 C-字符串处理函数(152)

  5.8 指针数组与数组指针(155)

    5.8.1 指针数组(155)

    5.8.2 数组指针(157)

  5.9 *趣味程序(158)

    5.9.1 生日的概率问题(158)

    5.9.2 匹配的概率问题(159)

    5.9.3 *模仿密码输入(160)

  5.10 小结(162)

  练习5(163)

第6章 函数(173)

  6.1 函数概述(173)

  6.2 函数的调用机制(174)

    6.2.1 函数调用的栈操作过程(174)

    6.2.2 函数原型纵览(179)

  6.3 函数版“评委评分”程序设计(182)

    6.3.1 功能模块设计(182)

    6.3.2 功能实现——函数定义(183)

  6.4 递归函数(186)

  6.5 函数重载(189)

  6.6 参数带默认值的函数(190)

  6.7 内联函数(191)

  6.8 函数模板(192)

    6.8.1 描述函数模板(192)

    6.8.2 模板函数的使用(193)

    6.8.3 重载模板函数(194)

  6.9 函数应用(195)

    6.9.1 静态局部变量的特性(195)

    6.9.2 排序(196)

    6.9.3 *定积分计算(201)

    6.9.4 矩阵乘积(203)

    6.9.5 *动态二维数组(206)

  6.10 *趣味程序——高尔顿钉板实验模拟(208)

  6.11 小结(210)

  练习6(210)

第7章 程序结构(219)

  7.1 多文件结构(219)

    7.1.1 同一编译单元中的共享变量及函数(219)

    7.1.2 不同编译单元中的共享变量及函数(219)

    7.1.3 头文件(220)

  7.2 编译预处理指令(222)

    7.2.1 文件包含指令(222)

    7.2.2 宏定义指令(223)

    7.2.3 条件编译指令(223)

  7.3 名字空间(225)

  7.4 *隐藏函数的定义(230)

  7.5 小结(230)

  练习7(231)

第8章 链表(232)

  8.1 结构体(232)

    8.1.1 数据组织形式描述(232)

    8.1.2 创建结构体对象(232)

    8.1.3 访问对象的成员(233)

  8.2 链表的概念(234)

    8.2.1 结点的结构(234)

    8.2.2 单向链表(235)

  8.3 链表操作(236)

    8.3.1 遍历(236)

    8.3.2 插入一个结点(239)

    8.3.3 删除一个结点(240)

    8.3.4 *链表版“评委评分”程序清单(241)

  8.4 小结(254)

  练习8(254)

第三部分 面向对象程序设计(261)

第9章 类与类的对象(263)

  9.1 类的声明(264)

    9.1.1 成员的访问控制(265)

    9.1.2 数据成员和成员函数(265)

  9.2 创建类的对象(266)

    9.2.1 创建对象(266)

    9.2.2 对象的基本空间(267)

  9.3 对象的自我表现(267)

    9.3.1 this指针(268)

    9.3.2 常量成员函数(269)

  9.4 封装与隐藏(270)

    9.4.1 屏蔽类的内部实现(270)

    9.4.2 *隐藏类的内部实现(273)

  9.5 小结(276)

  练习9(276)

第10章 构造函数及赋植运算(281)

  10.1 构造函数(281)

    10.1.1 默认构造函数(281)

    10.1.2 转换构造函数(282)

    10.1.3 构造函数的使用(284)

  10.2 析构函数(286)

    10.2.1 析构函数的概念(286)

    10.2.2 对象构造和析构的顺序(287)

  10.3 复制构造函数(287)

    10.3.1 浅复制构造——复制对象基本空间的数据成员(288)

    10.3.2 对象的资源空间(292)

    10.3.3 深复制构造——构造属于自己的资源空间(294)

  10.4 赋值运算(295)

  10.5 组合成员的构造(298)

    10.5.1 成员的构造时机(298)

    10.5.2 组合成员的构造——冒号语法(299)

  10.6 *趣味程序——模拟银行打印储户存折(306)

  10.7 小结(309)

  练习10(309)

第11章 静态成员及友元(314)

  11.1 静态成员(314)

    11.1.1 静态数据成员(315)

    11.1.2 静态成员函数(316)

  11.2 友元(320)

    11.2.1 友元函数(320)

    11.2.2 友元类(326)

  11.3 *趣味程序——自动单向链表类(327)

  11.4 小结(331)

  练习11(331)

第12章 类模板(334)

  12.1 类模板与模板类(334)

    12.1.1 类模板声明(334)

    12.1.2 模板类及其对象(335)

  12.2 *单向链表类模板(336)

    12.2.1 单向链表类模板框架设计(336)

    12.2.2 单向链表类模板实现技术(337)

  12.3 *趣味程序设计——单向链表类模板应用(347)

    12.3.1 约瑟夫(Josephus)问题(347)

    12.3.2 链表结点的奇偶二分(349)

    12.3.3 删除两条链表的最大相同前缀(351)

  12.4 小结(352)

  练习12(352)

第13章 运算符重载(354)

  13.1 运算符概述(354)

  13.2 重载运算符(355)

    13.2.1 重载双目运算符(359)

    13.2.2 重载单目运算符(362)

    13.2.3 Date类的综合测试(364)

  13.3 *自定义版字符串类——String(366)

  13.4 *趣味程序——“评委评分”程序之类模板应用(372)

  13.5 小结(379)

  练习13(379)

第14章 继承与多态性(382)

  14.1 继承与派生概述(382)

    14.1.1 抽象与具体(382)

    14.1.2 组合与继承(383)

    14.1.3 派生类成员的访问属性(387)

  14.2 派生类对象的构造(390)

    14.2.1 派生类对象的构造与析构(390)

    14.2.2 派生类对象的空间(391)

    14.2.3 派生类对基类的赋值兼容性(392)

  14.3 多态性(392)

    14.3.1 虚函数(394)

    14.3.2 重载运算符享受多态性(397)

    14.3.3 虚析构函数(398)

    14.3.4 纯虚函数与抽象类(401)

    14.3.5 关于虚函数的说明(402)

  14.4 *多重继承(402)

    14.4.1 多重继承的一般形式(403)

    14.4.2 虚拟继承(403)

  14.5 构造顺序(406)

  14.6小结(409)

  练习14(409)

第15章 I/O流(416)

  15.1 标准I/O流(416)

    15.1.1 操作系统关于标准I/O及其重新定向(416)

    15.1.2 常用输入流成员函数(419)

    15.1.3 常用输出流成员函数(422)

  15.2 文件I/O流(422)

    15.2.1 文本文件(424)

    15.2.2 二进制文件(426)

    15.2.3 应用举例(429)

  15.3 字符串I/O流(432)

    15.3.1 C语言中的字符串生成与解析(432)

    15.3.2 C++字符串流类(433)

  15.4 *趣味程序——探究文件字节内容(434)

  15.5 小结(440)

  练习15(440)

第16章 *异常处理(441)

  16.1 异常处理的概念(441)

  16.2 异常处理的方法(441)

    16.2.1 抛掷异常(441)

    16.2.2 圈定及捕捉处理(443)

  16.3 趣味程序——正整数算术运算测验程序(445)

  16.4小结(454)

  练习16(454)

附录A  ASCII字符集(455)

附录B 常用库函数参考(456)

  B1 C-字符串函数(456)

  B2 转换函数(457)

  B3 随机数发生器(457)

  B4 数学函数(458)

参考文献(459)