C/C++程序设计(第2版)
作者 : 宋晓宇 主编 赵艳平 副主编 杨艳春 李世伟 张洁 编著
出版日期 : 2017-08-25
ISBN : 978-7-111-57700-3
适用人群 : 高校理工科相关专业本科生
定价 : 49.00元
教辅资源下载
扩展信息
语种 : 简体中文
页数 : 314
开本 : 16
原书名 :
原出版社:
属性分类: 教材
包含CD :
绝版 :
图书简介

本书针对初学者的特点,采取“提出问题—分析问题—解决问题—归纳提高”的教学模式,突出对学习者计算思维、编程实践能力的培养与训练,全书书共分为12章,全面系统地介绍了C/C++语言的基本概念、语法及程序设计方法,详细地讲解了C/C++中的的数据类型、运算符与表达式、基本控制语句、数组、函数、指针、类和对象、继承和派生、多态性、虚函数、输入/输出流等内容。本书结构合理、概念清晰、逻辑严密、例题丰富、循序渐进,符合学习者的认知规律,适合作为高等学校开设程序设计基础课程的教材。

图书特色

程序设计语言是大学计算机基础教学中的一项重要内容,也是难点内容。本书根据作者多年的高校教学经验与科研实践编写而成,系统地讲述了C/C++语言的基础知识及程序设计的思想和方法,旨在让读者在掌握基础知识的同时,提高编程实践和使用计算机解决具体问题的能力。
本书特色
精心设计了大量例题,进行深入浅出地分析,使读者能够逐步领悟到编程思想的精妙之处。
推理严谨、丝丝入扣,对比了各种算法的方案,使学生能养成自觉运用所学方法去追求最好结果的良好习惯。
以探索解决问题的方式进行讲解,使读者能清晰明确作者的思维方法,并建立独立思考的学习习惯。
为了方便教学,各章配有难度适中的习题,并为教师免费提供电子课件(下载地址:www.hzbook.com)。
作者简介
宋晓宇,兰州交通大学电子与信息工程学院教师,硕士研究生导师,中国计算机学会会员。完成国家自然科学基金、省级自然科学基金及横向科研课题多项,发表学术研究论文20余篇,主编教材2部。主要研究方向为计算机网络协议及无线传感器网络。

图书前言

程序设计是高等学校计算机基础教育的重要内容和入门课程,C/C++语言以功能丰富、表达能力强、应用面广等特点,在整个计算机基础教育课程设计中占有重要地位。2013年,根据教育部《关于进一步加强高等学校计算机基础教学的意见》的要求,参考《高等学校计算机基础教学发展战略研究报告暨计算机基础课程教学基本要求》,我们编写了《C/C++程序设计》第1版。
本书第1版在使用过程中受到广大读者的广泛好评,但在实际教学中我们发现内容编排上存在一定的问题,导致学生对一些知识的理解出现困难和偏差。针对上述问题,第2版进行了修订,在内容与顺序上进行了调整、改进和补充,并针对参加程序设计等级考试的读者增加了重点章节的课后习题,具体调整如下。
1. 第1版的“第1章绪论”拆分成“C++概述”和“算法”两章
重要的知识点单独成章,每章内容相对独立,与其他知识点关联少,条理清楚,易于初学者掌握。
2. 部分章节顺序调整
数组和指针的顺序问题。一般教材都是先讲数组,再讲指针。带来的问题就是无法对数组名进行解释,于是产生了“数组名是一个地址”的错误说法,实际上数组名在多数情况下都是一个指针。在不介绍指针的情况下,很难把数组一章的内容讲清、讲透,不易于学生理解。
数组和函数的顺序问题。一般教材都是把函数放在数组之后讲解,原因是便于把数组名作为参数放在函数一章中。看起来似乎恰当,但是这样一来就掩盖了函数一章的重点。函数一章最应该教给学生的是如何把函数设计得当,以便于其他函数调用,只要突出这一重点就可以了。
综上所述,最合适的顺序安排应是指针、函数、数组、指针总结。
3.化繁为简、化整为零
对第1版的第10章和第11章的内容进行整合、优化,合成一章。
本书注重对学生编程实践和问题求解能力的培养,以Visual C++为平台,在学习C/C++语言基础知识的同时,通过大量精选的例题和习题将程序设计的基本思想和方法介绍给学生。全书共分12章,涉及C/C++的基本数据类型、运算符和表达式、程序控制结构、数组和字符串处理、函数和模块化程序设计、指针、结构体和共用体、面向对象程序设计基础等。第1~10章以面向过程程序设计方法为出发点,介绍了C/C++语言和程序设计的基础知识。第11、12章是面向对象程序设计方法基础,介绍了C/C++语言中类和对象、继承和派生以及C++流类库等知识。全书在内容安排上实现了从结构化程序设计方法到面向对象程序设计方法的过渡,注重知识的系统性和连贯性。
本书由宋晓宇主编,赵艳平担任副主编,其中杨艳春编写了第1~3章,赵艳平编写了第4、5、8章及附录部分,宋晓宇编写了第6、10、12章,李世伟编写了第7、9章,张洁编写了第11章。在本书的编写过程中,兰州交通大学电信学院软件工程系的教师们给予了大力支持与帮助,在此表示衷心的感谢!
因编者水平有限,书中难免有错误和不妥之处,敬请专家和读者提出宝贵意见,编者邮箱:sxy9998@126.com。

