C++是最完善的程序设计语言之一,是高级程序员的首选。要想成为一个真正的程序员,必须熟练掌握C++语言。\r\n\r\n 本书融趣味性、实用性于一体,通过100个经典实例,全面讲解C++程序设计的方法和步骤。第1课讲解C++基础知识;第2课讲解数据类型和控制结构;第3课讲解函数;第4课讲解数组和指针;第5课讲解引用与结构;第6课讲解类和对象;第7课讲解堆、构造函数与拷贝构造函数;第8课讲解静态成员、友元与模板;第9课讲解继承与派生;第10课讲解多态性和虚函数;第11课讲解I/O流类库和异常处理。\r\n\r\n 本书资料丰富、内容详实,涵盖了C++编程的难点和热点。既适于作为大中专计算机及相关专业及培训班的C++教程,也可以作为广大编程爱好者的自学教材。\r\n
\r\n
第1课 C++基础知识 \r\n\r\n 课堂讲解 \r\n\r\n 一. 从C至C++ \r\n\r\n 二. 程序与语言 \r\n\r\n 三. 结构化程序设计(为处理复杂问题提供了有力的手段) \r\n\r\n 四. 面向对象程序设计 \r\n\r\n 五. 程序开发过程 \r\n\r\n 六. C++程序基本框架结构 \r\n\r\n 七. 结构化程序设计与面向对象的程序设计比较 \r\n\r\n 八. 编译环境 \r\n\r\n 九. Microsoft Visual C++的帮助 \r\n\r\n 十. Visual C++开发环境概述 \r\n\r\n 上机练习 \r\n\r\n 练习1 作者的祝愿 \r\n\r\n 练习2 分牛的传说 \r\n\r\n 第2课 数据类型和控制结构 \r\n\r\n 课堂讲解 \r\n\r\n 一. 字符集与保留字 \r\n\r\n 二. 数据类型 \r\n\r\n 三. 变量定义 \r\n\r\n 四. 常量 \r\n\r\n 五. I/O流控制 \r\n\r\n 六. 表达式 \r\n\r\n 七. 算术类型转换 \r\n\r\n 八. 增量与减量 \r\n\r\n 九. 关系运算 \r\n\r\n 十. 逻辑运算 \r\n\r\n 十一. 条件运算符 \r\n\r\n 十二. 逗号运算符 \r\n\r\n 十三. if语句 \r\n\r\n 十四. while语句 \r\n\r\n 十五. do…while语句 \r\n\r\n 十六. for语句 \r\n\r\n 十七. switch语句 \r\n\r\n 十八. 转向语句 \r\n\r\n 上机练习 \r\n\r\n 练习3 打印图案 \r\n\r\n 练习4 大写金额 \r\n\r\n 练习5 证明“素数公式” \r\n\r\n 练习6 牛顿迭代法求方程根 \r\n\r\n 练习7 二分法求方程根 \r\n\r\n 练习8 杨辉三角的奥妙 \r\n\r\n 练习9 判断整除 \r\n\r\n 第3课 函数 \r\n\r\n 课堂讲解 \r\n\r\n 一. 函数概述 \r\n\r\n 二. 函数原型 \r\n\r\n 三. 全局变量与局部变量 \r\n\r\n 四. 函数调用机制 \r\n\r\n 五. 递归(Recursive)函数 \r\n\r\n 六. 内联函数 \r\n\r\n 七. 重载函数 \r\n\r\n 八. 默认参数的函数 \r\n\r\n 上机练习 \r\n\r\n 练习10 验证“歌德巴赫猜想” \r\n\r\n 练习11 魔方阵 \r\n\r\n 练习12 汉诺塔(Tower of Hanoi)的递归解法 \r\n\r\n 练习13 八皇后游戏 \r\n\r\n 练习14 探询路径 \r\n\r\n 练习15 “掷双骰”游戏 \r\n\r\n 练习16 “完全数”判别(方法一) \r\n\r\n 练习17 比我疆土 \r\n\r\n 练习18 巧填数字 \r\n\r\n 练习19 打印螺旋方阵 \r\n\r\n 第4课 数组和指针 \r\n\r\n 课堂讲解 \r\n\r\n 一. 数组定义 \r\n\r\n 二. 数组的使用 \r\n\r\n 三. 向函数传递数组 \r\n\r\n 四. 二维数组 五. 指针的概念 \r\n\r\n 六. 指针运算 \r\n\r\n 七. 指针与数组 \r\n\r\n 八. 堆内存 \r\n\r\n 九. const指针 \r\n\r\n 十. 指针与函数 \r\n\r\n 十一. 字符指针 \r\n\r\n 十二. 指针数组 \r\n\r\n 十三. 函数指针 \r\n\r\n 上机练习 \r\n\r\n 练习20 “完全数”判别(方法二) \r\n\r\n 练习21 Eratosthenes法求素数 \r\n\r\n 练习22 智者生存 \r\n\r\n 练习23 矩阵转置 \r\n\r\n 练习24 字符串倒序(方法一:指针实现) \r\n\r\n 练习25 姓氏排序 \r\n\r\n 练习26 矩阵的马鞍点 \r\n\r\n 练习27 动态分配数组的存储空间 \r\n\r\n 练习28 寻找最长的单词 \r\n\r\n 练习29 const指针 \r\n\r\n 练习30 顺序查找 \r\n\r\n 练习31 折半查找 \r\n\r\n 练习32 编排日历 \r\n\r\n 练习33 表白爱之“心” \r\n\r\n 练习34 求定积分(梯形法) \r\n\r\n 第5课 引用与结构 \r\n\r\n 课堂讲解 \r\n\r\n 一. 引用的概念和操作 \r\n\r\n 二. 用引用传递函数参数 \r\n\r\n 三. 结构 \r\n\r\n 四. 链表结构 \r\n\r\n 上机练习 \r\n\r\n 练习35 求学位课平均分 \r\n\r\n 练习36 统计优秀者人数 \r\n\r\n 练习37 最大子段和(解法1) \r\n\r\n 练习38 最大子段和(解法2) \r\n\r\n 练习39 最大子段和(解法3) \r\n\r\n 练习40 100米比赛排名(解法1) \r\n\r\n 练习41 100米比赛排名(解法2) \r\n\r\n 练习42 建立我的好友档案 \r\n\r\n 练习43 完善我的好友档案(一) \r\n\r\n 练习44 完善我的好友档案(二) \r\n\r\n 练习45 公正的计票器 \r\n\r\n 练习46 汉诺塔(Tower of Hanoi)的非递归解法 \r\n\r\n 练习47 Huffman编码——建立Huffman树 \r\n\r\n 练习48 Huffman编码——Huffman树编码 \r\n\r\n 练习49 农夫. 狼. 羊与白菜问题——图的存储 \r\n\r\n 练习50 农夫. 狼. 羊与白菜问题——图的遍历 \r\n\r\n 第6课 类和对象 \r\n\r\n 课堂讲解 \r\n\r\n 一. 类的定义 \r\n\r\n 二. 成员函数的定义 \r\n\r\n 三. 对象的定义及其成员的访问 \r\n\r\n 四. 静态成员 \r\n\r\n 五. 对象的作用域和生存期 \r\n\r\n 六. 类成员的访问控制说明符 \r\n\r\n 七. 屏蔽类的内部实现的好处 \r\n\r\n 上机练习 \r\n\r\n 练习51 斐波那契数列的计算 \r\n\r\n 练习52 计算两点的距离 \r\n\r\n 练习53 计算圆柱体体积与表面积(结构实现) \r\n\r\n 练习54 计算圆柱体体积与表面积(类实现) \r\n\r\n 练习55 建立学生成绩管理系统 \r\n\r\n 练习56 字符串倒序(方法二:栈实现) \r\n\r\n 练习57 判断字符串是否回文 \r\n\r\n 练习58 求学位课平均分(嵌套类实现) \r\n\r\n 练习59 计算 值(随机投点法) \r\n\r\n 练习60 模拟抛硬币所得正面的频率图 \r\n\r\n 第7课 堆. 构造函数与拷贝构造函数 \r\n\r\n 课堂讲解 \r\n\r\n 一. 构造函数 \r\n\r\n 二. 析构函数 \r\n\r\n 三. 拷贝构造函数 \r\n\r\n 四. 类的聚集(组合) \r\n\r\n 五. 初始化表对常量数据成员或常量引用成员提供初值 \r\n\r\n 六. 动态存储 上机练习 \r\n\r\n 练习61 复数的运算(成员函数实现) \r\n\r\n 练习62 100米比赛排名(解法3) \r\n\r\n 练习63 设计我的计算器 \r\n\r\n 练习64 学生信息的管理 \r\n\r\n 练习65 this指针的应用 \r\n\r\n 练习66 类成员初始化的困惑 \r\n\r\n 练习67 避免缺省参数构造函数的二义性 \r\n\r\n 练习68 常数据成员的初始化 \r\n\r\n 练习69 拷贝构造函数(一) \r\n\r\n 练习70 拷贝构造函数(二) \r\n\r\n 第8课 静态成员. 友元与模板 \r\n\r\n 课堂讲解 \r\n\r\n 一. 静态成员 \r\n\r\n 二. 友元 \r\n\r\n 三. 模板 \r\n\r\n 上机练习 \r\n\r\n 练习71 金卡账目管理 \r\n\r\n 练习72 复数的运算(友元函数实现) \r\n\r\n 练习73 求两直线的交点 \r\n\r\n 练习74 快速排序算法 \r\n\r\n 练习75 二分查找算法 \r\n\r\n 第9课 继承与派生 \r\n\r\n 课堂讲解 \r\n\r\n 一. 基类和派生类 \r\n\r\n 二. 子类型 \r\n\r\n 三. 虚基类 \r\n\r\n 上机练习 \r\n\r\n 练习76 长途电话计费程序 \r\n\r\n 练习77 一个小公司的工资管理系统 \r\n\r\n 练习78 学生成绩管理系统(类继承) \r\n\r\n 练习79 大学人员管理系统 \r\n\r\n 练习80 子随父姓 \r\n\r\n 第10课 多态性和虚函数 \r\n\r\n 课堂讲解 \r\n\r\n 一. 函数重载 \r\n\r\n 二. 运算符重载 \r\n\r\n 三. 静态联编和动态联编 \r\n\r\n 四. 虚函数 \r\n\r\n 五. 纯虚函数和抽象类 \r\n\r\n 六. 虚析构函数 \r\n\r\n 上机练习 \r\n\r\n 练习81 重载实现有理数的各种运算 \r\n\r\n 练习82 点对象间的各种运算 \r\n\r\n 练习83 比较同学的年龄 \r\n\r\n 练习84 矩阵的基本运算 \r\n\r\n 练习85 检查数组是否越界 \r\n\r\n 练习86 计算三角形面积之和 \r\n\r\n 练习87 链表指针对集合的各项操作 \r\n\r\n 练习88 抽象类求图形面积和周长 \r\n\r\n 练习89 虚重载运算符函数 \r\n\r\n 练习90 一个小公司的工资管理系统(虚函数实现) \r\n\r\n 第11课 I/O流类库和异常处理 \r\n\r\n 课堂讲解 \r\n\r\n 一. I/O流的概念 \r\n\r\n 二. 输出流 \r\n\r\n 三. 输入流 \r\n\r\n 四. I/O运算符重载 \r\n\r\n 五. 异常处理 \r\n\r\n 上机练习 \r\n\r\n 练习91 显示九九乘法表 \r\n\r\n 练习92 浏览文本文件 \r\n\r\n 练习93 文本文件复制 \r\n\r\n 练习94 有理数的四则运算(重载“<<”. “>>”) \r\n\r\n 练习95 我的朋友信息管理(一) \r\n\r\n 练习96 我的朋友信息管理(二) \r\n\r\n 练习97 我的朋友信息管理(三) \r\n\r\n 练习98 异常处理应用 \r\n\r\n 练习99 显示文件大小 \r\n\r\n 练习100 异常处理中的构造与析构 \r\n
\r\n
比尔·盖茨有句名言:“Just thinking of things as winning is a terrible approach. Success comes from focusing in on what you really like and are good at--not challenging every random thing”(把一切都看作成功是一种可怕的态度, 成功来自于你对自己真正热爱和擅长的事业的专注——而不是来自于对每一件偶然事情的挑战). 比尔·盖茨在战略的高度回答了怎样才
能成功这一重大问题.
学习C++语言何尝不是这样!C++是功能最强大. 最完善的计算机语言之一, 许多人都想学好它, 但它却令初学者望而却步. 无所适从. 所以, 要学好C++语言, 就要培养自己对它的真正热爱, 然后专注于它.
编写本书的目的就是给有志于学习C++或VC(Microsoft Visual C++的简称)的读者引路. 排忧和解难, 让大家轻松自如地迈进C++的神秘殿堂, 领略C++的独有风姿.
本书是作者几年学习与应用C++经验与体会的总结, 里面包含了作者几年前初学C++时的诸多困惑(如指针及其相关应用. 算法设计的程序实现. 面向对象概念的建立等), 有时甚至是学习中的迷惘. 也因此, 本书在讲解中时刻不忘答疑解惑.
本书有以下特点:(1)采用实例教学法, 将每一个知识点都融进100个实例之中, 易学易懂. (2)知识点突出, 每一个实例将用到的知识点单独以表格形式列于实例之前, 并将新学知识点与已学知识点分开, 便于加深理解与记忆. (3)所举实例力求趣味性与实用性的统一. 如“实例2 分牛的传说”. “实例10 验证‘歌德巴赫猜想’”. “实例11 魔方阵”. “实例13 八皇后游戏”. “实例22 智者生存”等实例具有很强的趣味性. “实例14 探询路径”. “实例23 矩阵转置”. “实例32 编排日历”. “实例47 Huffman编码”. “实例97 我的朋友信息管理”等实例具有很强的实用性. (4)特别注重各门相关课程的衔接与融合. 本书所举实例几乎涵盖了数据结构课程的所有重要内容(如:链表及其应用. 队列及其应用. 栈及其应用. 二叉树及其应用. 图及其应用. 各种排序算法. 文件及其管理), 有大量算法设计及其分析课程的内容(几乎所有的重要算法本书都有体现, 如:递归法. 动态规划法. 回溯法. 概率算法. 近似算法等), 有体现人工智能方面知识的内容(如:“实例17 比我疆土”. “实例18 巧填数字”. “实例49农夫. 狼. 羊与白菜问题”等). (5)重难点知识清晰(如指针及其应用. 面向对象概念的建立等), 加重份量进行练习.
本书共分11课, 第1课~第5课讲述C语言到C++的相关知识和结构化程序设计方法(因为C++是从C语言基础上发展起来的, 没有扎实的C语言基础很难学好), 同时渗透了大量的算法(如递归法. 动态规划法. 回溯法. 概率算法. 近似算法等)实践:第6课以后讲述C++语言的相关知识和面向对象程序设计的方法.
本书所有实例均在Visual C++6. 0环境下编译通过, 所有实例源代码随光盘附送.
由于作者水平有限, 书中错误和不当之处敬请专家和读者批评指正. 并可直接与作者联系:jlx9524@sina.com.cn或wwwl@publicb.bta.net.cn. 我们也会在适当时间进行修订和补充, 并发布在天勤网站:http://www.tqbooks.net“图书修订”栏目中.
蒋立翔
2003年11月