C++程序设计教程
作者 : 宋存利 张雪松 编著
出版日期 : 2021-03-24
ISBN : 978-7-111-67557-0
适用人群 : 高校学生和C++编程初学者
定价 : 59.00元
教辅资源下载
扩展信息
语种 : 简体中文
页数 : 347
开本 : 16
原书名 :
原出版社:
属性分类: 教材
包含CD : 无CD
绝版 :
图书简介

本书内容包括:
1. C++编程基础,主要包括内置数据类型、表达式、运算符、控制结构(分支和循环)、函数等,辅以一些有趣的练习题目,将将简单的小游戏作为编程练习,目的激发学生学习兴趣同时加强编程练习。
2. 面向对象程序部分,主要有类、对象的概念及联系,对象的构造和析构、运算符重载、继承、多态。同时用简单案例通过问题分析、程序实现、运行结果分析等一系列讲解帮助同学理解面向对象程序设计的本质与核心。
3. 异常处理、文件读写、模板、标准模板库等内容,进一步强化程序设计的理念。
内容有易渐难,符合学生的学习规律,本教材的读者对象可以是计算机科学与技术、软件工程及相关专业本科及研究生。

图书特色

图书前言

面向对象程序设计的核心是设计对象,通过对象交互来解决问题。这种设计理念和方法与现实世界的构成有着密切联系,例如现实世界由各种事物构成,事物之间通过交互来处理各种问题等。对象将数据和对数据进行的操作进行了有效的封装,同时增加了信息隐藏的特性,这使得对象很容易被复用、维护和理解。因此,面向对象程序设计技术更有利于软件的设计与开发,在很长一段时间内是软件开发的一种主流技术。
C++是一门面向对象程序设计语言,它兼容C,在C语言的基础上扩展而来,因此它既支持面向过程程序设计,又支持面向对象程序设计。C++程序结构灵活、代码简
洁、可移植性好,同时安全性好、执行效率高、可兼容性和可扩展性强,因而被广泛应用于各种应用领域和系统软件开发中。
21世纪是一个集信息化、网络化、智能化于一体的时代。在这个时代,信息处理、网络控制、智能算法研究等都离不开程序设计,因此掌握一门程序设计语言将是中高端人才必备的技能。而编写C++教材也是作者多年的心愿,正是在此背景下,我们编写了本书。
本书特点
本书融入了作者多年教授程序设计语言课程的体会和感受,对学生容易弄混或不易理解的地方通过案例、提示、注意等进行反复强调,从而加深学生的理解。同时将程序设计的思路尽量用日常生活中的事件进行解释,避免抽象。对每个知识点,通过提出待解决问题、设计分析、实现、运行结论分析等环节来逐一讲解。书中本着案例不在多和难、贵在精的原则,引导学生抓住问题本质。每章结束都有本章小结来总结所学知识点,并提供习题,习题答案同步提供在网上,学生可自行检测学习效果。
本书内容
全书由13章构成,其中前三章为程序设计基础,是C和C++共有的知识部分,没有C语言学习经历的学生可通过学习这三章奠定基础。这部分内容包括编程本质、编写程序的思路、面向对象程序概念、标识符、控制结构、数据类型、表达式、名字空间、函数等。
第4章到第11章为面向对象程序设计部分,这部分内容采用循序渐进的方式逐一展开介绍,重点介绍面向对象概念,包括类与对象、运算符重载、组合与继承、多态、模板、字符串、异常处理、输入输出流和文件等。通过这部分内容的学习,学生应掌握面向对象程序设计的核心思想。
第12章为C++标准模板库(STL),包括容器、迭代器以及各种算法,这是一些类模板和函数模板,它们体现了C++泛化程序设计的思想,在C++程序开发中可以直接使用。通过本章内容的学习,希望学生能在学习别人经验的同时,体会泛化程序设计的思想,并思考如何能更好地进行代码复用,从而养成对设计成果积累的习惯,以提高编程效率。
第13章为利用C++开发的综合案例,通过旅行商问题、贪吃蛇游戏和学生信息管理系统案例的学习,希望学生能在软件开发中进一步提高问题分析、设计、实现、调试等能力。
对学生的学习要求
程序设计实践性较强,因此课后练习非常重要,学生在学习知识点的过程中,建议首先将书中案例在计算机上进行调试,根据理解分析程序运行结果并用程序的实际输出结果验证分析,从而能够读懂程序、理解程序、掌握相关知识点,并能够举一反三,利用掌握的相关知识点完成课后的编程练习。
课时安排
根据多年的教学经验,建议学时为64,其中理论32学时、实验32学时。编程基础是程序设计的基石,基础不好,将会极大地降低学生的学习兴趣,因此建议前三章内容的教学进度慢一点,反复夯实基础,再开始后面内容的学习。本书同时配有课件和习题答案,如有需要,可到华章网站下载。
本书第10章和第11章由张雪松编写,其余章节由宋存利编写,全书统稿由宋存利完成。本书在编写过程中,得到了不少专家、学者的指导,同时也参考了学生学习程序设计语言课程的一些想法,在此对他们表示感谢。由于时间匆忙,书中难免有表述不当之处,欢迎您对书中内容提出批评和修改建议,我们将不胜感激。如需回函,请务必写明您的电子邮件地址。作者联系方式如下。
E-mail:scunli@163.com
微信号:scunli1975