编 者
2017年6月

上架指导

计算机\程序设计

封底文字

程序设计语言是大学计算机基础的一个重要内容,也是难点内容。本书根据作者多年高校教学经验与科研实践编写而成,系统地讲述了C/C++语言的基础知识及程序设计的思想和方法,旨在让读者在掌握基础知识的同时,提高编程实践和使用计算机解决具体问题的能力。
本书特色:
·精心设计了大量例题,进行深入浅出地分析,使读者能够逐步领悟到编程思想的精 妙之处。
·推理严谨、丝丝入扣,对比了各种算法的方案,使学生能养成自觉地运用所学方法去追求最好结果的良好习惯。
·以探索解决问题的方式进行讲解,使读者能清晰触摸到作者的思维方法,并建立起独立思考的学习习惯。
·为了方便教学,各章配有难易适度的习题,并为教师免费提供电子课件(下载地址:www.hzbook.com)。

作者简介

宋晓宇 主编 赵艳平 副主编 杨艳春 李世伟 张洁 编著:
宋晓宇,兰州交通大学电子与信息工程学院教师,硕士研究生导师,中国计算机学会会员。完成国家自然科学基金、省级自然科学基金及横向科研课题多项,发表学术研究论文20余篇,主编教材2部。主要研究方向为计算机网络协议及无线传感器网络。

图书目录

