版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第一章C++入门C++语言简介C++程序的上机实现第一个C++程序案例实战与实训第一节:C++语言简介C++的发展史C++的特点C++的应用领域1.1.1C++的发展史背景132第一阶段从C++语言出现到1995年,在这期间BjarneStroustrup博士完成了经典巨著《TheC++ProgrammingLanguage》第一版;
诞生了一个传世经典ARM。历史背景1967年诞生的第一个面向对象的Simula67语言,随后相继出现了Smalltalk与Smalltalk—80等面向对象的语言,开始向世人展现面向对象程序设计的魅力。第二阶段从1995到2000年,这一阶段由于STL库和后来的Boost库等程序库的出现,泛型编程设计在C++中的比重越来越大。同时由于Java、C#等语言的出现和硬件的影响,C++受到了一定的冲击。
第三阶段从2000年至今,以Loki、
MPL等程序库为代表的产生式编程和模板元编程的出现,使C++迎来了发展史上的又一个高峰。这些新技术和原有技术的融合,使C++成为当今主流程序设计语言中最复杂的语言。1.1.2C++的特点C++既保留了C语言的所有优点,又克服了C语言的缺点,其编译系统能检查出更多的语法错误,因此C++比C语言更安全。绝大多数C语言程序可以不经修改直接在C++环境中运行,用C语言编写的众多库函数可以用于C++程序中。C++设计成与C兼容,完成了从C到C++的平滑过渡。保持与C兼容C++引入了面向对象的概念,使得开发人机交互类型的应用程序更为简单、快捷。通过类的层级关系进行编程,实现功能可扩展和增强的接口。具有诸如JAVA、PHP、Python等面向对象编程语言的特性。支持面向对象编程1.1.2C++的特点利用C++中的标准模板库STL,如set、map、hash等容器,可以快速编写代码。除此之外,数不胜数的第三方库,如扩充C++标准库的Boost库、图形库QT、图像处理库OpenCV、机器学习库Tensorflow、线性代数库Eigen、游戏库OpenGL等,这些优秀的库为企业的项目开发提供了非常大的支持,是必不可少的部分。C++在嵌入式开发领域有重要的地位,智能设备在生活随处可见,如智能手表、机器人等,这些智能设备的底层驱动和上层应用开发离不开C++语言的支持。C++11标准中增加的新特性,如原子操作、常量表达式、线程同步机制等,能够更加紧密的和硬件结合。支持嵌入式开发拥有丰富的库1.1.2C++的特点C++和C语言属于强类型语言,C语言中可以进行强制类型转换,相对自由灵活。在C++中强制类型转换被认为是设计的不合理,为了兼容C语言提供了三种类型转换形式。大多数面向对象编程语言具有垃圾回收机制,而C++语言不具备垃圾回收机制,意味着申请的内存资源在使用完成后要自己释放还给系统。C++11标准的新特性智能指针,实现了内存资源的自动管理,使指针更加灵活并避免了内存泄漏。支持垃圾回收机制类型安全增强1.1.3C++的应用领域C++应用领域科学计算C++凭借先进的数值计算库、泛型编程等优势在这一领域也应用颇多。操作系统C++凭借其对C的兼容性,面向对象性质也开始在该领域有一席之地。教育与科研C++擅长于面向对象程序设计的同时,还可以进行基于过程的程序设计。游戏C
++使得与硬件的交互更加容易,具有大量的库可以与之交互。网络软件C++拥有很多成熟的用于网络通信的库,最具有代表性的是ACE库。第二节:第一个C++程序1.2.1程序文件C++语言作为C的扩展版,其源程序扩展名.cpp,意思为CPlusPlus,开头字母就是cpp。C语言源程序扩展名为.c。扩展名了决定了程序的编译语法和规则。程序文件注意:一个完整的C++程序包括预编译命令,命名空间的使用,主函数,输入输出命令和return语句1.2.2程序基本结构第1行代码:包含了输入输出头文件iostream,
它是C++标准库头文件。第2行代码:引用标准命名空间std。第3~7行代码:定义main()函数。第5行代码:在屏幕上输出“helloC++”。第6行代码:通过return返回0。1#include<iostream>2usingnamespacestd;3intmain()4{5 cout<<"helloC++"<<endl;6 return0;7}1.2.3预处理编译指令#include程序开始部分以#开头的命令,表示预处理命令,编译时预先处理。预处理命令主要有宏定义命令、文件包含命令和条件编译命令。#这是最常见的文件包含命令,命令本质是把指定的文件中的函数,变量,宏等全部导入。#include命令可以用使用尖括号和引号,区别在于引号会优先在要编译的文件中找,没找到才会调用标准库里的文件。因此自己定义的头文件要用双引号,系统的头文件要用尖括号。#include1.2.3预处理编译指令#includeiostream:
标准输入/输出流头文件,包含了系统预定义的标准输入/输出流对象,比如cin和cout。C语言的标注输入/输出头文件为stdio.h。C语言的头文件要加.h,C++不加。头文件可以自定义,包含自定义的头文件要加.h。头文件#include<bits/stdc++.h>包含了所有C++头文件的头文件。DEC++里面可以只用,VS里需要手动添加。优点是:减少头文件编辑工作量。
缺点是:每次读取和分析头文件,会增加编译时间。万能头文件1.2.4命名空间命名空间是C++语言的新特性,它能够解决命名冲突问题。例如,小明定义了一个函数swap(),C++标准程序库中也存在一个swap()函数。此时,为了区分调用的是哪个swap()函数,可以通过命名空间进行标识。定义1.2.4命名空间std是C++标准命名空间,由于C++标准库几乎都定义在std命名空间中,所以编写的所有C++程序都需要引入下列语句。要使用标准命名空间的内容必须先声明才能使用,声明方式如下:usingnamespacestd;标准命名空间自定义命名空间使用namespace定义,其格式如下:namespace
空间名{ …//可以是变量、函数、类、其他命名空间}自定义命名空间1.2.4命名空间①命名空间名加上作用域标识符“::”标识要使用的实体。在引用处指明变量所属的空间,例如,使用标准命名空间的标准输出和换行符,示例代码如下:std::cout<<"C++"<<std::endl;命名空间的使用有三种方式1.2.4命名空间②使用using关键字,在要使用空间实体的上面,使用using关键字引入要使用的空间变量。例如,使用标准命名空间的标准输出,示例代码如下:usingstd::cout;
cout<<"C++";这种情况下,只能使用using引入的标识符。例如,std空间里endl换行符不能被使用,但可以使用std::endl的形式使用。命名空间的使用有三种方式1.2.4命名空间③使用using关键字直接使用要使用的变量所属的空间,示例代码如下:usingnamespacestd;
这样引入std空间后,则std中定义的所有实体都可以被使用了。但这种情况下,如果引用多个命名空间往往容易出错。例如,自定义swap()函数,标准库也有swap()函数,调用swap()函数就会出现二义性错误。命名空间的使用有三种方式1.2.5函数C++程序由若干个文件组成,每个文件又由若干个函数组成,每个函数由函数首部和函数体组成。其中函数首部由函数返回值类型、函数名和形参类型说明表组成,函数体由语句组成,语句以分号作为结束标志的。函数函数返回类型函数名(形参类型说明表){
声明部分 执行部分}函数体函数首部1.2.5函数组成C++程序有多个函数,但有且仅有一个主函数main()。程序执行时,从主函数开始执行,函数体的左大括号“{”表示函数的开始,遇到右大括号“}”表示结束。主函数intmain(){ 声明部分 执行部分return1;}结束程序,返回整数值1.1.2.6变量与数据类型inta,b;其中int为系统提供的基本数据类型,代表整型。a,b为定义的整型变量。C++中每个变量都有指定的数据类型,定义变量,就是分配内存空间,存放指定的数据类型。变量:先定义,后使用。变量基本数据类型有:整型int,浮点型float,字符型char,布尔类型bool,字符串类型string。数据类型1.2.7注释程序的注释是解释性语句,提高源代码的可读性。编译时,会忽略注释。注释语言应该简练易懂、含义准确,避免二义性。C++支持单行注释和多行注释。单行注释:注释以//开始,直到行末为止。多行注释:以/*开头,以*/结尾。注释应用于一行:例:#include<iostream>//头文件包含命令floata,b; //定义了单精度浮点型变量a,b应用于多行或者整个程序文件:例:/*charc;cin>>c*/1.2.8输入与输出输入/输出语句是C++最基本的语句。C++控制台常用的输入输出是由cin和cout对象实现的,他们定义在头文件iostream
中,其作用类似于C语言中的scanf()函数和printf()函数。输入输出1.2.6输入与输出//读入单个变量charc1,c2;cin>>c1;cin>>c2;cin与运算符“>>”结合使用,用于读入用户输入,以空白(包括空格、回车、TAB)为分隔符。cinout<<10<<endl;cout<<'a'<<endl;cout<<"C++"<<endl;cout与运算符“<<”结合使用,用于向控制台输出信息,称作标准输出对象或屏幕输出对象。coutinta=10;cout<<a<<endl;inta=10;stringstr="abc";cout<<a<<","<<str<<endl;//读入多个变量strings,y;floatf;cin>>s>>y;
//一次读入多个相同类型的变量cin>>s>>f;
//一次读入多个不同类型的变量注意:提取运算符>>和插入运算符<<后面只管一个对象连续输入要使用多个提取运算符错误示例:cin>>x,y;正确示例:cin>>x>>y;程序基本结构#include<iostream.h>以#标志开始的句子是预处理器的指示语句。它们不是可执行代码,只是对编译器作出指示。告诉编译器的预处理器将输入输出流的标准头文件(iostream.h)包括在本程序中。intmain()为主函数(mainfunction)的起始声明。mainfunction是所有C++程序的运行的起始点。
程序开始运行时第一个被执行,所有C++程序都必须有一个mainfunction。return0;返回语(return)引起主函数main()执行结束,并将该语句后面所跟代码(在本例中为0)返回。cin>>a>>b;cin是C++中的标准输入流(通常为终端的键盘),从标准输入读取数据,并保存到变量中。cout<<c;cout是C++中的标准输出流(通常为控制台,即屏幕),这句话把变量c插入输出流(控制台输出)中。usingnamespacestd;C++标准函数库的所有元素都被声明在一个名空间中,这就是std名空间。1.2.7编码规范3每个大括号占一行,并与使用大花括号的语句对齐,花括号内的语句缩进两个字符。例如:intmain(){inta,b;------}1一般情况下一行一条语句。例如:
inta,b;cin>>a>>b;加上必要的注释,增强程序的可读性。4例如:需要注释的主要有:文件头部,关键变量和语句。程序结构要清晰,利用Tab缩进,同一层次语句要对齐。例如:if(a<b)max=b;cout<<max;21.2.7头部规范文件头部注释规范说明性文件(如头文件.h文件、.inc文件等)头部应进行注释注释必须列出:版权、作者、编写日期和描述等,还应有函数功能简要说明/*****************************************Copyright:xxxAuthor:xxxDate:2021-11-11Description:描述主要实现的功能*****************************************/举例说明第三节:C++程序的上机实现C++程序开发过程VisualStudio开发环境1.3.1C++应用程序开发基本过程开发基本过程1.编辑开发C++程序首先要通过编辑器对源文件进行编辑。编辑好的C++文件名为.CPP。5.装载和执行此时已经通过装载器将代码放入内存中了,在获取CPU时间后,即可从内存中取出在CPU上执行。4.链接通过连接器将库文件和程序代码链接成可执行程序.exe,同时进行地址转换,以便进行正确的装入工作。3.编译将预处理过的中间文件转换为二进制代码,生成目标文件.obj,此时会进行语法检查和代码优化等工作。2.预处理在正式进行编译之前,会通过一个预处理器来进行一些处理操作,包括将头文件放入源代码、宏的替换等。(也叫预编译)1.3.2开发环境1.3.2VisualStudio开发环境安装1.C++常用编程工具是VisualStudio,由微软公司开发,用于帮助程序员编程的工具,因此要到微软官网去下载2.进入官网后点击“所有Microsoft”,寻找开发人员与IT,点击VisualStudio1.3.2VisualStdio开发环境安装3.进入VisualStudio的产品介绍页面4.网页中列举了三个编程工具软件,如果环境是Windows,就选择第一个大家选取与环境相应的软件进行下载5.可以看到这里有三个版本:
社区版:适用于学生、开源和个人。该版本是免费版,
但它的功能是完备的。可以开发Android、ios、Windows和Web的应用程序。Professional:专业版,比较适用于中、小团队开发。
企业版:比较适用于大、中型团队开发。1.3.2VisualStudio开发环境安装6.下载完成后会得到一个exe文件,双击此文件进入安装提示页面电脑操作系统不一样,安装过程也会不一样,不过安装过程大同小异1.3.2VisualStudio开发环境安装7.等待系统提取数据完毕,进入一个短暂数据加载页面8.数据加载页面过后,进入功能选择界面。1.3.2VisualStdio开发环境安装9.最后点击安装,系统进行下载和安装10.经过一段时间的等待,VisualStudio就安装完成了1.3.2开始C++程序开发1.系统自启动VisualStudio2.软件开启动画后,跳出登录对话框,需要创建一个账户或登陆已创建的账户,如果不需要可直接点击“以后再说”选择样式的时候,推荐暗色样式,编程的时候眼睛不会容易出现疲劳1.3.2开始C++程序开发3.选择样式之后点击“启动VisualStudio”,显示准备对话框4.稍等片刻会弹出软件创建界面,点击“创建新项目”1.3.2开始C++程序开发5.点击创建控制台应用6.输入项目名称,可以自己选择保存地址1.3.2C++程序开发环境窗口7.此时自动生成一个主函数main(),然后就可以开始编写程序8.当前主要用到的是图中标注的两块区域①本地Windows调试:调试当前的程序②右边的头文件、源文件是当前项目内的程序文件1.3.2C++程序开发环境窗口9.点击调试菜单,选择开始调试命令,或者按F5调试运行程序。10.程序执行结果1.3.2C++程序开发环境1.3.2C++程序开发环境选择控制台应用自带的主程序基础代码境第四节:案例实战与实训1.4.1案例实战数学老师请你帮忙,在屏幕上输入两个整数,输出这两个整数相加的竖式计算。例如:
输入2371870
输出:
237
+ 1870
----------------
2107案例实战1.4.1案例实战两个整数的竖式计算中,有输入的两个整数和相加求和的结果,因此定义三个整型变量。inta,b,sum;//a,b为输入的两个数;sum表示和。竖式计算中,输出4行,可以理解成每行输出宽度一致,右对齐,左补空格,因此要对输出宽度进行控制。输出一个对象,然后换行。知识点:C++语言输入输出宽度可用
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年OEM代工合作协议
- 商业演出安全责任书
- PDCA提升患者满意度
- 2025年陕西交通职业技术学院招聘考试真题
- 2025年无锡市市属国有企业招聘考试真题
- 2025年酒泉肃北县公安局招聘警务辅助人员考试真题
- 2025年鞍山市卫健系统事业单位毕业生招聘考试真题
- 2026年鞍山市农业机械系统事业单位人员招聘考试备考试题及答案详解
- 2026年德宏市民政系统事业单位人员招聘考试备考试题及答案详解
- 2026安康秦智电供电服务有限公司招聘岗位表(120人)考试备考试题及答案解析
- 企业重大项目管理办法
- 2025年赤峰市翁牛特旗招聘社区工作者考试试题【答案】
- 2025建筑起重信号司索工考试题库(+答案)
- T/CECS 10104-2020建筑外墙外保温装饰一体板
- 北京三帆中学2025届八下物理期末考试模拟试题含解析
- 2025年天津市河西区中考一模数学试题(一) (原卷版+解析版)
- 高压电缆故障抢修施工方案
- DBJ33T 1271-2022 建筑施工高处作业吊篮安全技术规程
- 老年肌少症的护理
- 硅酸钙板轻钢龙骨隔墙施工方案
- 眼球破裂护理查房
评论
0/150
提交评论