本站支持尊重有效期内的版权/著作权,所有的资源均来自于互联网网友分享或网盘资源,一旦发现资源涉及侵权,将立即删除。希望所有用户一同监督并反馈问题,如有侵权请联系站长或发送邮件到ebook666@outlook.com,本站将立马改正
《C++程序开发案例课堂》的特色如下:
1. 零基础、入门级的讲解
无论您是否从事计算机相关行业,无论您是否接触过C++编程语言,都能从本书中找到适合的起点。
2. 超多、实用、的范例和项目
本书在编排上紧密结合深入学习C++编程技术的先后过程,从C++的基本语法开始,逐步带领大家深入地学习各种应用技巧,侧重实战技能,使用简单易懂的实际案例进行分析和操作指导,让读者读起来简明轻松,操作起来有章可循。
3. 随时检测自己的学习成果
每章首页中,均提供了本章要点,以指导读者重点学习及学后检查。
大部分章节后的“跟我学上机”板块,均根据本章内容精选而成,读者可以随时检测自己的学习成果和实战能力,做到融会贯通。
4. 细致入微、贴心提示
本书在讲解过程中,在各章中使用了“注意”和“提示”等小贴士,使读者在学习过程中更清楚地了解相关操作、理解相关概念,并轻松掌握各种操作技巧。
5.创作团队和技术支持
您在学习过程中遇到任何问题,均可加入QQ群(案例课堂VIP)进行提问,专家人员会在线答疑。
6. 超值赠送资源
全程同步教学录像
涵盖本书所有知识点,详细讲解每个实例及项目的过程及技术关键点,比看书更轻松地掌握书中所有的C++编程语言知识,而且扩展的讲解部分使您得到比书中更多的收获。
超多容量资源大放送
赠送大量资源,包括本书实例源文件、精美教学幻灯片、精选本书教学视频、Visual Studio 2017常用快捷键、C++库函数查询手册、MFC查询手册、C++程序员面试技巧、C++常见面试题、C++常见代码及解决方案、C++开发经验及技巧大汇总等。读者可以通过QQ群(案例课堂VIP)获取赠送资源,还可以进入配套网站下载赠送资源,也可以扫描二维码,下载本书资源。
《C++程序开发案例课堂》以零基础讲解为宗旨,用实例引导读者深入学习,采取【基础入门→核心技术→应用→项目开发实战】的讲解模式,深入浅出地讲解C++的各项技术及实战技能。
《C++程序开发案例课堂》第1篇【基础入门】主要讲解C++基本概念、C++的程序结构、数据类型、灵活使用运算符、程序流程控制等;第2篇【核心技术】主要讲解函数的应用、数组与字符串、指针、结构体、共用体和枚举类型、面向对象编程、构造函数和析构函数等;第3篇【应用】主要讲解运算符的重载、类的继承、虚函数和抽象类、C++操作文件、异常处理、模板与类型转换、容器和迭代器等;第4篇【项目开发实战】主要讲解开发计算器助手、开发汽车信息管理、开发银行交易、开发学校职工信息管理。
《C++程序开发案例课堂》适合任何想学习C++编程语言的人员,无论您是否从事计算机相关行业,无论您是否接触过C++语言,通过本书学习均可快速掌握C++在项目开发中的知识和技巧。
刘春茂,本科毕业于上海复旦大学,硕士毕业于清华大学。曾在美国IBM公司移动产品开发组从事Android平台应用的开发。
擅长的核心技术
媒体和教育领域个性化信息,网站用户行为数据挖掘,健康领域非结构化数据处理。
擅长的其他技术
熟悉各种网站和手机(Andorid和iOS)app的开发等,精通Java, C/C++, PHP, Python等流行语言并对Hadoop, MapReduce等大数据框架有深入研究。
第1篇 基 础 入 门
第1章 揭开C++的神秘面纱——我的个C++程序 3
1.1 认识C++ 4
1.2 C++的优势 5
1.3 常见的C++开发环境 6
1.4 新手的福音——Visual Studio 2017集成环境 8
1.5 熟悉Visual Studio 2017开发界面 10
1.6 实战演练——个C++项目 15
1.7 理解C++语言的翻译过程 16
1.8 大神解惑 17
1.9 跟我学上机 18
第2章 零基础开始学习——C++的程序结构 19
2.1 分析C++程序的结构 20
2.2 编译前的预处理 26
2.3 输入和输出数据 29
2.4 命名空间 33
2.5 实战演练——经典的入门程序 36
2.6 大神解惑 38
2.7 跟我学上机 38
第3章 程序中的数据种类——数据类型 39
3.1 标识符 40
3.2 变量与常量 41
3.3 基本变量类型 46
3.4 查询变量的类型和内存空间大小 52
3.5 自定义数据类型 53
3.6 实战演练——对比不同数据类型的长度 57
3.7 大神解惑 57
3.8 跟我学上机 58
第4章 谁来操作数据——灵活使用运算符 59
4.1 运算符概述 60
4.2 运算符优先级和结合性 72
4.3 实战演练——综合运用运算符 75
4.4 大神解惑 76
4.5 跟我学上机 77
第5章 程序的执行方向——程序流程控制 79
5.1 顺序语句 80
5.2 条件判断语句 81
5.3 循环语句 84
5.4 多重选择——switch语句 88
5.5 跳出循环 90
5.6 实战演练——流程控制综合应用 92
5.7 大神解惑 95
5.8 跟我学上机 96
第II篇 核 心 技 术
第6章 C++的灵魂——函数的应用 99
6.1 函数的基本结构 100
6.2 变量的作用域 105
6.3 特殊函数调用方式——递归调用 108
6.4 内联函数 109
6.5 预处理器 110
6.6 函数的重载 113
6.7 实战演练——汉诺塔问题函数 114
6.8 大神解惑 116
6.9 跟我学上机 116
第7章 特殊的元素集合——数组与字符串 117
7.1 一维数组 118
7.2 二维数组和多维数组 121
7.3 数组与函数 125
7.4 字符串类 127
7.5 实战演练1——判断字符串回文 132
7.6 实战演练2——输出斐波那契数列 134
7.7 大神解惑 135
7.8 跟我学上机 136
第8章 灵活调用内存地址——指针 137
8.1 指针概述 138
8.2 指针变量 139
8.3 指针与函数 141
8.4 指针与数组 144
8.5 指针与字符串 147
8.6 const指针 148
8.7 void指针 149
8.8 指向指针的指针 149
8.9 动态内存配置 150
8.10 实战演练——判断字符串中有多少个整数 153
8.11 大神解惑 155
8.12 跟我学上机 156
第9章 灵活定义数据类型——结构体、共用体和枚举类型 157
9.1 结构体 158
9.2 将结构体变量作为函数参数 162
9.3 共用体 164
9.4 枚举类型 167
9.5 实战演练——学生信息登记表 169
9.6 大神解惑 172
9.7 跟我学上机 172
第10章 主流的编程思想——认识面向对象编程 173
10.1 面向对象编程概述 174
10.2 认识类 175
10.3 成员函数 180
10.4 嵌套类 182
10.5 const成员函数 182
10.6 类成员的访问控制 184
10.7 静态成员 187
10.8 友元函数 190
10.9 实战演练——栈类的实现 191
10.10 大神解惑 193
10.11 跟我学上机 194
第11章 类的特殊函数——构造函数和析构函数 195
11.1 构造函数初始化类对象 196
11.2 析构函数清除类对象 198
11.3 默认构造函数 200
11.4 重载构造函数 201
11.5 类对象数组的初始化 202
11.6 拷贝构造函数 207
11.7 实战演练——构造函数和析构函数的应用 210
11.8 大神解惑 212
11.9 跟我学上机 212
第III篇 应 用
第12章 赋予新功能——运算符的重载 215
12.1 什么是运算符重载 216
12.2 重载前置运算符和后置运算符 219
12.3 插入运算符和析取运算符的重载 222
12.4 常用运算符的重载 225
12.5 实战演练——重载运算符综合应用 230
12.6 大神解惑 231
12.7 跟我学上机 232
第13章 实现代码重用——类的继承 233
13.1 继承的基本概念 234
13.2 调用父类中的构造函数 240
13.3 子类存取父类成员 243
13.4 多继承 246
13.5 实战演练——继承的综合应用 248
13.6 大神解惑 250
13.7 跟我学上机 250
第14章 实现多态性——虚函数和抽象类 251
14.1 什么是虚函数 252
14.2 抽象类与纯虚函数 255
14.3 抽象类的多重继承 259
14.4 虚函数表 260
14.5 实战演练——抽象类的综合应用 263
14.6 大神解惑 266
14.7 跟我学上机 266
第15章 数据存储——C++操作文件 267
15.1 文件的基本概念 268
15.2 文件的打开与关闭 273
15.3 文本文件的处理 275
15.4 处理二进制文件 280
15.5 实战演练——文件操作 282
15.6 大神解惑 284
15.7 跟我学上机 285
第16章 解决问题的法宝——异常处理 287
16.1 异常的基本概念 288
16.2 异常处理机制 288
16.3 抛出异常 289
16.4 重新抛出异常 291
16.5 捕获所有异常 292
16.6 未捕捉到的异常 293
16.7 标准异常 294
16.8 异常规范 294
16.9 异常与继承 295
16.10 自定义异常类 296
16.11 捕获多个异常 298
16.12 实战演练——异常处理应用 299
16.13 大神解惑 301
16.14 跟我学上机 302
第17章 C++的技能——模板与类型转换 303
17.1 模板 304
17.2 类型识别和强制转换运算符 311
17.3 实战演练——模板的综合应用 316
17.4 大神解惑 318
17.5 跟我学上机 318
第18章 控制元素的存储和访问——容器 和迭代器 321
18.1 STL 322
18.2 迭代器 322
18.3 顺序容器 323
18.4 关联容器 327
18.5 容器适配器 330
18.6 实战演练——容器的综合操作 333
18.7 大神解惑 338
18.8 跟我学上机 338
第IV篇 项目开发实战
第19章 项目实训1——开发计算器助手 341
19.1 需求分析 342
19.2 功能分析 342
19.3 开发前的准备工作 343
19.4代码编写 343
19.5运行 356
19.6 项目总结 358
第20章 项目实训2——开发汽车信息管理 359
20.1 需求分析 360
20.2 功能分析 360
20.3 开发前的准备工作 362
20.4代码编写 362
20.5运行 376
20.6 项目总结 378
第21章 项目实训3——开发银行交易 379
21.1 需求分析 380
21.2 功能分析 380
21.3 开发前的准备工作 381
21.4代码编写 382
21.5运行 398
21.6 项目总结 399
第22章 项目实训4——开发学校职工信息管理 401
22.1 需求分析 402
22.2 功能分析 402
22.3 开发前的准备工作 404
22.4代码编写 404
22.5运行 432
22.6 项目总结 434
第2章 零基础开始学习——C++的程序结构
对没有任何基础的读者而言,学习编程需要从认识基本的C++程序结构开始。本章带领读者了解C++程序的开发过程,剖析C++程序结构,掌握C++代码编写规范,熟练使用C++的输入/输出对象。
本章要点(已掌握的在方框中打钩)
理解C++的程序结构。
熟悉C++的main函数。
理解编译前的预处理。
掌握C++中输入和输出数据的方法。
掌握定义和调用命名空间的方法。
理解C++的注释方法。
2.1 分析C++程序的结构
第1章中读者已经接触了一个简单的案例,可能有很多关键字是初学者不太理解的。下面详细分析该例中用到的关键字。
2.1.1 #include指令及头文件
首先查看源代码,如下:#include
using namespace std;
void main()
{
cout"Hello World"endl;
system("pause");
}上面的例子中,使用了include这个关键字,但是这个关键字起了什么作用呢?下面就来详细介绍include这个关键字。
include是C++的预处理指令,表示包含C/C++标准头文件。C++编译会根据头文件名把该文件的内容包含进来。包含指令不仅于.h头文件,可以包含任何编译器能识别的C/C++代码文件,包括.c,.hpp,.cpp,.hxx,.cxx等,甚至.txt,.abc等都可以。 C++虽然主要是在C的基础上发展起来的一门新语言,但它不是C的替代品,也不是C的升级,不要用""代替<>来包含头文件。虽然有些编译器允许你这样做,但它不符合C/C++标准。的示例:#include "stdio.h",#include "iostream"。那么,在C++中头文件是怎么定义的呢?
在语句#include
一个头文件由如下3部分内容组成。
(1) 头文件开头处的版权和版本声明。
(2) 预处理块。
(3) 函数和类结构声明等。
在C++中,头文件的作用主要包含以下两点。
(1) 可以通过头文件来调用已有程序功能。为了保护源代码的安全性,通过头文件的形式来调用该代码的功能,用户只需要按照头文件中的接口声明来调用该头文件中的功能,而不必关心具体功能是怎么实现的。编译器会从库中析取相应的代码。
(2) 头文件可以加强安全性检查。在调用接口功能过程中,如果调用方式和头文件中的声明不一致,编译器就会报错,从而减少程序员调试负担。 不要使用#include
(1) 如果这个头文件是旧C++特有的,那么去掉.h后缀,并放入std名字空间,如iostream.h变为iostream。
(2) 如果这个头文件是C也有的,那么去掉.h后缀,增加一个c前缀,如string.h变为cstring、stdio.h变为cstdio等。2.1.2 main函数
在上例中,使用了main()函数,那么这个main()函数代表什么呢?C++程序必须有且只能有一个main()函数。main()函数是程序的入口点,无论main()函数在程序中处于什么样的位置。但是,并非所有C++程序都有传统的main()函数。用C或C++写成的Windows程序入口点函数称为WinMain(),而不是传统的main()函数。
main()函数和其他函数一样也是函数,有相同的构成部分。在32位控制台应用程序中,C++ Builder生成具有下列原型的默认main()函数,这个main()函数形式取两个参数并返回一个整型值。其语法格式如下:int main(int argc,char** argv);
不要将main函数的返回类型定义为void,虽然有些编译器允许你这样做,但它不符合C/C++标准。不要将函数的int返回类型省略不写,这在C++中要求编译器至少给一个警告。的示例:void main() {},main() {}。main()函数的个参数argc代表参数的数量,指明有多少个参数将被传递给主函数main()。真正的参数以字符串数组(即第2个参数argv[])的形式来传递。
main()函数本身是以索引0为参数,所以argc至少为1。它的总数是从argv阵列的元素数目。这意味着argv[0]的值是至关重要的,如果用户在控制台环境中程序名称后输入含参数的指令,那么随后的参数将传递给argv[1]。
下面用一个实例来说明main如何调用参数。
【例2-1】main函数调用参数(源代码\ch02\2.1.txt)。
新建名为myMain的C++Source File源程序。源代码如下:#include
using namespace std;
int main(int argc,char* argv[])
{
int a,b,c;
a=atoi(argv[1]);
b=atoi(argv[1]);
v=a+b;
cout"/n输入个数:"aendl;
cout"/n输入第二个数:"bendl;
couta"+"b"="cendl;
return 0;
}
前 言
为什么要写这样一本书
C++语言是在C语言基础上发展起来的,它在C语言基础上融入了许多新的编程理念,这些理念有利于程序的开发。从语言角度来说,C++语言是个规范,它规范程序员如何进行面向对象的程序开发。C++具有C语言操作底层的能力,同时还具有提高代码复用率的面向对象编程技术,是一种语句更加灵活、使用更加简捷、技术更加全面的编程利器。目前学习和关注C++的人越来越多,而很多C++的初学者都苦于找不到一本通俗易懂、容易入门和案例实用的参考书。通过本书的案例实训,读者可以很快地上手流行的工具,提高职业化能力,从而帮助解决公司与求职者的双重需求问题。
本书特色
零基础、入门级的讲解
无论您是否从事计算机相关行业,无论您是否接触过C++编程语言,都能从本书中找到佳起点。
超多、实用、的范例和项目
本书在编排上紧密结合深入学习C++编程技术的先后过程,从C++的基本语法开始,逐步带领大家深入地学习各种应用技巧,侧重实战技能,使用简单易懂的实际案例进行分析和操作指导,让读者读起来简明轻松,操作起来有章可循。
随时检测自己的学习成果
每章首页中,均提供了本章要点,以指导读者重点学习及学后检查。
大部分章节后的“跟我学上机”板块,均根据本章内容精选而成,读者可以随时检测自己的学习成果和实战能力,做到融会贯通。
细致入微、贴心提示
本书在讲解过程中,在各章中使用了“注意”和“提示”等小贴士,使读者在学习过程中更清楚地了解相关操作、理解相关概念,并轻松掌握各种操作技巧。
创作团队和技术支持
您在学习过程中遇到任何问题,均可加入QQ群(案例课堂VIP)进行提问,专家人员会在线答疑。超值赠送资源
全程同步教学录像
涵盖本书所有知识点,详细讲解每个实例及项目的过程及技术关键点,比看书更轻松地掌握书中所有的C++编程语言知识,而且扩展的讲解部分使您得到比书中更多的收获。
超多容量资源大放送
赠送大量资源,包括本书实例源文件、精美教学幻灯片、精选本书教学视频、Visual Studio 2017常用快捷键、C++库函数查询手册、MFC查询手册、C++程序员面试技巧、C++常见面试题、C++常见代码及解决方案、C++开发经验及技巧大汇总等。读者可以通过QQ群(案例课堂VIP)获取赠送资源,还可以进入配套网站下载赠送资源,也可以扫描二维码,下载本书资源。
读者对象
没有任何C++编程基础的初学者。
有一定的C++编程基础,想精通C++开发的人员。
有一定的C++基础,没有项目经验的人员。
正在进行毕业设计的学生。
大专院校及培训学校的老师和学生。
创作团队
本书由刘春茂和李琪编著,参加编写的人员还有张金伟、蒲娟、刘玉萍、裴雨龙、展娜娜、周佳、付红、李园、郭广新、侯永岗、王攀登、刘海松、孙若淞、王月娇、包慧利、陈伟光、胡同夫、王伟、梁云梁和周浩浩。在编写过程中,我们力尽所能地将好的讲解呈现给读者,但也难免有疏漏和不妥之处,敬请不吝指正。
编 者