前言
教学建议
第1章 C++概述1
1.1 程序设计语言概述1
1.1.1 机器语言1
1.1.2 汇编语言  1
1.1.3 高级语言2
1.2 程序设计方法3
1.2.1 结构化程序设计方法3
1.2.2 面向对象程序设计方法4
1.2.3 两种程序设计方法的比较4
1.3 C++语言的发展及特点5
1.3.1 C++语言的发展5
1.3.2 C++语言的特点6
1.4 C++语言程序6
1.4.1 C++语言程序举例6
1.4.2C++语言程序的构成9
1.5 C++语言集成开发环境10
1.5.1 C++语言程序的调试步骤10
1.5.2 在Visual C++ 6.0环境中开发C++语言程序10
1.5.3 Visual C++ 6.0程序调试常见错误15
习题16
第2章 算法20
2.1 什么是算法20
2.2 简单的算法举例21
2.3 算法的特点22
2.4 算法的表示方法22
2.4.1 自然语言表示法22
2.4.2 流程图表示法22
2.4.3 N-S流程图表示法25
2.4.4 用计算机语言实现算法26
习题27
第3章 C++语言基础知识29
3.1 C++语言的字符集与词汇29
3.1.1 C++语言的字符集29
3.1.2 C++语言的词汇29
3.2 C++语言的数据类型30
3.3 变量与常量31
3.3.1 变量31
3.3.2 常量33
3.4 运算符与表达式37
3.4.1 算术运算符与算术表达式39
3.4.2 关系运算符与关系表达式41
3.4.3 逻辑运算符与逻辑表达式41
3.4.4 逗号运算符与逗号表达式43
3.4.5 条件运算符与条件表达式44
3.4.6 赋值运算符与赋值表达式45
3.4.7 其他运算符45
3.5 数据类型转换46
3.5.1 隐式类型转换47
3.5.2 显式类型转换47
3.5.3 赋值转换48
习题48
第4章 顺序结构程序设计55
4.1 C++语言的语句55
4.2 数据的输入与输出55
4.2.1 输入输出流的基本操作56
4.2.2 输入输出流的格式控制58
4.3 顺序结构程序举例61
习题64
第5章 选择结构程序设计68
5.1 if语句68
5.1.1 if语句的省略格式68
5.1.2 if-else语句格式69
5.1.3 if-else if-else语句格式71
5.1.4 if语句的嵌套 75
5.1.5 if语句与条件表达式的关系78
5.1.6 if语句程序举例79
5.2 switch语句 81
5.2.1 switch语句格式81
5.2.2 switch语句程序举例 82
5.2.3 if语句与switch语句的比较86
习题86
第6章 循环结构程序设计95
6.1 while语句95
6.2 do-while语句100
6.3 for语句102
6.3.1 for语句的基本形式102
6.3.2 for循环程序举例104
6.3.3 3种循环语句的比较108
6.3.4 3种循环语句的选择109
6.4 break语句和continue语句109
6.4.1 break语句109
6.4.2 continue语句111
6.5 循环的嵌套112
习题117
第7章 指针129
7.1 指针和地址129
7.1.1 指针变量的定义130
7.1.2 指针变量的初始化130
7.1.3 指针变量的引用130
7.1.4 几种特殊的指针133
7.2 指针的运算134
7.3 二级指针135
习题136
第8章 函数与编译预处理138
8.1 函数138
8.1.1 函数的定义139
8.1.2 函数的调用 140
8.1.3 函数的参数141
8.1.4 函数的返回值 141
8.1.5 对被调函数的声明142
8.2 参数传递方式142
8.2.1 值传递143
8.2.2 地址传递143
8.2.3 引用参数145
8.3 函数程序举例145
8.4 函数的嵌套调用 146
8.5 函数的递归调用 147
*8.6 内联函数150
*8.7 函数的重载150
*8.8 函数模板152
*8.9 带默认参数的函数153
8.10 指针函数和函数指针154
8.10.1 指针函数154
8.10.2 函数指针155
8.11 变量的作用域和存储类别 156
8.11.1局部变量 156
8.11.2 全局变量 158
8.11.3 变量的存储类别 159
8.12 编译预处理163
8.12.1 宏定义163
8.12.2 文件包含168
8.12.3 条件编译 169
习题171
第9章 数组184
9.1 一维数组184
9.1.1 一维数组的定义184
9.1.2 一维数组元素的引用185
9.1.3 一维数组的初始化186
9.1.4 一维数组的存储187
9.1.5 一维数组程序举例187
9.2 二维数组192
9.2.1 二维数组的定义192
9.2.2 二维数组元素的引用192
9.2.3 二维数组的初始化193
9.2.4 二维数组程序举例194
9.3 字符数组196
9.3.1 字符数组的定义196
9.3.2 字符数组的初始化196
9.3.3 字符数组元素的引用197
9.3.4 字符数组的输入输出197
9.3.5 字符串处理函数199
9.4 数组和指针202
9.4.1 数组和指针变量的运算202
9.4.2 通过指针变量访问数组元素203
9.5 利用字符指针处理字符串207
9.6 指针数组208
9.7 数组和函数参数209
习题213
第10章 自定义数据类型224
10.1 结构体类型与结构体变量的定义224
10.1.1 结构体类型的声明224
10.1.2 结构体变量的定义225
10.2 结构体变量的初始化与引用225
10.3 结构体数组226
10.4 指向结构体变量的指针227
10.5 链表228
10.5.1 new、delete运算符228
10.5.2 链表的概念229
10.5.3 创建链表229
10.5.4 插入链表节点230
10.5.5 删除链表节点231
10.6 共用体和枚举类型231
10.6.1 共用体类型231
10.6.2 枚举类型232
10.7 类型定义符typedef 233
10.7.1 用typedef定义数据类型233
10.7.2 用typedef定义函数指针类型234
习题235
第11章 面向对象程序设计基础244
11.1 面向对象程序设计的基本概念244
11.2 类和对象245
11.2.1 类的概念245
11.2.2 类的定义245
11.2.3 对象的定义246
11.2.4 成员的引用方式247
11.3 成员函数的声明方式248
11.3.1 内置成员函数的声明248
11.3.2 成员函数的原型与函数体分开定义248
11.3.3 内置函数在类体外定义249
11.3.4 函数重载250
11.4 构造函数与析构函数250
11.4.1 构造函数250
11.4.2 析构函数253
11.5 对象的动态创建与销毁255
11.6 静态成员256
11.6.1 静态数据成员256
11.6.2 静态成员函数257
11.7 友元259
11.8 继承与派生261
11.8.1 派生类的声明261
11.8.2 派生类的继承方式 262
11.8.3 派生类的构造函数和析构函数262
11.8.4 虚基类265
11.9 综合应用266
习题271
第12章 C++语言的流类库285
12.1 输入输出流及流类库285
12.1.1 输入输出流的概念285
12.1.2 流类库285
12.2 文件流286
12.2.1 文件286
12.2.2 定义文件流对象286
12.2.3 文件的打开与关闭287
12.2.4 输出文件流288
12.2.5 输入文件流289
12.2.6 文件流定位292
12.3 字符串流293
12.3.1 字符串流对象的定义及初始化293
12.3.2 字符串流的输入与输出294
12.3.3 字符串流的赋值294
12.3.4 字符串流的比较295
习题295
附录A ASCII码表300
附录B C++语言的关键字302
附录C C++语言的常用库函数303
参考文献305

教学资源推荐
作者: Harvey M.Deitel,Paul J.Deitel
作者: [美]肯尼斯·A.兰伯特(Kenneth A. Lambert)著
作者: [美] 斯图尔特·里杰斯(Stuart Reges) 马蒂·斯特普(Marty Stepp) 艾利森·奥伯恩(Allison Obourn) 著
作者: 刘燕君,刘振安,孙忱
参考读物推荐
作者: 董超 胡炽维 编著
作者: (美) Dan Sanderson 著
作者: [加]约瑟夫·豪斯(Joseph Howse),[爱]乔·米尼奇诺(Joe Minichino) 著
作者: 黄传禄 常建功 陈浩 编著