作 者
2020年10月于大连交通大学

上架指导

计算机\程序设计

封底文字

本书基于作者多年教授“程序设计语言”课程的体会和感受,通过提出待解决问题、设计分析、实现、运行结果分析等环节来逐一讲解C++相关知识。同时以精炼的案例分析引导读者抓住问题本质,希望为读者解决学习中的难点和疑点。每章章末都有本章小结来总结所学知识点,还提供了习题(习题答案可在www.hzbook.com上获取)以供读者自行检测学习效果。
本书特色
C++编程基础,主要包括编程本质、编写程序的思路、面向对象程序概念、标识符、控制结构、数据类型、表达式、名字空间、函数等。同时,辅以一些有趣的练习题目,将简单的小游戏作为编程练习,以激发读者的学习兴趣。
面向对象的程序设计知识,包括类与对象、运算符重载、继承、多态、模板、字符串、异常处理、输入输出流和文件等。同时,利用简单的案例,通过问题分析、程序实现、运行结果分析等一系列讲解帮助读者理解面向对象程序设计的本质与核心。
C++标准模板库,包括容器、迭代器以及各种算法等,进一步强化程序设计的理念。
利用C++实现的综合案例——旅行商问题、贪吃蛇游戏以及学生信息管理系统,进一步提高读者在软件开发中的问题分析、设计、实现、调试等能力。
作者简介
宋存利,大连交通大学副教授,工学博士。主要研究方向为生产调度问题、智能优化算法等。主讲课程有“软件工程”“C++程序设计”“JSP程序设计”等,教学经验丰富,深受学生喜爱。曾主持或参加过多项辽宁省自然科学基金项目和辽宁省教育厅科研项目,并作为主要参与人参与了多项国家自然科学基金项目。
张雪松,大连交通大学讲师,工学博士。主要研究方向为计算机视觉和软件工程。主讲课程有“C++程序设计”“Java程序设计”等,教学经验丰富,深受学生喜爱。精通C++和Java等主流编程语言,同时具有丰富的软件项目开发和管理经验。曾主持或参加过多项辽宁省自然科学基金项目和辽宁省教育厅科研项目,并作为主要参与人参与了多项国家自然科学基金项目。

作者简介

宋存利 张雪松 编著:宋存利,大连交通大学副教授,工学博士。主要研究方向为生产调度问题、智能优化算法等。主讲课程有“软件工程”“C++程序设计”“JSP程序设计”等,教学经验丰富,深受学生喜爱。曾主持或参加过多项辽宁省自然科学基金项目和辽宁省教育厅科研项目,作为主要参与人参与了多项国家自然科学基金项目。
张雪松,大连交通大学讲师,工学博士。主要研究方向为计算机视觉和软件工程。主讲课程有“C++程序设计”“Java程序设计”等,教学经验丰富,深受学生喜爱。精通C++和Java等主流编程语言,同时具有丰富的软件项目开发和管理经验。曾主持或参加过多项辽宁省自然科学基金项目和辽宁省教育厅科研项目,作为主要参与人参与了多项国家自然科学基金项目。

图书目录

