《C++程式设计教程》是由赵英良主编,2013年清华大学出版社出版的大学计算机基础教育规划教材。该教材既可作为高等学校理工类专业电脑程式设计课程的教材或参考书,也可供程式设计爱好者、工程技术和软体开发人员学习、参考。
该教材以问题求解的过程为主线,以C++语言为载体,介绍电脑程式的基本结构、信息的表示、流程的控制等内容。
基本介绍
- 书名:C++程式设计教程
- 作者:赵英良、仇国巍、夏秦、贾应智、乔亚男
- ISBN:9787302330578
- 类别:大学计算机基础教育规划教材
- 页数:355页
- 出版社:清华大学出版社
- 出版时间:2013年8月1日
- 装帧:平装
- 开本:16开
- 字数:575千字
- CIP核字号:2013145944
成书过程
修订情况
该教材由赵英良主编,冯博琴教授审阅。第1~4章由赵英良编写,第5、6章由贾应智编写,第7~9章由夏秦编写,第10章由仇国巍编写,第11章由乔亚男、仇国巍编写。本书由赵英良、仇国巍统稿。在编写过程中还得到了西安交通大学计算机教学实验中心许多同事的关心、指导和帮助,2011级、2012级的许多同学提出了相关建议,在编写过程中参考了一些资料。
出版工作
2013年8月1日,该教材由清华大学出版社出版。
策划编辑 | 封面设计 | 责任校对 | 责任印製 |
---|---|---|---|
焦红 | 常雪影 | 梁毅 | 刘海龙 |
内容简介
该教材以问题求解的过程为主线,以C++语言为载体,介绍电脑程式的基本结构、信息的表示、流程的控制、模组化方法、指针操作、面向对象的编程方法、输入输出格式控制与档案操作和基本数据结构及套用等内容。
教材目录
第1章程式设计与C++概述11.1程式设计与计算机语言1 1.1.1计算机语言的发展1 1.1.2C++语言3 1.2第一个C++程式4 1.2.1在萤幕上显示“Hello World!”4 1.2.2C++的程式结构和C++程式的执行顺序4 1.2.3C++程式的基本要素7 1.3C++的编程步骤9 1.4编程实例13 1.4.1列印中秋贺卡13 1.4.2计算存款利息15 1.5小结17 习题117 第2章简单信息的表达与运算19 2.1信息的表达19 2.1.1数据类型与常量19 2.1.2单项特徵的表达——变数26 2.1.3多个相同类型的特徵的表示——数组28 2.1.4文字信息的表达——字元串30 2.2数据的运算32 2.2.1算术运算32 2.2.2关係运算34 2.2.3逻辑运算符和表达式35 2.2.4自增运算符和自减运算符36 2.2.5位运算符和位运算表达式37 2.2.6三目条件运算符41 2.2.7运算符的优先权43 2.2.8不同类型数据的混合运算45 2.3程式设计实例46 2.3.1已知三边计算三角形面积46 2.3.2从反序数到迴文数47 2.3.3数字元号的数值形式和ASCII形式49 2.3.4启闭指定设备50 2.3.5加密解密51 2.4小结53 习题255 第3章运算的流程控制57 3.1程式的执行顺序57 3.2不同情况分别处理——分支58 3.2.1特殊情况特殊处理(单路分支)59 3.2.2不同情况分别处理(两路分支)60 3.2.3多种情况分类处理(多重分支switch)63 3.3多次加工——循环程式设计65 3.3.1已知次数的循环65 3.3.2依据条件进行循环68 3.3.3终止循环和直接进入下次循环71 3.4综合实例72 3.4.1数组的输入、排序和输出72 3.4.2字元串的处理74 3.4.3有趣的数字77 3.5小结80 习题381 第4章複杂信息的表达与处理85 4.1多个事物的多项特徵85 4.1.1二维数组85 4.1.2多维数组88 4.1.3二维字元数组及字元串的其他表示方法89 4.2多项特徵整体描述92 4.2.1结构体类型的定义和使用93 4.2.2结构体数组97 4.3取有限值的特徵的描述——枚举101 4.4综合实例103 4.4.1矩阵运算103 4.4.2字元串处理105 4.4.3统计词频107 4.5小结110 习题4112 第5章问题的模组化求解114 5.1模组化程式设计114 5.2函式的定义和声明116 5.2.1函式的定义116 5.2.2函式的声明118 5.3函式调用119 5.3.1函式调用的格式119 5.3.2参数的传递方式123 5.3.3为形参指定默认值125 5.3.4数组名作为函式参数128 5.3.5结构体变数作为函式参数130 5.4递归函式131 5.5内联函式135 5.6函式重载136 5.7变数的作用域和存储类型139 5.7.1局部变数139 5.7.2全局变数140 5.7.3变数存储类型141 5.8程式设计实例144 5.8.1使用递归求斐波那契序列的前30项144 5.8.2求非线性方程的根145 5.8.3有趣的数146 5.8.4二分查找法148 5.9小结150 习题5151 第6章按址操作——指针153 6.1地址与指针153 6.1.1地址153 6.1.2指针和指针变数154 6.2指针变数的定义和使用155 6.2.1指针变数的定义155 6.2.2指针变数的使用157 6.2.3结构体变数的指针158 6.2.4二级指针159 | 6.3地址传递和函式的指针159 6.3.1函式调用时的地址传递159 6.3.2指向函式的指针变数162 6.4数组的指针和字元串的指针164 6.4.1一维数组的地址164 6.4.2二维数组的地址168 6.4.3字元串的指针169 6.5动态申请存储空间172 6.5.1动态申请存储空间172 6.5.2定义动态数组173 6.6程式设计实例174 6.6.1指针变数作为函式的形参174 6.6.232位的二进制IP位址转换成点分十进制地址177 6.6.3指针数组178 6.6.4带参数的main函式180 6.7小结181 习题6181 第7章数据的抽象与封装——类1837.1类的定义和使用183 7.1.1类的定义183 7.1.2类的使用186 7.2面向对象的方法简介188 7.2.1对象和面向对象188 7.2.2面向对象方法189 7.3构造函式和析构函式190 7.3.1构造函式191 7.3.2析构函式193 7.3.3类的组合199 7.4对象与指针203 7.4.1指向对象的指针203 7.4.2指向对象成员的指针204 7.4.3this指针205 7.5多档案结构206 7.5.1类的定义档案206 7.5.2类的实现档案207 7.5.3类的使用208 7.5.4编译预处理209 7.6程式设计实例212 7.6.1学生信息类212 7.6.2日期类216 7.7小结222 习题7222 第8章取其精华发挥优势——继承225 8.1继承和派生225 8.1.1派生类的定义225 8.1.2派生类的构成226 8.2继承方式230 8.2.1公有继承231 8.2.2私有继承231 8.2.3保护继承234 8.3派生类的构造函式与析构函式236 8.3.1派生类的构造函式236 8.3.2派生类的析构函式237 8.4虚基类240 8.5程式设计实例244 8.5.1从学生到本科生、硕士生、博士生244 8.5.2从随身碟到MP3249 8.6小结251 习题8252 第9章统一接口不同实现——多态性253 9.1多态性概述253 9.2虚函式256 9.3抽象类258 9.4运算符重载261 9.5程式设计实例267 9.5.1从几何形状到点、圆和矩形267 9.5.2向量的加减运算272 9.5.3高校员工管理系统276 9.6小结285 习题9286 第10章标準输入输出与档案操作287 10.1数据的输入输出287 10.1.1输入输出流及流库287 10.1.2标準输入流288 10.1.3标準输出流292 10.2档案操作296 10.2.1档案输入输出流类296 10.2.2档案的打开与关闭297 10.2.3文本档案和二进制档案的读写299 10.2.4档案操作典型例题307 习题10312 第11章数据结构、算法与套用314 11.1数据结构概览314 11.1.1数据结构的基本概念314 11.1.2线性数据结构316 11.1.3非线性数据结构319 11.2模板与标準模板库323 11.2.1函式模板和类模板323 11.2.2标準模板库325 11.2.3简单套用举例327 11.3常见算法策略332 11.3.1枚举法332 11.3.2分治法335 11.3.3回溯法337 11.3.4贪心算法343 习题11345 附录AASCII字元表347 附录B常用数学库函式349 附录C常用的字元串处理函式350 附录D常用字元串和数的转换函式352 附录E string类的常用方法354 参考文献356 |
(注:目录排版顺序为从左列至右列)
教学资源
该教材配有辅助教材《C++程式设计实验指导与习题解析》。
书名 | 书号 | 出版社 | 作者 |
---|---|---|---|
《C++程式设计实验指导与习题解析》 | 9787302330585 | 清华大学出版社 | 赵英良 |
教材特色
该教材採用“精讲多练”的教学模式,有例题和习题。例题从题目描述、问题分析、源程式、运行结果、程式分析、思维扩展等方面进行讲解。该教材不仅涵盖了C++语言的基本语法知识,而且更注重讲解电脑程式求解问题的思想方法。
- 提高独立编程的能力:该教材对稍微複杂的例题,一是给出问题的分析,分析问题求解的关键;二是写出步骤详细的算法,这是问题和程式之间的桥樑;三是在源程式中给出详细清晰的注释,并与算法之间有一致的对应关係;
- 提高程式调试的能力:调试方法本身不在该教材中讲述,是在实验中渗透的。从第二次实验开始,在第2章、第3章对应的实验中,会教给学生跟蹤程式的方法;
- 高自学和独立解决问题的能力:该教材对大部分术语都列出了对应的英文辞彙,在配套的《C++程式设计实验指导》的附录中列出了编译中见的英文辞彙;
- 提高思维能力:该教材的例题绝大部分都有“思路扩展”一项,对求解的思路、方法进行概括,进一步介绍这种方法的适用场合或提出问题让学生思考。
作者简介
赵英良,1967年生,男,博士,西安交通大学电子与信息工程学院教授、硕士生导师。研究方向为信息处理。