程序设计教程:用C++语言编程 第4版
作者 : 陈家骏 郑滔 编著
出版日期 : 2022-12-02
ISBN : 978-7-111-71697-6
适用人群 : 高校计算机类专业和理工科专业本科生
定价 : 69.00元
教辅资源下载
扩展信息
语种 : 简体中文
页数 : 408
开本 : 16
原书名 :
原出版社:
属性分类: 教材
包含CD : 无CD
绝版 :
图书简介

本书以C++为编程语言,介绍程序设计的基本思想、方法和技术。本书内容围绕程序设计的基础知识、过程式和面向对象程序设计基本内容进行展开,主要包括:计算机基础知识、基本数据类型、常量、变量、操作符、表达式、流程控制、结构化程序设计、过程抽象、递归函数、复杂数据类型(数组、结构等)、数据抽象、继承、类属类型(STL)、输入/输出、异常处理以及事件驱动和基于MFC“文档-视”结构的面向对象的Windows应用程序框架等。

图书特色

上架指导

计算机\程序设计

封底文字

本书基于作者多年来的程序设计教学经验编写而成,围绕程序设计的基本思想,采用C++作为实现语言,以培养良好的程序设计素质和能力为目标。本书前三版问世以来,已被全国几十所高校采用为教材,并入选教育部普通高等教育精品教材、普通高等教育“十一五”国家级规划教材、“十二五”“十三五”江苏省高等学校重点教材等。本书概念准确、系统性强,既有简单方法的介绍,又有深入话题的讨论,无论是初学者还是有一定程序设计经验的读者都能从本书中获益。
本书特色
内容全面,组织合理:本书面向第一门程序设计课程的学习,精心组织内容,突出程序设计的核心思想、概念和技术。本书不仅适合读者学习C++语言编程的思想和方法,对学习C语言编程也有一定的参考价值。
第4版的主要改进如下:增加了对函数式程序设计的介绍;加强了对类之间的聚合/组合关系的讨论;对Windows应用程序设计部分的内容进行了重新定位,以突出事件驱动的程序设计思想和基于应用框架的程序复用技术;针对C++新的国际标准(C++11及以后版本)增加了对程序设计有良好支持的内容,如类型自动推断auto、基于范围的for语句等,以提高程序的抽象程度。
问题引导,案例丰富:本书以培养学生的程序设计能力为目标,以问题引导的方式讲解程序设计的方法。同时,利用丰富的实例来说明程序设计思想和重要概念,使初学者更容易理解。
教辅丰富,便于教学:本书配备了丰富的习题,方便读者进行针对性训练。此外,还为教师配备了电子教案和习题答案,需要的教师可登录机工教育服务网下载。
作者简介
陈家骏,南京大学计算机科学与技术系教授,博士生导师。教授本科生第一门程序设计课程近二十年。科研方面主要从事自然语言处理和软件工程领域的研究工作,曾多次主持国家及省级科研项目的研究与开发,研究成果多次获得省部级科研奖励。
郑滔,南京大学软件学院教授,具有多年程序设计、软件开发以及编译技术课程的教学经历,科研兴趣为软件工程和嵌入式系统。曾多次参加国家/省科技攻关项目、国家/省自然科学基金项目和国家863高科技项目的研究与开发,研究成果两次获得部级科技成果二等奖。

作者简介

陈家骏 郑滔 编著:陈家骏,南京大学计算机科学与技术系教授、博士生导师,研究方向包括机器翻译、汉语语言处理以及程序设计语言等。曾承担国家863计划、国家自然科学基金、国家社科基金以及教育部博士点基金等项目的研究工作;曾获得国家七五科技攻关重大成果奖、教育部科技进步二等奖等科研奖励;发表学术论文180余篇,其中包括领域顶级会议和期刊(ACL、EMNLP、NAACL、TALLIP、TACL、AAAI、IJCAI等)论文50余篇。

图书目录

第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 概述
  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.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 while语句
  3.4.3 do-while语句
  3.4.4 for语句
  3.4.5 计数循环和事件循环
  3.4.6 循环程序设计实例
 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.2.4 局部变量与全局变量
  4.2.5 基于函数的过程式程序设计
 4.3 标识符的作用域与变量的生存期
  4.3.1 程序的多模块结构
  4.3.2 标识符的作用域
  4.3.3 命名空间
  4.3.4 变量的生存期(存储分配)
  *4.3.5 基于栈的函数调用的实现
 4.4 递归函数
  4.4.1 什么是递归函数
  4.4.2 “分而治之”的程序设计
  4.4.3 递归与循环的选择
  4.4.4 递归函数应用实例
 4.5 标准函数库
 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 对常量对象的访问——常(const)成员函数
  6.6.2 同类对象之间的数据共享——静态(static)数据成员
  6.6.3 提高对象私有数据成员的访问效率——友元(friend)
  6.6.4 对象拷贝构造过程的优化——转移构造函数
  6.6.5 操作符重载
 6.7 小结
 6.8 习题
第7章 继承(类的复用)——派生类
 7.1 概述
  7.1.1 类之间的继承关系——基类与派生类
  7.1.2 继承的作用
 7.2 单继承
  7.2.1 单继承派生类的定义
  7.2.2 在派生类中访问基类成员——protected访问控制
  7.2.3 派生类对基类成员的访问控制——继承方式
  7.2.4 派生类对象的初始化和赋值操作
  7.2.5 单继承的应用实例
  7.2.6 类之间的聚集关系
 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 习题
第8章 类属类型(泛型)——模板
 8.1 概述
 8.2 模板
  8.2.1 函数模板
  8.2.2 类模板
  8.2.3 模板的复用
 8.3 C++标准模板库
  8.3.1 概述
  8.3.2 容器
  8.3.3 迭代器
  8.3.4 算法
 8.4 小结
 8.5 习题
第9章 输入/输出
 9.1 概述
 9.2 面向控制台的输入/输出
  9.2.1 基于函数库的控制台I/O
  9.2.2 基于类库的控制台I/O
  9.2.3 抽取/插入操作符“>>”和“<<”的重载
 9.3 面向文件的输入/输出
  9.3.1 文件概述
  9.3.2 基于函数库的文件I/O
  9.3.3 基于类库的文件I/O
 9.4 面向字符串变量的输入/输出
 9.5 小结
 9.6 习题
第10章 异常处理
 10.1 概述
  10.1.1 什么是异常
  10.1.2 异常处理的基本手段
 10.2 C++异常处理机制
  10.2.1 try、throw以及catch语句
  10.2.2 异常的嵌套处理
 10.3 基于断言的程序调试
 10.4 小结
 10.5 习题
第11章 Windows应用程序设计
 11.1 Windows应用程序的基本结构
  11.1.1 Windows应用程序简介
  11.1.2 消息驱动的程序结构
 11.2 面向对象的Windows应用程序结构
  11.2.1 Windows应用程序中的对象
  11.2.2 微软基础类库(MFC)
  11.2.3 基于MFC“文档-视”结构的应用框架
 11.3 小结
 11.4 习题

教学资源推荐
作者: [美]埃里克 S. 罗伯茨(Eric S. Roberts) 著
作者: [美] 丹尼尔·卡斯沃姆(Daniel Kusswurm) 著
作者: 过敏意 主编吴晨涛 李超 阮娜 陈雨亭 编著
作者: 邱李华 曹青 郭志强 编著
参考读物推荐