《C++程序设计教程/大学计算机基础教育规划教材》以问题求解的过程为主线,以C++语言为载体,介绍计算机程序的基本结构、信息的表示、流程的控制、模块化方法、指针操作、面向对象的编程方法、输入输出格式控制与文件操作和基本数据结构及应用等内容。《C++程序设计教程/大学计算机基础教育规划教材》采用“精讲多练”的教学模式,有丰富的例题和习题。例题从题目描述、问题分析、源程序、运行结果、程序分析、思维扩展等方面进行讲解。
《C++程序设计教程/大学计算机基础教育规划教材》的特点是层次清晰、循序渐进、清楚易懂。书中源码有丰富的注释,能有效帮助学生理解解题思路。
《C++程序设计教程/大学计算机基础教育规划教材》不仅涵盖了C++语言的基本语法知识,而且更注重讲解计算机程序求解问题的思想方法;目的在于既培养编程能力,又启发思维。
本书既可作为高等学校理工类专业计算机程序设计课程的教材或参考书,也可供程序设计爱好者、工程技术和软件开发人员学习、参考。
2010年7月,C9高校联盟在西安召开了“计算机基础课程研讨会”,“计算思维”一词成为大家讨论的热点。会后,C9高校联盟发表联合声明,“计算思维”一词在2660字的声明中出现了18次,可见“计算思维”的重要性和地位。从此我国开始了“计算思维”研究和教学改革的热潮,特别是在计算机基础教育领域。结合程序设计课程中存在的问题,我们也进行了思考,编写了本书。
本书以思维能力培养为目的,以提高编程能力为目标,以C++语言为载体,以问题求解的过程为主线,介绍计算机程序的基本结构、信息的表示、流程的控制、模块化方法、指针操作、面向对象的编程方法、输入输出格式控制与文件操作和基本数据结构及应用等内容。
本书采用“精讲多练”的教学模式,有丰富的例题和习题。例题从题目描述、问题分析、算法描述、编程指南、源程序、运行结果、测试指南、程序分析、思维扩展等方面进行讲解。本书的特点是层次清晰、循序渐进、清楚易懂。
本书希望对解决C++程序设计学习中的以下问题有所帮助。
(1) 提高独立编程的能力。程序设计课程常常会使学生陷入语法的复杂规则中,使其在问题、求解方法和程序之间,无法建立清晰的关联。这就使得他们在看到问题时,用手工是会做的,看别人的程序也懂,但自己写就不行了。为此,本书对稍微复杂的例题,一是给出问题的分析,分析问题求解的关键;二是写出步骤详细的算法,这是问题和程序之间的桥梁;三是在源程序中给出详细清晰的注释,并与算法之间有一致的对应关系,能有效帮助学生理解解题思路。希望同学们思考: 对于待求解的问题,关键是什么,其中的物理量如何表达,如何将方法写成算法,如何将算法“翻译”成程序。
(2) 提高程序调试的能力。调试方法本身不在本书中讲述,是在实验中渗透的。从第二次实验开始,在第2章、第3章对应的实验中,会教给学生跟踪程序的方法,强调跟踪、调试的重要性。这是每个学生必须学会的。
(3) 提高自学和独立解决问题的能力。本课程要求学生必须学会使用帮助,认识程序设计中的英语词汇。遇到问题先尝试到教材、网络、MSDN以及同学那儿去获取帮助,然后再问老师。学生遇到英文的编译错误信息和帮助时,在理解上还是很有困难。本书对大部分术语都列出了对应的英文词汇,在配套的《C++程序设计实验指导》的附录中列出了编译中见的英文词汇。
(4) 提高思维能力。本书的例题绝大部分都有“思路扩展”一项,对求解的思路、方法进行概括,进一步介绍这种方法的适用场合或提出问题让学生思考。本书作为讲义已使用了两届。调查结果显示,认为本课程的教学对解决问题的一般方法“很有启发”的占31.71 %,认为“有启发”的占58.54 %,两项合计占90.25%。
本书不仅涵盖了C++语言的基本语法知识,而且更注重讲解计算机程序求解问题的思想方法;目的在于既培养编程能力,又启发思维。本书可作为高等学校理工类各专业的计算机程序设计教材或参考书,也可供程序设计爱好者、工程技术和软件开发人员学习、参考。
本书由赵英良主编,冯博琴教授审阅。第1~4章由赵英良编写,第5、6章由贾应智编写,第7~9章由夏秦编写,第10章由仇国巍编写,第11章由乔亚男、仇国巍编写。本书由赵英良、仇国巍统稿。在编写过程中还得到了西安交通大学计算机教学实验中心许多同事的关心、指导和帮助,2011级、2012级的许多同学提出了很多建议,在此表示感谢。本书编写过程中参考了很多资料,向这些图书的作者表示诚挚的谢意。由于作者水平有限,书中可能会有错误和不当之处,恳请读者指正。
编者
第1章 程序设计与C++概述
1.1 程序设计与计算机语言
1.1.1 计算机语言的发展
1.1.2 C++语言
1.2 第一个C++程序
1.2.1 在屏幕上显示“Hello World!”
1.2.2 C++的程序结构和C++程序的执行顺序
1.2.3 C++程序的基本要素
1.3 C+十的编程步骤
1.4 编程实例
1.4.1 打印中秋贺卡
1.4.2 计算存款利息
1.5 小结
习题1
第1章 程序设计与C++概述
1.1 程序设计与计算机语言
1.1.1 计算机语言的发展
1.1.2 C++语言
1.2 第一个C++程序
1.2.1 在屏幕上显示“Hello World!”
1.2.2 C++的程序结构和C++程序的执行顺序
1.2.3 C++程序的基本要素
1.3 C+十的编程步骤
1.4 编程实例
1.4.1 打印中秋贺卡
1.4.2 计算存款利息
1.5 小结
习题1
第2章 简单信息的表达与运算
2.1 信息的表达
2.1.1 数据类型与常量
2.1.2 单项特征的表达——变量
2.1.3 多个相同类型的特征的表示——数组
2.1.4 文字信息的表达——字符串
2.2 数据的运算
2.2.1 算术运算
2.2.2 关系运算
2.2.3 逻辑运算符和表达式
2.2.4 自增运算符和自减运算符
2.2.5 位运算符和位运算表达式
2.2.6 三目条件运算符
2.2.7 运算符的优先级
2.2.8 不同类型数据的混合运算
2.3 程序设计实例
2.3.1 已知三边计算三角形面积
2.3.2 从反序数到回文数
2.3.3 数字符号的数值形式和ASCII形式
2.3.4 启闭指定设备
2.3.5 加密解密
2.4 小结
习题2
第3章 运算的流程控制
3.1 程序的执行顺序
3.2 不同情况分别处理——分支
3.2.1 特殊情况特殊处理(单路分支)
3.2.2 不同情况分别处理(两路分支)
3.2.3 多种情况分类处理(多重分支switch)
3.3 多次加工一一一循环程序设计
3.3.1 已知次数的循环
3.3.2 依据条件进行循环
3.3.3 终止循环和直接进入下次循环
3.4 综合实例
3.4.1 数组的输入、排序和输出
3.4.2 字符串的处理
3.4.3 有趣的数字
3.5 小结
习题3
第4章 复杂信息的表达与处理
4.1 多个事物的多项特征
4.1.1 二维数组
4.1.2 多维数组
4.1.3 二维字符数组及字符串的其他表示方法
4.2 多项特征整体描述
4.2.1 结构体类型的定义和使用
4.2.2 结构体数组
4.3 取有限值的特征的描述一枚举
4.4 综合实例
4.4.1 矩阵运算
……
第5章 问题的模块化求解
第6章 按址操作——指针
第7章 数据的抽象与封装——类
第8章 取其精华 发挥优势——继承
第9章 统一接口 不同实现——多态性
第10章 标准输入输出与文件操作
第11章 数据结构、算法与应用
附录A ASCII字符表
附录B 常用数学库函数
附录C 常用的字符串处理函数
附录D 常用字符串和数的转换函数
附录E string类的常用方法
参考文献