《程序设计教程:用C++语言编程 第4版》陈家骏【文字版_PDF电子书_】
![]()
| 书名:程序设计教程(第4版) 作者:陈家骏/郑滔 出版社:机械工业出版社 译者:无 出版日期:2023-1 页数:394 ISBN:9787111716976 | 0.0 豆瓣评分 | 孔网购买 | 点击喜欢 | 全网资源sm.nayona.cn |
内容简介:
本书以C++为编程语言,介绍程序设计的基本思想、方法和技术。本书内容围绕程序设计的基础知识、过程式和面向对象程序设计基本内容进行展开,主要包括:计算机基础知识、基本数据类型、常量、变量、操作符、表达式、流程控制、结构化程序设计、过程抽象、递归函数、复杂数据类型(数组、结构等)、数据抽象、继承、类属类型(STL)、输入/输出、异常处理以及事件驱动和基于MFC“文档-视”结构的面向对象的Windows应用程序框架等。
作者简介:
陈家骏,南京大学计算机科学与技术系教授,博士生导师。教授本科生门程序设计课程近二十年。科研方面主要从事自然语言处理和软件工程领域的研究工作,曾多次主持及省级科研项目的研究与开发,研究成果多次获得省部级科研励。
目 录:
前言
第3版前言
第2版前言
第1版前言
教学建议
第1章 概述
1.1 计算机的工作原理
1.1.1 冯·诺依曼体系结构
1.1.2 硬件与软件
1.1.3 机内信息表示
1.2 程序设计概述
1.2.1 程序设计范式
1.2.2 程序设计步骤
1.2.3 程序设计语言
1.3 C++语言概述
1.3.1 C++语言的特点
1.3.2 C++程序的构成
1.3.3 C++程序的运行步骤
1.3.4 C++语言的词法
1.4 小结
1.5 习题
第2章 简单数据的描述——基本数据类型和表达式
2.1 数据类型概述
2.2 基本数据类型
2.2.1 整数类型
2.2.2 实数类型
2.2.3 字符类型
2.2.4 逻辑类型
2.3 数据的表现形式
2.3.1 常量
2.3.2 变量
2.3.3 变量值的输入
2.4 数据的基本操作—操作符
2.4.1 操作符概述
2.4.2 算术操作符
2.4.3 关系与逻辑操作符
2.4.4 赋值操作符
2.4.5 位操作符
2.4.6 其他操作符
2.4.7 操作数的类型转换
2.5 数据操作的基本单位—表达式
2.5.1 表达式的构成和分类
2.5.2 操作符的优先级和结合性
2.5.3 表达式中操作数的类型转换
2.5.4 表达式结果的输出
2.5.5 带副作用操作符的表达式计算
2.5.6 左值表达式与右值表达式
2.6 小结
2.7 习题
第3章 程序流程控制(算法)描述——语句
3.1 程序流程控制概述
3.2 顺序执行
3.2.1 表达式语句
3.2.2 复合语句
3.2.3 空语句
3.3 选择执行
3.3.1 两路分支语句—if语句
3.3.2 多路分支语句—switch语句
3.4 重复执行
3.4.1 问题求解的迭代法与穷举法
3.4.2 循环语句
3.4.3 计数循环和事件循环
3.4.4 循环程序设计实例
3.5 无条件转移执行
3.5.1 goto语句
3.5.2 break语句
3.5.3 continue语句
3.6 程序设计风格
3.6.1 结构化程序设计
3.6.2 关于goto语句
3.7 小结
3.8 习题
第4章 过程抽象——子程序
4.1 过程抽象概述
4.1.1 基于功能分解与复合的过程式程序设计
4.1.2 子程序及子程序间的数据传递
4.2 C++函数
4.2.1 函数的定义
4.2.2 函数的调用
4.2.3 通过参数向函数传数据的值—值参数传递
4.3 变量的局部性
4.3.1 局部变量与全局变量
4.3.2 变量的生存期(存储分配)
*4.3.3 基于栈的函数调用
4.4 程序的多模块结构
4.4.1 程序的模块化
4.4.2 标识符的作用域
4.4.3 标准函数库
4.5 递归函数
4.5.1 什么是递归函数
4.5.2 “分而治之”的程序设计
4.5.3 递归函数应用实例
4.5.4 递归与循环的选择
4.6 C++函数的进一步讨论
4.6.1 带参数的宏和内联函数
4.6.2 带默认值的形式参数
4.6.3 函数名重载
4.6.4 匿名函数—λ表达式
4.7 小结
4.8 习题
第5章 复合数据的描述——构造数据类型
5.1 自定义值集的数据描述—枚举类型
5.1.1 枚举类型的定义
5.1.2 枚举类型的操作
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.4 用一种类型表示多种类型的数据—联合类型
5.4.1 联合类型的定义与操作
5.4.2 联合类型的应用
5.5 内存地址的描述—指针类型
5.5.1 指针类型概述
5.5.2 指针类型的定义与基本操作
5.5.3 指针类型作为参数—地址参数传递
5.5.4 指针与动态变量—实现元素个数可变的复合数据描述(动态数组与链表)
*5.5.5 用指针提高对数组元素的访问效率
5.5.6 把函数作为参数传递给函数—函数指针
*5.5.7 多级指针
5.6 数据的别名—引用类型
5.6.1 引用类型的定义
5.6.2 引用作为函数参数类型
5.7 小结
5.8 习题
第6章 数据抽象——对象与类
6.1 数据抽象概述
6.1.1 数据抽象与封装
6.1.2 面向对象程序设计
*6.1.3 面向对象程序设计与过程式程序设计的对比
6.2 类
6.2.1 数据成员
6.2.2 成员函数
6.2.3 成员的访问控制—信息隐藏
6.3 对象
6.3.1 对象的创建
6.3.2 对象的操作
6.3.3 this指针
6.4 对象的初始化和消亡前处理
6.4.1 构造函数
6.4.2 析构函数
6.4.3 成员对象的初始化和消亡前处理
6.4.4 拷贝构造函数
6.5 类作为模块
6.5.1 类模块的组成
*6.5.2 Demeter法则
6.6 对象与类的进一步讨论
6.6.1 对常量对象的访问—常成员函数
6.6.2 同类对象之间的数据共享—静态数据成员
6.6.3 提高对象私有数据成员的访问效率—友元
*6.6.4 对象拷贝构造过程的优化—转移构造函数
6.7 操作符重载
6.7.1 操作符重载概述
6.7.2 操作符重载的基本做法
6.7.3 一些特殊操作符的重载
6.7.4 操作符重载实例—字符串类String的一种实现
6.8 小结
6.9 习题
第7章 类的复用——继承
7.1 继承概述
7.2 单继承
7.2.1 单继承派生类的定义
7.2.2 在派生类中访问基类成员—protected访问控制
7.2.3 基类成员在派生类中对外的访问控制—继承方式
7.2.4 派生类对象的初始化和消亡处理
7.2.5 单继承的应用实例
7.3 消息(成员函数调用)的动态绑定
7.3.1 消息的多态性
7.3.2 虚函数与消息的动态绑定
7.3.3 纯虚函数和抽象类
*7.3.4 虚函数动态绑定的一种实现
7.4 多继承
7.4.1 多继承概述
7.4.2 多继承派生类的定义
7.4.3 名冲突
7.4.4 重复继承—虚基类
7.5 类之间的聚合/组合关系
7.6 小结
7.7 习题
第8章 输入/输出
8.1 输入/输出概述
8.2 面向控制台的输入/输出
8.2.1 基于函数库的控制台输入/输出
8.2.2 基于I/O类库的控制台输入/输出
8.2.3 抽取操作符“>>”和插入操作符“<<”的重载
8.3 面向文件的输入/输出
8.3.1 文件概述
8.3.2 基于函数库的文件输入/输出
8.3.3 基于I/O类库的文件输入/输出
8.4 面向字符串变量的输入/输出
8.5 小结
8.6 习题
第9章 异常处理
9.1 异常处理概述
9.1.1 什么是异常
9.1.2 异常处理的基本手段
9.2 C++异常处理机制
9.2.1 try、throw和catch语句
9.2.2 异常的嵌套处理
9.3 基于断言的程序调试
9.4 小结
9.5 习题
第10章 基于泛型的程序设计
10.1 泛型概述
10.2 模板
10.2.1 函数模板
10.2.2 类模板
10.2.3 模板的复用
10.3 基于STL的编程
10.3.1 STL概述
10.3.2 容器
10.3.3 迭代器
10.3.4 算法
10.4 函数式程序设计概述
10.4.1 什么是函数式程序设计
10.4.2 函数式程序设计中的常用操作
10.5 小结
10.6 习题
第11章 事件驱动的程序设计
11.1 事件驱动程序设计概述
11.2 面向对象的事件驱动程序设计
11.2.1 Windows应用程序中的对象及微软基础类库
11.2.2 基于“文档-视”结构的应用框架
11.3 小结
11.4 习题
附录
附录A ASCII字符集及其编码
附录B IEEE 754浮点数的内部表示
附录C C++标准函数库中的常用函数
附录D C++编译预处理命令
附录E C++标准模板库常用功能
附录F MFC常用类的功能
浏览器不支持脚本!
摘要:本文以《程序设计教程:用C++语言编程 第4版》陈家骏为中心,对该教材的内容体系、教学理念、知识结构以及在程序设计教学中的价值进行系统梳理与深入分析。文章首先从整体上概括本书的编写背景与核心特色,指出其在C++基础教学领域中的重要地位。随后,正文从教材内容结构、教学方法特色、C++知识体系构建以及对学习者能力培养四个方面展开详细阐述,力求全面呈现本书在理论讲解与实践训练之间取得的平衡。通过多角度分析,文章展示了该教材在循序渐进、注重思维训练和工程意识培养方面的独特优势。最后,结合当前程序设计教学的发展趋势,对全书进行总结归纳,强调其在高校教学与自学者学习中的现实意义与长期价值。
一、教材内容结构
《程序设计教程:用C++语言编程 第4版》在内容结构上体现出鲜明的层次性和系统性。全书从程序设计的基本概念入手,引导读者逐步理解计算机程序的本质,为后续学习打下坚实基础。这种由浅入深的编排方式,能够有效降低初学者面对C++语言时的心理门槛。
在基础语法部分,教材对变量、数据类型、运算符以及基本控制结构进行了详尽说明。每一个知识点都配合示例程序进行讲解,使抽象的语法规则转化为具体可感的代码实践。这种结构安排有助于读者在理解概念的同时,形成对程序运行过程的直观认识。
随着学习的深入,教材逐步引入函数、数组、指针等核心内容,并在章节之间建立清晰的逻辑联系。通过合理的章节衔接,读者能够感受到知识点之间的内在关联,从而构建起完整的程序设计知识框架。
在后半部分,本书进一步拓展到面向对象程序设计的核心思想,如类与对象、继承、多态等内容。这种由过程化到面向对象的过渡,不仅符合C++语言本身的发展逻辑,也契合学习者认知能力逐步提升的规律。
二、教学方法特色
陈家骏在本书中体现出鲜明的教学方法特色,尤其注重理论与实践的结合。每一章内容后都配有大量习题与实验指导,鼓励学生通过动手实践来巩固所学知识。这种“学中做、做中学”的方式,有效提升了学习效果。
教材在讲解过程中强调问题驱动,通过提出实际问题引出相关知识点。读者在解决问题的过程中,自然理解语言特性与编程思想,而非被动接受抽象概念。这种教学思路有助于培养学习者的主动思考能力。
此外,本书语言表述严谨而不失通俗,避免了过度学术化的表达。作者善于使用生活化的比喻和清晰的逻辑说明复杂概念,使初学者也能顺利理解C++中较为困难的内容,如指针和内存管理。
在教学节奏上,教材合理控制知识密度,既保证内容的完整性,又避免信息过载。这种平衡使得教师在课堂教学中易于把握进度,学生在自学时也能够循序渐进地消化吸收。
三、C++知识体系
作为一本系统性的C++教材,本书对语言知识体系的构建尤为重视。从基本语法到高级特性,各部分内容相互支撑,形成一个有机整体。这种体系化设计,有助于读者在学习过程中建立长期稳定的知识结构。
在过程化程序设计方面,教材强调算法思维和程序逻辑,帮助读者理解程序如何通过顺序、选择和循环结构解决问题。这一阶段的学习,为后续复杂程序设计奠定了坚实基础。
在面向对象部分,作者不仅介绍语法规则,更深入阐述其设计思想。通过实例说明封装、继承和多态的实际应用场景,使读者认识到面向对象并非抽象理论,而是解决复杂软件问题的有效工具。
同时,教材对C++标准库的使用也有所涉及,引导读者学会利用现成工具提高编程效率。这种对实用性的关注,使学习者能够更快地将所学知识应用于实际开发环境。
四、能力培养价值
《程序设计教程:用C++语言编程 第4版》不仅传授语言知识,更注重对学习者综合能力的培养。通过系统的编程训练,读者能够逐步形成严谨的逻辑思维和良好的代码习惯。
教材中的实例和习题设计,强调问题分析与解决过程。学习者在不断调试和改进程序的过程中,培养了耐心、细致和自我反思的学习态度,这些能力对今后的学习和工作都具有重要意义。
此外,本书通过逐步引入复杂程序结构,锻炼读者的抽象能力和系统设计能力。这种能力的提升,不仅适用于C++语言学习,也对掌握其他编程语言和技术具有迁移价值。
从长远来看,该教材为学习者进入软件工程领域奠定了坚实基础,使其在面对更大规模、更复杂的项目时,具备必要的理论素养和实践经验。
总结:
总体而言,《程序设计教程:用C++语言编程 第4版》陈家骏是一部结构严谨、内容全面、教学理念先进的经典教材。它通过合理的内容安排和清晰的讲解方式,帮助学习者逐步掌握C++语言及其背后的程序设计思想。
在当前程序设计教育不断发展的背景下,本书依然具有重要参考价值。无论是高校课堂教学,还是个人自学提升,都可以从中获得系统而深入的指导,体现出其经久不衰的学术与实践意义。
本文由nayona.cn整理
联系我们

关注公众号

微信扫一扫
支付宝扫一扫 