《C++程式设计教程》是由苏成主编,2013年清华大学出版社出版的21世纪普通高校计算机公共课程规划教材。该教材是大学C++程式设计教材,也可以作为程式设计爱好者自学以及参加计算机等级考试的参考资料。
全书分为基础篇、能力篇和实验篇。基础篇共有9章,介绍C++语言的语法、编程规範与技巧,有典型例题和习题。能力篇介绍6种常用算法的思想与趣味实例。实验篇介绍了14个实验,每个实验由四部分组成,引导学生从分析程式、完善程式,到动手编程,最后得以进阶提高。
基本介绍
- 书名:C++程式设计教程
- 作者:苏成
- ISBN:9787302305163
- 类别:21世纪普通高校计算机公共课程规划教材
- 页数:343页
- 出版社:清华大学出版社
- 出版时间:2013年1月1日
- 装帧:平装
- 开本:16开
- 字数:543千字
- CIP核字号:2012258068
成书过程
修订情况
该教材是为以C++语言作为程式设计入门语言的初学者而编写的。
苏成编写第3~5、7~10章,姜薇编写第1~2章,孙仁科编写第5章;实验篇以及第2~10章的习题由苏成、陈廷杰编写;全书由苏成统稿。
在该教材的编写过程中得到了计算机学院、教务处的支持与帮助,C++课程的有关任课教师和杨文嘉老师提出了修改意见。
出版工作
2013年1月1日,该教材由清华大学出版社出版。
责任编辑 | 封面设计 | 责任校对 | 责任印製 |
---|---|---|---|
魏江江、王冰飞 | 傅瑞学 | 焦丽丽 | 何芊 |
内容简介
该教材共分为3个部分。基础篇包括第1~9章的内容。第1章是C++语言概述;第2章是简单的程式设计,包括数据类型、变数、表达式以及选择结构与循环结构程式设计;第3章介绍用户自定义的数据类型,包括数组、指针、引用、字元串以及枚举、结构体与共用体等;第4章介绍函式以及程式结构、变数作用域与生存期等概念;第5章介绍类与对象;第6章介绍类的继承与派生;第7章介绍类的多态性;第8章介绍档案操作以及输入输出格式控制;第9章介绍函式模板和类模板。
能力篇为第10章,首先介绍一些常用的算法,包括枚举法、递推法、叠代法、递归法、分治法、贪心法及模拟法等(动态规划、回溯法等超出该书範围,不作介绍);然后以“求三角形种类与面积”为例,讨论了编写一个有一定规模的程式的过程和方法。
实验篇包含14个实验,每个实验包括4个组成部分。附录A包含一套C++笔试模拟试题和上机操作题,基本以历年C++二级考试真题为蓝本,可以参考检验读者掌握C++的程度。
教材目录
基础篇 C++ 1.1C++语言的产生和发展 1.2C++语言的特点 1.3C++程式的结构 1.3.1简单的C++程式实例 1.3.2C++程式结构分析 1.4C++程式的开发步骤和集成开发环境 1.4.1C++程式的开发步骤 1.4.2VC++ 6.0集成开发环境 习题1 第2章简单的程式设计 2.1C++语言的字元集、标识符与关键字 2.1.1字元集 2.1.2标识符 2.1.3关键字 2.2数据类型 2.2.1C++语言的数据类型简介 2.2.2基本数据类型 2.2.3用typedef重定义类型 2.3常量与变数 2.3.1常量 2.3.2变数 2.4不同类型数据的转换 2.4.1隐式类型转换 2.4.2强制类型转换 2.5运算符与表达式 2.5.1C++运算符简介 2.5.2算术运算符与算术表达式 2.5.3赋值运算符与赋值表达式 2.5.4关係运算符与关係表达式 2.5.5逻辑运算符与逻辑表达式 2.5.6逗号运算符与逗号表达式 2.5.7位运算符 2.6C++语言的基本控制结构及语句 2.6.1C++语句概述 2.6.2顺序结构 2.6.3选择结构 2.6.4循环结构 2.6.5辅助控制语句 2.7常见错误分析 习题2 目录 C++程式设计教程 第3章构造数据类型 3.1数组 3.1.1一维数组 3.1.2二维数组 3.2指针 3.2.1指针的概念 3.2.2指针的基本操作与运算 3.2.3指针与数组的关係 3.2.4动态记忆体分配 3.2.5用限定符const修饰指针 3.3引用 3.3.1引用的概念 3.3.2引用与指针的区别 3.4字元串 3.4.1字元数组 3.4.2字元指针 3.4.3C++风格的字元串处理方法——string类 3.5枚举类型、结构体与共用体 3.5.1枚举类型 3.5.2结构体 3.5.3共用体 3.6常见错误分析 习题3 第4章函式 4.1函式的定义和调用 4.1.1函式的定义 4.1.2函式的调用 4.1.3函式的声明 4.2函式的参数传递 4.2.1形参与实参 4.2.2参数的传递 4.2.3数组和指针作为函式参数 4.3递归函式 4.3.1函式的嵌套调用 4.3.2函式的递归调用 4.4内联函式 4.5形参含有默认值 4.6函式重载 4.6.1函式重载的定义 4.6.2匹配函式重载的规则 4.6.3函式重载的注意事项 4.7系统函式 4.8变数的作用域与生存期 4.8.1作用域与可见域 4.8.2局部变数和全局变数 4.8.3变数的生存期与存储类型 4.9常见错误与典型示例 4.9.1常见错误分析 4.9.2典型示例 习题4 第5章类与对象 5.1面向对象程式设计的基本概念 5.1.1抽象 5.1.2封装 5.1.3继承 5.1.4多态 5.2类与对象 5.2.1类的定义 5.2.2类成员的访问控制 5.2.3类的成员函式 5.2.4对象 | 5.3构造函式与析构函式 5.3.1构造函式 5.3.2带默认参数的构造函式 5.3.3複製构造函式 5.3.4析构函式 5.4对象数组和对象指针 5.4.1对象数组 5.4.2对象指针 5.4.3this指针 5.5静态成员 5.5.1静态数据成员 5.5.2静态成员函式 5.6友元 5.6.1友元函式 5.6.2友元类 5.7常类型 5.7.1常对象 5.7.2用const修饰的类成员 5.8常见错误与典型示例 习题5 第6章继承与派生 6.1继承与派生的概念 6.2派生类 6.2.1派生类的定义 6.2.2派生类的成员组成 6.2.3继承方式 6.3派生类的构造函式和析构函式 6.3.1派生类的构造函式 6.3.2派生类的析构函式 6.4多继承 6.4.1多继承的定义 6.4.2多继承引起的二义性问题 6.5虚基类 6.5.1虚基类的概念 6.5.2虚基类及其派生类的构造函式 6.6基类与派生类的赋值兼容 6.7常见错误与典型示例 习题6 第7章多态性 7.1多态性概述 7.2运算符重载 7.2.1运算符重载为成员函式 7.2.2运算符重载为非成员函式 7.2.3运算符重载的规则和限制 7.2.4运算符重载的套用 7.3虚函式 7.4纯虚函式和抽象类 7.5虚析构函式 7.6常见错误与典型示例 习题7 第8章输入输出流 8.1流的概念 8.2输入输出重定向 8.2.14个标準的输入输出流对象 8.2.2输入重定向 8.2.3输出重定向 8.3输入输出格式控制 8.4档案操作 8.4.1C++档案概述 8.4.2档案的打开与关闭 8.4.3对文本档案的操作 8.4.4对二进制档案的操作 8.5常见错误分析 习题8 第9章模板 9.1函式模板 9.1.1函式模板的定义 9.1.2函式模板的使用 9.2类模板 9.1.1类模板的定义 9.1.2类模板的使用 习题9 能力篇 第10章常用算法与综合实例 10.1常用的算法 10.1.1枚举法 10.1.2递推法 10.1.3递归法 10.1.4递归与递推的比较 10.1.5分治法 10.1.6贪心法 10.1.7模拟法 10.2综合实例 10.2.1用面向过程的方法求三角形种类和面积 10.2.2用面向对象的方法求三角形种类和面积 习题10 实验篇 实验1熟悉C++开发环境和编程步骤 实验2数据类型与表达式 实验3条件与开关语句 实验4循环语句 实验5数组 实验6指针与字元串 实验7函式 实验8作用域、生存期、多档案结构 实验9类与对象 实验10继承与派生 实验11运算符重载 实验12多态性 实验13输入输出流 实验14模板 附录AC++模拟试题 附录BASCII码字元表 附录C常用的库函式 参考文献 |
(注:目录排版顺序为从左列至右列)
教学资源
该教材有配套教材——《C++程式设计实验指导与习题》。
书名 | 书号 | 出版社 | 出版时间 | 作者 |
---|---|---|---|---|
《C++程式设计实验指导与习题》 | 9787302335719 | 清华大学出版社 | 2013.10.01 | 孙仁科 |
教材特色
该教材是面向C++语言初学者的入门教材,也可作为计算机二级考试的参考书。该教材针对初学者的思维特点和教材难点,每章末尾有常见错误分析板块;强调培养算法素养、良好编程风格以及面向对象的思维模式,例如第10章以“求三角形种类与面积”为例,讨论了一个小型的课程设计的开发过程。
主要特色如下:
- 该教材以大学计算机基础教学的基本要求为依据,兼顾全国计算机等级考试(C++二级)大纲要求;在内容选择上,一些不常用而且比较难的内容,比如异常处理、STL标準模板库等,都不在该教材範围内;该教材介绍了两种方法:传统的C语言处理方法和C++的string类的方法;
- 在第2~8章的每章最后,都有一节“常见错误分析”,总结初学者在编程中容易出现的错误以及容易混淆的概念;
- 该教材所有程式都在该环境下调试通过,对于VisualC++6.0不符合标準的地方以及一些bug给予明确说明,以保证程式在其他环境中也能正常运行;
- 该教材填空题包括概念填空题、完善程式题以及阅读程式、写运行结果等。
作者简介
苏成,男,1963年出生,工学硕士,民革党员,毕业于南京大学计算机软体专业,中国矿业大学计算机科学与技术学院副教授、硕士生导师。主要从事基础教学工作,先后讲授《C++程式设计》《大学计算机基础》《计算机系统安全》《算法设计与分析》等课程。