完整word版C++语言第一课.docx

上传人:b****4 文档编号:11685385 上传时间:2023-03-30 格式:DOCX 页数:34 大小:30.90KB
下载 相关 举报
完整word版C++语言第一课.docx_第1页
第1页 / 共34页
完整word版C++语言第一课.docx_第2页
第2页 / 共34页
完整word版C++语言第一课.docx_第3页
第3页 / 共34页
完整word版C++语言第一课.docx_第4页
第4页 / 共34页
完整word版C++语言第一课.docx_第5页
第5页 / 共34页
点击查看更多>>
下载资源
资源描述

完整word版C++语言第一课.docx

《完整word版C++语言第一课.docx》由会员分享,可在线阅读,更多相关《完整word版C++语言第一课.docx(34页珍藏版)》请在冰豆网上搜索。

完整word版C++语言第一课.docx

完整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++Builder

X2.0很值得C++爱好者期待。

唯一令人难堪之处是作为一个C++的开发工具,其IDE是用

Java写的,在配置不够理想的机器上请慎重考虑再安装。

 

DevC++

GCC

候,GCC

是一个很好的编译器。

在Windows上的C++编译器一直和标准有着一段距离的时

就是一个让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;intmain()

 

//包含它。

//把std名字空间打开,程序可以正确识别std中的名字

了,//如cout,endl等(开盖子语句)。

//主函数,执行入口,在最新标准中,它必须返回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中,把球的体积放到变量

(2)一元二次方程的系数分别为1,5,3,求这个方程的根。

把系数分别保存在变量

中。

判别式结果保存在d中,根分别保存在x1和x2中。

v中。

a,b,c

(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");ofstreamoutf("jisuan.out");

//设置输入文件流inf

////设置输出文件流

并初始化

outf并初始化

inf>>a>>b;

outf<

outf<

outf<

outf<

}

 

1.4.2用文件流替换标准输入输出流

 

同上面的问题,参考代码:

#include

#include

usingnamespacestd;

intmain()

{

inta,b;

freopen("jisuan.in","rt",stdin);//把文件流重定向到标准输入流cinfreopen("jisuan.out","wt",stdout);//把文件流重定向到标准输出流coutcin>>a>>b;

cout<

cout<

cout<

cout<

}

练习:

已知物体的运动的初速度和加速度,可以求出物体经过一定时间运行的距离,其公式为:

s=v0t*1/2*vt2

编程求物体的运行距离。

输入文件:

juli.in

格式为:

共有三行数据,每一行由空格分隔的三个数字组成,分别表示初速度,加速度和时间。

输出文件:

juli.out

共三行,每行一个数,表示物体运行的距离。

 

1.5流程控制

 

1.5.1IF语句

 

条件语句用于响应一个条件的两个方面。

例如:

今天如果下雨,我们就在家;否则(不下雨)我们就出去玩。

用C++的IF语句可写成:

if(天下雨)

在家;

else

出去玩;

IF语句的一般格式为:

if(条件)

{

分支一;

}

else

{

分支二;

}

 

“分支一”和“分支二”表示当条件成立时和不成立分别要执行语句。

执行过程为:

如果条件成立(也称条件为真),那么程序执行分支一中的语句,否则(条件为假)程序执行分支二的语句。

图示:

 

注意:

 

1、条件语句的分支如果不只一个语句,需要用花括号括起来,组成一个复合语句。

2、在If语句中,else部分可以省略。

此时的执行逻辑如下:

 

3、在IF语句中还可以嵌套IF语句,一般来说,把IF语句嵌套在else分支中。

此时的写法形如:

 

if(条件1)

{

分支一

}

elseif(条件2)

{

分支二

}

elseif(条件3)

{

分支三

}

else

{

分支四

}

 

例1、输入两个数a,b,输出较大的数。

intvoidmain()

{

inta,b;

cin>>a>>b;

if(a>b)

cout<

 

else

cout<

}

 

条件由关系表达式组成,C++的关系运算符有:

 

==(比较左右值是否相等)

 

>(比较左值是否大于右值)

 

>=(比较左值是否大于或等于右值,也称为不小于)

 

<(比较左值是否小于右值)

 

<=(比较左值是否小于或等于右值,也称为不大于)

 

!

=(比较左右值是否不相等)

 

特别要注意,关系运算符的“等于”,是由两个=组成。

如果写成了一个,就成了赋值语句。

要命的是,许多编译器并不报错,所以一定要小心。

 

关系运算的结果为逻辑值。

 

对于复杂的条件,需要用到逻辑运算符。

逻辑运算的结果为逻辑值。

 

C++的逻辑运算符有三个:

符号

意思

例子

&&

并且(and)

条件1&&条件2

||

或者(or)

条件1||

条件2

非(not)

!

条件

下面列出了&&(与)

操作的所有可能条件及结果:

 

真&&真=真

真&&假=假假&&假=假

 

下面列出了||(或)操作的所有可能条件及结果

 

真||真=真

真||假=真

假||假=假

 

以下则为!

操作:

 

!

真=假

!

假=真

 

练习:

 

1、判断一个数是偶数或奇数。

2、判断一个字母是大写字母,小写字母,还是数字

3、程序运行时,输入三个数,把它们按从小到大的顺序输出。

输入文件threenum.in:

三个数,由空格分隔

输出文件threenum.out:

三个由空格分隔的从小到大的数

 

1.5.2switch语句:

 

多级if...else...显然是为了那些可能需要进行多级判断才能做出选择的情况。

化多级判断,提供了switch语句。

switch语句的格式:

switch(整型或字符型变量)

 

C++为了简

{

case变量可能值1:

分支一;

break;

case变量可能值2:

分支二;

break;

case变量可能值3:

分支三;

break;

...

default:

最后分支;

在switch的语法里,我们要学到4个关键字:

switch、case、break、default。

在switch(变量)这一行里,变量只能是整型或字符型。

程序先读出这个变量的值,然后在各个"case"里查找哪个值和这个变量相等,如果相等,就算条件成立,程序执行相应的

分支,直到碰上break或者switch语句结束。

实例:

模拟网络调查,要求输出不同的选项,供网友选择(通过简单地输入数字),程序根据网友的选择,输出相应不同的结果。

#include

intmain(intargc,char*argv[])

{

intfromWay;

 

cout<<"请通过输入序号,选择您如何来到本网站。

cout<<"1)----通过搜索引擎"<

cout<<"2)----通过朋友介绍"<

cout<<"3)----通过报刊杂志"<

cout<<"4)----通过其它方法"<

cin>>fromWay;

switch(fromWay)

{

 

"<

case1:

cout<<"您是通过搜索引擎来到本网站的。

"<

break;

case2:

cout<<"您是通过朋友介绍来到本网站的。

"<

break;

case3:

cout<<"您是通过报刊杂志来到本网站的。

"<

break;

case4:

cout<<"您是通过其它方法来到本网站的。

"<

break;

default:

cout<<"错误的选择!

请输入1~4的数字做出选择。

 

"<

}

getchar();

return0;

}

首先,intfromWay定义了一个整型变量,准备用来存储用户输入的选择。

程序将根据fromWay值,在下面的各个case中找到匹配的值。

本例中switch

case,值分别是1、2、3、4。

如果输入的是2,所以程序进入下面这个case:

 

带有四个

case2:

cout<<"您是通过朋友介绍来到本网站的。

"<

break;

 

程序打出"您是通过朋友介绍来到本网站的。

switch语句。

"这行内

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1