前言
第1章 程序设计概述 1
1.1 程序设计的基本概念 1
1.1.1 面向对象的基本概念 2
1.1.2 面向对象程序设计的优势 3
1.1.3 面向对象程序的构成 4
1.2 C++语言的发展历史 4
1.3 C++语言的特点 5
1.4 C++程序的构成 5
1.5 Windows平台下C++环境的配置 7
1.6 本章小结 11
第2章 C++编程基础 12
2.1 编写程序的基本思路 12
2.2 标识符 13
2.3 数据类型 14
2.3.1 C++的内置数据类型 14
2.3.2 常量 17
2.3.3 变量 20
2.4 控制结构 26
2.4.1 顺序结构 26
2.4.2 选择结构 29
2.4.3 循环结构 34
2.5 运算符和表达式 41
2.5.1 运算符 41
2.5.2 表达式 47
2.5.3 类型转换 49
2.6 构造数据类型 51
2.6.1 指针 51
2.6.2 数组 54
2.6.3 引用 58
2.6.4 结构体 59
2.6.5 枚举类型 61
2.7 编译预处理指令 62
2.7.1 #include指令 63
2.7.2 #def?ine和#undef指令 63
2.7.3 条件编译指令 65
2.8 名字空间 68
2.9 本章小结 69
2.10 习题 70
第3章 函数 75
3.1 函数的定义与调用 75
3.1.1 函数的定义 75
3.1.2 函数的调用 77
3.1.3 实参与形参的结合 80
3.1.4 函数应用案例 83
3.2 函数重载 84
3.3 内联函数 86
3.4 默认参数 88
3.5 函数与static 90
3.6 函数与const 91
3.7 本章小结 92
3.8 习题 92
第4章 类及对象 96
4.1 类与结构体 96
4.1.1 结构体 96
4.1.2 访问权限控制符 99
4.1.3 类与对象 101
4.2 类的声明与实现的分离 105
4.3 构造函数 107
4.3.1 对象的创建 107
4.3.2 自定义构造函数 107
4.3.3 拷贝构造函数 112
4.4 析构函数 119
4.5 类中的常成员 124
4.5.1 常数据成员 124
4.5.2 常成员函数 126
4.6 类中的静态成员 128
4.6.1 静态数据成员 128
4.6.2 静态成员函数 129
4.7 友元 130
4.7.1 友元函数 131
4.7.2 友元类 132
4.8 this指针 133
4.9 本章小结 135
4.10 习题 136
第5章 运算符重载 142
5.1 运算符重载的基础知识 142
5.2 采用成员函数重载运算符 145
5.3 采用友元函数重载运算符 149
5.4 自增和自减运算符重载 151
5.5 输入和输出运算符重载 154
5.6 其他运算符的重载 156
5.6.1 赋值运算符的重载 156
5.6.2 重载类型转换 157
5.7 本章小结 160
5.8 习题 160
第6章 组合与继承 165
6.1 组合 165
6.2 继承 172
6.2.1 继承的概念 172
6.2.2 继承的方式 172
6.2.3 派生类的初始化 176
6.2.4 多继承 180
6.2.5 名字隐藏 185
6.3 继承与组合 187
6.4 本章小结 188
6.5 习题 188
第7章 多态 195
7.1 虚函数 195
7.2 纯虚函数 202
7.3 本章小结 203
7.4 习题 203
第8章 字符串 208
8.1 C语言中的字符串 208
8.1.1 字符数组 208
8.1.2 指向字符的指针 211
8.1.3 字符串处理函数 211
8.2 C++语言中的string类 214
8.3 本章小结 218
8.4 习题 218
第9章 模板 220
9.1 函数模板 220
9.1.1 函数模板的定义 220
9.1.2 函数模板的实例化 223
9.1.3 函数模板中的非类型参数 224
9.1.4 模板参数的默认值 225
9.1.5 重载函数模板 226
9.2 类模板 227
9.2.1 类模板的定义 228
9.2.2 类模板的实例化 228
9.2.3 带有非类型参数的类模板 230
*9.3 模板特化 232
9.3.1 函数模板特化 232
9.3.2 类模板特化 233
9.4 本章小结 235
9.5 习题 235
第10章 C++异常处理 238
10.1 C++异常 238
10.1.1 捕获异常 239
10.1.2 抛出异常 241
10.1.3 发生异常的位置 244
10.2 异常类型和多级catch 246
10.3 C++中常用的异常类 249
10.4 自定义异常类 251
10.5 异常说明 252
10.6 本章小结 253
10.7 习题 253
第11章 输入输出流和文件 255
11.1 标准流对象 255
11.1.1 数据输入输出的格式化控制 256
11.1.2 字符串的输入 258
11.2 文件的输入输出 264
11.2.1 文件流 265
11.2.2 文件的打开和关闭 265
11.2.3 文件的检测 267
11.2.4 文件的读写操作 267
11.2.5 对文件的随机读写 272
11.3 本章小结 273
11.4 习题 273
第12章 标准模板库 276
12.1 容器 276
12.1.1 顺序容器 276
12.1.2 容器适配器 284
12.1.3 关联容器 287
12.2 STL迭代器 294
12.2.1 迭代器的类型 294
12.2.2 迭代器的类别 296
12.2.3 迭代器失效问题 297
12.3 算法 299
12.3.1 非更易型算法 300
12.3.2 更易型算法 303
12.3.3 移除型算法 305
12.3.4 变序型算法 307
12.3.5 排序型算法 309
12.3.6 已排序区间算法 311
12.3.7 数值算法 312
12.4 本章小结 313
12.5 习题 314
第13章 综合实践案例 317
13.1 旅行商问题 317
13.2 简易版贪吃蛇游戏 319
13.3 学生信息管理系统的设计 325
参考文献 340

教学资源推荐
作者: 罗晓芳 李慧 孙涛 孙大为 朱鸣华 杨微 编著
作者: [美] 罗伯特·W. 塞巴斯塔(Robert W. Sebesta) 著
作者: 高屹 沙俊星
参考读物推荐