完整word版C++语言第一课.docx
- 文档编号:25668541
- 上传时间:2023-06-11
- 格式:DOCX
- 页数:32
- 大小:149.56KB
完整word版C++语言第一课.docx
《完整word版C++语言第一课.docx》由会员分享,可在线阅读,更多相关《完整word版C++语言第一课.docx(32页珍藏版)》请在冰豆网上搜索。
完整word版C++语言第一课
1初识C++语言
1.1关于C++
C++是一种计算机通用的高级程序设计语言。
开始形成的是C语言,那些想建立更快更有效的代码的程序员非常欣赏C语言。
但有一位名叫BjarneStroustrup的人却不满足于仅仅是生产快速代码,他想创建面向对象的C语言编程。
他开始对C语言的内核进行必要的修改,使其能满足面向对象模型的要求。
C++从此产生。
C++自诞生以来,经过开发和扩充已成一种完全成熟的编程语言。
现在C++已由ANSI、BSI、DIN、其他几个国家标准机构和ISO定为标准。
ISO标准于1997年11月4日经投票正式通过。
C++标准演变了许多年。
C++模板是近几年来对此语言的一种扩展,模板是根据类型参数来产生函数和类的机制,有时也称模板为“参数化的类型”。
使用模板,可以设计一个对许多类型的数据进行操作的类,而不需要为每个类型的数据建立一个单独的类。
标准模板库(StandardTempalteLibrary,STL)就是基于这个C++语言扩展的。
C++标准可分为两部分,C++语言本身和C++标准库。
C++标准库提供了标准的输入/输出、字符串、容器(如矢量、列表和映射等)、非数值运算(如排序、搜索和合并等)和对数值计算的支持。
应该说,C/C++包含了相对少的关键字,而且很多最有用的函数都来源于库。
C++标准库实现容器和算法的部分就是STL。
STL是数据结构和算法的一个框架,数据结构包括矢量、列表和映射等,算法包括这些数据结构的查找、拷贝和排序等。
1994年7月,ANSI/ISOC++标准委员会投票决定接受STL为C++标准库的一部分。
STL的产生是为了满足通用性的设计目标,而不是为了提高性能。
1.1.1C++的发展:
C++程序设计语言是由来自AT&T贝尔实现室的BjarneStroustrup设计和实现的,它兼具Simula语言在组织与设计方面的特性以及适用于系统程序设计的C语言特性。
C++最初的版本被称作“带类的C(Cwithclasses)”,在1980年被第一次投入使用;当时它只支持系统程序设计和数据抽象技术。
支持面向对象程序设计的语言特性在1983年被加入C++;之后,面向对象设计方法和面向对象程序设计技术就逐渐进入了C++领域。
在1985年,C++第一次投入商业市场。
在1987至1989年间,支持范型程序设计的语言特性也被加进了C++
随着若干独立开发的C++实现产品的出现和广泛应用,正式的C++标准化工作在1990年启动。
标准化工作由ANSI(AmericanNationalStandardInstitute)以及后来加入的ISO(InternationalStandardsOrganization)负责。
1998年正式发布了C++语言的国际标准。
1.1.2C++的开发环境:
VisualStudio6.0
这个虽然是Microsoft公司的老版本的开发环境,但是鉴于其后继版本VisualStudio.NET的庞大身躯,以及初学者并不那么高的功能要求,所以推荐这个开发环境给C++的初学者,供其学习C++的最基本的部分,比如C的那部分子集,当然你别指望他能够支持最新的C99标准。
在日常的开发中,仍然有很多公司使用这个经典稳定的环境,比如笔者就看曾亲见有些公司将其编译器替换为GCC做手机开发之用。
VisualStudio.NET
作为Microsoft公司官方正式发布的最新版本开发环境,其中有太多激动人心的功能。
结合其最新的C++编译器。
对于机器配置比较好的开发人员来说,使用这个开发环境将能满足其大部分的要求。
BorlandC++BuilderX
C++BuilderX则是完全从C++的角度思考得出的一个功能丰富的IDE。
其最大的特点是跨平台,跨编译器,多种Framework的集成,并且有一个WxWindows为基础的GUI设计器。
尤其是采用了纯C++来重写了整个Framework,摒弃了以前令人无奈的版本。
对于C++的开发来说,从编译器,到库,到功能集成都是非常理想的。
可以预见,BorlandC++BuilderX2.0很值得C++爱好者期待。
唯一令人难堪之处是作为一个C++的开发工具,其IDE是用Java写的,在配置不够理想的机器上请慎重考虑再安装。
DevC++
GCC是一个很好的编译器。
在Windows上的C++编译器一直和标准有着一段距离的时候,GCC就是一个让Windows下开发者流口水的编译器。
Dev-C++就是能够让GCC跑在Windows下的工具,作为集成开发环境,还提供了同专业IDE相媲美的语法高亮,代码提示,调试等功能。
由于使用Delphi开发,占用内存少,速度很快,比较适合轻量级的学习和使用。
1.2Dev-cpp的环境
启动Dev-c++后的环境如下:
在这个环境中,编辑好源代码后,单击
可以编译源代码,如果编译有错误,则列出错误,并停止编译,这个操作的快捷键为Ctrl+F9。
如果编译成功,则可以单击
,运行编译好的程序。
当然,也可以单击
,编译当前的程序并运行。
这个操作的快捷键为F9.
一些有用的快捷键:
Ctrl+y:
删除当前行
Ctrl+n:
新建源文件窗口
Insert:
插入与改写状态切换
1.3C++程序结构
1.3.1HelloWord!
输入以下程序并编译、运行。
#include
usingnamespacestd;
intmain()
{
cout<<"HelloWord!
"< } 从这个mini程序可以看到C++程序的一般格式。 注释如下: #include 这里是输入输出功能。 因为一个 //信息系统总要输入输出信息,所以基本上每个程序都会//包含它。 usingnamespacestd;//把std名字空间打开,程序可以正确识别std中的名字了,//如cout,endl等(开盖子语句)。 intmain()//主函数,执行入口,在最新标准中,它必须返回int //类型数据 {//函数的内容必须放在{}括号中 cout<<"HelloWord! "< }//函数结束 还可以看到,程序的语句必须用分号结束 在Dev-cpp中,执行后屏幕一闪,就回到编辑界面,怎样让程序等一会,让我们能看清执行结果。 有两种方法: intmain() { cout<<"HelloWord! "< getchar(); } 这种方法调用函数getchar(),它等待从命令行得到一个字符,回车结束。 所以回车后回到编辑界面。 或: intmain() { cout<<"HelloWord! "< system(“pause”); } 这种方法调用Windows中的cmd命令“pause”,按任意键回到编辑界面。 练习: (1)在Dev-cpp中编写代码,让它说一些你想说的话。 注意,在它可以说中国话,只要把它放到英文的引号中就行。 (2)编程序显示一首唐诗 (3)编程,用字符*组成一个3列5行的平行四边形 1.3.2能说会算 放在引号中的内容会原样输出。 如果不放在引号中呢? 比如编程计算123×321. #include usingnamespacestd; intmain() { cout<<321*123< getchar(); } 可以看到,对于没有放到引号中的类型,C++会把这些内容作为表达式,计算并输出这个表达式的值。 练习: (1)计算半径为12的球的体积 (2)一元二次方程的系数分别为1,5,3,求这个方程的根。 C++中的常用算术运算符: 运算 C++中的运算符 + + - - × * ÷ / 求余数 % 1.3.3变量 如果在HelloWord程序中,去掉引号,会发生什么。 试一试。 对了,它把Hello看成了一个变量,并报告说Hello这个变量没有定义。 C++是一种强类型语言,要求所有的变量都要先定义后使用。 定义变量的方法为: 类型名变量名 如: inta;//定义一个变量,变量名为a,它的类型为整型 doublec,d;//定义两个变量,变量名为c和d,它们的类型都为double intb=12;//定义一个变量,变量名为b,类型为整型,同时给变量b赋值,让变量b的值为 //12. 要改变一个变量的值,可以使用赋值号“=”,它的作用是: 计算出等号右边的表达式的值,然后把这个结果赋值给等号右边的变量。 如执行以下语句: b=-1; 可以让变量b的值为-1 C++常用基本数据类型 类型 说明 长度(字节) 表示范围 备注 char 字符型 1 -128~127 unsignedchar 无符号字符 1 0~255 int 整型 4 约±21亿 unsignedint 无符号整型 4 0到约42亿 double 双精度型 8 约±10308 15位有效位 bool 布尔型 1 true和false 练习: (1)计算半径为12的球的体积,把球的半径保存在变量r中,把球的体积放到变量v中。 (2)一元二次方程的系数分别为1,5,3,求这个方程的根。 把系数分别保存在变量a,b,c中。 判别式结果保存在d中,根分别保存在x1和x2中。 (3)在第一题中,如果忘记给变量r赋值,会得到什么结果。 为什么? (4)在第一题中,如果把变量v的类型设置成了int,会得到什么结果,为什么? (5)编写程序,输入三角形的三边,求三角形的面积。 公式为: area=sqrt(s(s-a)(s-b)(s-c)) 其中s为半周长s=(a+b+c)/2 (6)运行如下的程序,会得到什么结果,想一想,为什么? intmain() { inta=10000; intb=a*a*a; cout< } 1.3.4赋值语句 赋值,顾名思义,就是把一个值赋予某个量。 可以这理解: 变量相当于装东西的容器,赋值的过程就是把东西放进容器的过程。 赋值语句格式如下: 变量=表达式; 写赋值语句有以下几点要注意: 1、赋值号“=” 赋值号是一个运算符。 表示“把等号右边的表达式的值赋值给等号右边的变量”。 它和数学中的符号一样,但含义却完全不一样。 比如,它显然没有交换律: a=b不能写成b=a a=b+c如果写成b+c=a还是一个语法错误。 2、赋值号两边的数据类型必须相同或相容 C++中的量不管是变量还是常量都有一个属性称为“数据类型”。 数据类型相同的或相容的才可以相互赋值。 怎么来理解这句话呢? 我们知识变量就是内存中指定的一些存储单元,可以把它想象成具有一定大小的盒子,它们能存储某些类型的数据。 如果给的数据刚好能放到盒子里,当然没有问题。 但如果你给的数据占用的空间超过了盒子的大小,就会出问题了。 对于数据类型相容的,可以这样理解。 如果我们给的数据占用的空间小于盒子的空间,一般也可以勉强用,这就属于“相容”的情形,一般不会出错。 但如果反过来,则盒子会装不下,会发生“溢出”,这就不行了,会出错。 因些,我们在写赋值语句时,要注意两边的类型是否匹配。 赋值语句的一般写法为: a=3 x=x+2 x=y/z 当一个变量既出现在表达式的左边又出现在右边时,可以缩写。 如上面的表达式可写为: x+=2 x/=z 对于x=x+1或x=x-1的表达式来说,C/C++提供了更加简洁的写法, x++ x-- 练习: 1、把一个整数的各位数字倒序输出。 1.3.5做“通用”程序 在前面的学习中,我们只能算程序时就确定的数据。 但常常有些数据在编程时是不知道具体值的。 比如收银台程序就不能假定用户只能买1件201元的衣服。 在程序运行时,临时输入数据,可以用cin。 比如计算球的体积的程序: intmain() { intr,v; cin>>r; v=3.14*4/3*r*r*r; cout< system("pause"); } 练习: 1.输入两个数,放到变量a,b中,然后交换变量a,b的值,并输出 2.做一个自己的程序,当程序运行时输入数据,完成某个计算任务。 1.4文件操作 1.4.1建立文件流 举例: 编程计算两个数的和、差、积、商。 输入: 从文本文件jisuan.in读入数据。 文件格式为: 只有两个数,中间用空格分隔 如: 52 输出: 输出到文件jisuan.out中,格式为: 每行一个数,分别为和、差、积、商的结果。 如: 7 3 10 2.5 参考代码: #include #include usingnamespacestd; intmain() { inta,b; ifstreaminf("jisuan.in");//设置输入文件流inf并初始化 ofstreamoutf("jisuan.out");////设置输出文件流outf并初始化 inf>>a>>b; outf< outf< outf< outf< } 1.4.2用文件流替换标准输入输出流 同上面的问题,参考代码: #include #include usingnamespacestd; intmain() { inta,b; freopen("jisuan.in","rt",stdin);//把文件流重定向到标准输入流cin freopen("jisuan.out","wt",stdout);//把文件流重定向到标准输出流cout cin>>a>>b; cout< cout< cout<
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 完整 word C+ 语言 第一