C++全册配套精品完整课件2(共554页).ppt

上传人(卖家):罗嗣辉 文档编号:1817339 上传时间:2021-10-24 格式:PPT 页数:554 大小:2.94MB
下载 相关 举报
C++全册配套精品完整课件2(共554页).ppt_第1页
第1页 / 共554页
C++全册配套精品完整课件2(共554页).ppt_第2页
第2页 / 共554页
C++全册配套精品完整课件2(共554页).ppt_第3页
第3页 / 共554页
C++全册配套精品完整课件2(共554页).ppt_第4页
第4页 / 共554页
C++全册配套精品完整课件2(共554页).ppt_第5页
第5页 / 共554页
点击查看更多>>
资源描述

1、C+全册配套精品完整课件全册配套精品完整课件 (共共554页)页) 第一章 C+语言概述 3 本章主要内容 l 理解和领会结构化程序设计方法与面向对象程序设计方 法的各自特点、区别和相互联系。 l 理解和掌握面向对象的程序设计方法中的有关概念,如 类、对象、封装、继承、消息和多态性等。 l 熟练掌握利用VC+ 6.0生成简单应用程序的步骤。 l 掌握C+程序的基本组成和框架结构,注意它与C程序 间的区别和联系。 l 理解和掌握名空间机制以及C+的输入输出过程。 4 1.1 从面向过程到面向对象的程序设计 l1.1.1 传统的结构化程序设计方法 1使用传统的结构化程序设计方法设计程序 步骤1:根

2、据实际问题的要求和对其进行分析, 找出解决问题的方法和步骤(即设计算法) 。 5 步骤2:为了在计算机上具体实现出算法, 需要为该种算法选择或构造适当的数据结 构,通过对数据的操纵过程体现算法的思 想。 步骤3:利用SP方法设计程序的结构为: 数据声明 数据处理 结果输出 自顶向下自顶向下 分而治之分而治之 6 l【例1-1】最简单的C+程序 hello world. l【例1-2】一个简单的面向过程的C+程序。 7 2SP方法的特点 l 优点: (1)力求算法描述准确。 (2)对每一子过程模块容易进行程序正确性证明。 l 缺点: (1)本质上是面向“过程”的,而“过程”和“操作” 又是不稳定

3、和多变的,因此不能直接反映人类求解问 题的思路。 (2)程序代码可重用性差。 (3)维护程序的一致性困难。 数数 据据程程 序序分离分离 8 l1.1.2 面向对象的程序设计方法 1面向对象的有关概念 面向对象程序设计(Object-Oriented Programming OOP)方法强调以问题域 (现实世界)中的事物为中心来思考和认识 问题,并按照事物的本质特征将其抽象为对 象,以作为构成软件系统的基础。 9 l【例1-3】是一个学生信息管理的实例,下 面结合它来理解面向对象程序设计的一些 基本概念: (1)对象(Object):对象的属性(Attribute) 描述了对象的状态和特征,对

4、象的方法 (Method)说明了对象的行为和功能 。 (2)类(Class) :具有相似属性和行为的一组 对象。 10 (3)封装(Encapsulation) :具有两方面含义。 l一方面是指将对象的属性和方法形成一个不可分割的整 体; l另一方面是指“数据隐藏”,即对象只应保留有限的对 外接口(即和外界联系的方法),并尽可能隐藏对象内 部的具体细节。 (4)继承(Inheritance) :面向对象的程序设计 中,允许在已有类基础上通过增加新特征而派生出 新的类,称为继承。 11 (5)消息(Message) :对象之间也是相互联 系,当一个对象向对方发出一个服务请求时,收 到请求的对象会

5、响应这个请求并完成指定的服务。 这种向对象发出的服务请求就称为消息。 (6)多态性(Polymorphism) :当程序中的其 他部分发出同样的消息时,按照接收消息对象的 不同能够自动执行类中相应的方法。 12 2. 面向对象的程序设计方法(OOP方法) l 在OOP中,将“对象”作为系统中最基本的运 行实体,整个程序即由各种不同类型的对象组 成; l 各对象既是一个独立的实体,又可通过消息相 互作用,对象中的方法决定要向哪个对象发消 息、发什么消息以及收到消息时如何进行处理 等。 l 一个对象的内部结构如下: 方法 数据 消息消息 消息消息 13 l3OOP方法的特点 (1)OOP方法以“对

6、象”或“数据”为中心。 (2)引入了“类”(Class)的概念。 (3)OOP方法的模块性与继承性保证了新的应用 程序设计在原有对象的数据类型和功能的基础上 通过重用、扩展和细化来进行。 14 1.1.3 OOP方法与SP方法的比较 (1)SP方法以过程为中心构造应用程序,数据和处理数 据的过程代码是分离的、相互独立的实体,设计出的程 序可重用代码少,且当代码量增加时维护数据和代码的 一致性困难。 (2)OOP方法中,过程和数据被结合在一起形成了被称为 对象的实体。 对象所具有的封装性和继承性使得代码重用成为可能, 并大大减少了程序出错的可能性。 (3)OOP方法吸收了结构化程序设计方法的优点

7、,同时引 入了新概念、新机制并建立了比传统方法更高层次的抽 象。 15 1.2 C+语言的产生 lC+语言是在C语言的基础上为支持面向对 象程序设计而研制的一种编程语言。 l1980年,贝尔实验室开始对C进行改进和扩 充。经过不断完善,成为目前的C+。 lC+包括了C的全部特征和优点,同时又添 加了对面向对象编程(OOP)的完全支持。 16 1.3 C+语言的特点 (1)C中原有的规则和语句在C+中仍可继续使 用,但C+又增添了很多新风格。 (2)C+的程序由一到若干个函数构成,但其中 必须有且仅有一个名称为main的函数存在。 (3)C+的函数是由两部分构成的,即函数的说 明部分和函数体。

8、(4)C+对程序中的名称的大小写是“敏感”的 。 17 (5)可以用“/*/”或“/”(单行注释)对 程序中的内容进行注释。 (6)使用功能更强大、更方便的cout对象和cin对 象进行输出输入数据。 (7)使用cout和cin进行数据的输出和输入时,需 要在程序的开头嵌入“iostream.h”文件。 (8)一个C+的源程序文件在存盘时,要以.CPP 为文件名后缀,而不是.C。 18 1.4 C+程序开发过程 l1.4.1 Visual C+ 6.0集成开发环境 Visual C+ 6.0 是Microsoft公司在1998年推出的 一个功能强大的可视化应用程序开发工具 。 1主窗口 19

9、l 2项目与项目工作区 所谓项目就是文件的集合,它包括了资源文件、头文件、 源代码文件、程序结构消息文件和系统参数设置文件。 要编写一个应用程序,必须创建一个项目,项目文件的扩 展名为.dsp。 项目工作区文件(.dsw)含有工作区的定义和项目中所 包含文件的所有信息。 根据项目工作区文件,在工作区窗口中便可以打开相应的 文件进行编辑,大大方便了程序员多项目的管理。 l 3编写C+控制台应用程序步骤 20 1.5 C+程序的结构与基本组成 l1.5.1 一个简单的C+程序 1声明区 (1)包含头文件:#include ; (2)宏定义:如#define PI 3.1415926; (3)类定义

10、:如class name; (4)结构体定义:如struct record; 21 (5)函数声明:如void print(); (6)全局变量声明:如float H=2.58; (7)条件编译:如#ifdef; (8)名空间定义:如namespace N。 22 l2主程序区 (1)局部变量的声明:如int i=1; (2)函数调用:如y=sin(x); (3)一般运算:如a=b+c+d/3; (4)结构控制:如if(ab) c=a; (5)对象与结构的处理; (6)文件的处理等。 23 l3函数定义区 程序中除了main( )函数之外,还可以包含其他的 函数,每个函数都有一个不同的函数名称

11、,以供 主程序或其他函数调用。 l4程序举例 【例1-2】 24 l1.5.2 使用名空间 为了解决变量和函数等的作用范围,C+语言中 引入了名空间的概念,并增加了关键字 namespace和using。 通过名空间,可以在同一个文件中使用相同的变 量名或函数名,使得编制程序的逻辑性增强了。 25 l一个名称必须在使用的域中明确声称其使 用的“空间名”,才能在域中默认地使用 该名称。 如【例1-1】中: using namespace std; l名空间的定义通过下列形式: namespace name /名称声明或定义 l【例1-4】一个利用名空间的程序。 26 l 在使用名空间的时候,注意

12、以下几点: (1)名空间定义了一组变量和函数,它们具有相同的作用范围。对于不 同的名空间,可以定义相同的变量名或函数名,在使用的时候,只要在 变量名或函数名前区分开不同的名空间就可以了。 (2)标准C+系统默认有一个全局名空间,它包含了所有的外部变量, 这个名空间称为std。若将std名空间引入当前名空间,就可以直接访问定 义的函数名和变量名,若没有引入std名空间,也可以利用std:显式地限 定每个函数名或变量名。 (3)using和namespace是C+中的保留字。 (4)可以给名空间取一个别名。一般别名是一个比较短的名字,来简化 编程。 (5)名空间可以被嵌套定义,使用时要逐级对成员用

13、名空间来说明。 (6)在原有定义好的名空间的基础上,随时可以往里增加成员。 27 l1.5.3 C+输入输出简介 cin和运算符“”的使用语法是 : cin var1 var2. varn; cout和运算符“”的使用语法是: cout表达式1或控制符1表达式2或控制符2 表达式n或控制符n 28 小结 l 面向过程和面向对象的程序设计方法,以及面向 对象的程序设计方法的相关概念,如类、对象、 封装、继承、消息和多态性等。 l C+语言的产生、特点和开发的过程,以及C+ 程序的结构和基本组成。 l Visual C+集成开发环境的组成、使用、开发控 制台应用程序的步骤和方法,利用Visual

14、C+集 成开发环境编写、调试和运行C+程序。 l 本章内容是C+程序开发的基础,在进行实际的 开发工作之前,应该很好地掌握这些内容。 第二章 基本数据类型、运算符与表达式 30 本章主要内容 (1)熟悉和掌握C+中数据类型的分类及使 用,注意它与C数据类型间的区别。 (2)熟练掌握C+中各种运算符的使用。 (3)熟练掌握C+中表达式的描述和计算。 (4)理解和掌握C+中数据的输入和输出。 31 2.1 数据类型 lC+提供了十分丰富的预定义数据类型, 称为基本数据类型。 l除了基本数据类型外,C+还提供了构造 数据类型,包括数组、结构体、共用体 (联合体)、枚举和类等。 lC+可以使用的数据类

15、型如图所示: 32 2.1.1 基本数据类型 lC+提供的5种基本数据类型各自所占的内 存空间是不同的,因此所表示的数据的范围 大小也不同。 l在5种基本数据类型中: 字符型用于处理ASCII码字符 整型用于处理整型数据 浮点型用于处理带小数的实数 布尔型用于表示的逻辑的true和false 无值型主要用于处理函数和指针 33 2.1.2 类型修饰符 C+的类型修饰符包括: signed 有符号型 unsigned无符号型 short短型 long长型 34 l在基本数据类型(除void类型外)前加 上类型修饰符后,C+的基本数据类型 如表2.2所示: 35 l说明: (1)表中带 的部分表示

16、是可以省略的,如short int可以写为short int或简写为short,二者的含 义是相同的。 (2)4种修饰符都可以用来修饰整型和字符型。用 signed修饰的类型的值可以为正数或负数,用 unsigned修饰的类型的值只能为正数。 (3)用short修饰的类型的值一定不大于对应的整 数,用long修饰的类型的值一定不小于对应的整 数。 36 2.2 常量和变量 l数据可分为常量和变量两大类。 常量(Constant): l是指在程序的执行过程中其值不会发生改变的数据。 变量(Variable): l是指在程序执行过程中其值可以被改变的数据。 37 2.2.1 常量 l常量按照不同的

17、数据类型可以分为:字符 型常量、整型常量、浮点型常量以及字符 串常量等。 l程序是根据程序中常量的书写格式来区分 它是属于哪种类型的常量。 38 1整型常量 l 由于整数类型可分为int,short int等类别,因此 整型常量也可分为以上类别。 注意:在程序中书写整型常量时没有小数部分。 在程序中,用户根据需要分别可以用十进制、八 进制和十六进制的形式书写整型常量。 (1)十进制格式:由数字)十进制格式:由数字0至至9和正、负号组成,书写时直接和正、负号组成,书写时直接 写出数字,如写出数字,如123,516等。若为等。若为long int型的常量,需在常型的常量,需在常 量后加一个字母量后

18、加一个字母l或或L,例如,例如123L。 39 (2)八进制格式:以0开头的数字(0至7)序列, 如011,010007,0177777等。如011表示八进 制数11,即(11)8,它相当于十进制数9。 (3)十六进制格式:以)十六进制格式:以0 x或或0X开头的数字(数字开头的数字(数字0至至9、字母、字母 a至至f)序列,如)序列,如0 x11,0 x78AC,0 xFFFF等。如等。如0 x11表示十表示十 六进制数六进制数11,即,即(11)16,它相当于十进制数,它相当于十进制数17。 40 2浮点型常量 l浮点型常量可以用十进制小数形式或指数形 式表示。 注意:在程序中无论采用十进

19、制小数形式还是指 数形式,在内存中都是以指数形式存储的。 41 (1)十进制小数形式:一般由整数部分和 小数部分组成,也可省略其一,但不能二 者皆省。 例如: 0.345也可表示为.345,45.0也可表示为45.; 如果在实数的数字后面加上字母F或f,表示此 数为单精度浮点数; 如果加上字母L或l,表示此数为长双精度数。 42 (2)指数形式:也就是通常所讲的科学记数 法的描述形式。 数符数符 数字部分数字部分 指数部分指数部分 其中,数字部分和指数部分缺一不可,指数部分以其中,数字部分和指数部分缺一不可,指数部分以E 或或e开始,开始,E或或e表示后面的数是以表示后面的数是以10为底的幂为

20、底的幂. 如如: 10-4可表示为可表示为1e-4,但不能写成,但不能写成e-4, 如如: -0.00726可以表示为可以表示为-0.726e-2,-7.26e-3, -72.6e-4等形式,它们所起的作用是相同的。等形式,它们所起的作用是相同的。 43 3字符型常量 l 字符型常量分为普通的字符常量和转义字符常 量。 (1)普通的字符常量 用一对单引号括起来的一个字符就是字符型 常量,如s,Y都是合法的字符常量。 44 注意: 单引号只是字符与其他部分的分隔符,不是字符的一部分,单引号只是字符与其他部分的分隔符,不是字符的一部分, 并且不能用双引号代替单引号,如并且不能用双引号代替单引号,如

21、 YY不代表字符常量。不代表字符常量。 字符常量只能包括一个字符,如字符常量只能包括一个字符,如 abab 是不合法的。是不合法的。 在单引号中的字符不能是单引号或反斜杠,在单引号中的字符不能是单引号或反斜杠,和和都是都是 非法的字符常量非法的字符常量 字符常量区分大小写,如字符常量区分大小写,如YY和和yy表示两个不同的字符常量。表示两个不同的字符常量。 45 (2)转义字符常量 l 在C+中,有一些字符用于控制输出或编译系 统本身保留,无法作为字符常量来表示。 l C+规定,采用反斜杠后跟一个字母来代表一 个控制字符,反斜杠后的字符不再作原有的字 符使用,而具有新的含义。 l 转义字符在屏

22、幕上是不能显示的。 C+中常用的转义字符如表2.3所示。 46 4字符串常量 l 用一对双引号括起来的一个或多个字符的序列称为字符串常 量或字符串。 l 字符串以双引号为定界符,双引号不作为字符串的一部分, 可以将转移字符加入字符串,转义字符占用一个字节。 如: Hello A Good Morning! I sayn 都是合法的字符串常量。 47 l字符串中的字符的个数称为该字符串的 长度。 l字符串常量要用字符数组来存放。 l在存储时,系统自动在字符串的末尾加 以字符串结束标志,即转义字符 0 。 如 Hello 在内存中占用6个字节, I sayn 占用7个字节。 48 l字符串可以写在

23、多行上,必须用续行符反 斜线 表示下一行字符是这一行字符的 延续。 例如: coutThis is a book.; 该语句输出结果为: This is a book. 49 5符号常量 l常量也可用一个标识符来表示,称为符 号常量。 l符号常量的一般定义格式如下: #define 符号名 常量值 例如: #define MAX 30 /不是语句,末尾不加分号 main() . 此处,#define 语句定义MAX为30,凡在程序 中出现MAX的地方都代表30,它可与常量进 行运算。 50 l使用符号常量可以使得符号的含义更加清楚, 在需要改变常量值时,只需改变第一行中的 常量值即可,程序中所

24、有的MAX的值都会相 应地改变。 注意: (1)它不同于变量,在其作用域内其值不能改变和 赋值。 上例中如再用 MAX=40; 这一语句进行赋值则是错误的。 (2)符号常量名一般用大写,而变量名用小写,以 示区别。 51 程序中常量的表示方法 在程序中的常量有以下3种表示方法。 (1)在程序中直接写入常量 例如: -200,3.4E-10, A,1,0 x120,045,5.35,1000l int i; char s; float f; i=20; s=a; f=2.0; 52 (2)利用#define定义宏常量 #define 宏名 常数 例如: #define PI 3.14 s=2*P

25、I*r; 53 (3)利用const定义正规常数 const 数据类型标识符 常数名=常量值; l说明: const必须放在被修饰类型符和类型名的前面。 数据类型是一个可选项,用来指定常数值的数 据类型,如果省略了该数据类型,那么,C+ 编译程序认为它是int类型。 54 2.2.2 变量变量 1变量的概念 l 变量是用于保存程序运算过程中所需要的原始数据、 中间运算结果和最终结果的其值可以改变的量。 2定义变量 l 每一变量都要先定义、后使用; l 定义变量3种格式: 修饰符 数据类型标识符 变量名列表; 修饰符 数据类型标识符 变量名=初始化值; 修饰符 数据类型标识符 变量名1=初始值1

26、,变量 名2=初始值2,; 55 说明: (1)此处的类型标识符表示要定义的变量所属 的数据类型,它可以是前面介绍的的数据类 型标识符中的一种。例如int,double,bool等。 (2)变量名是每个变量的名称,由用户自己命 名,要遵循命名规则。(P27) (3)定义变量时,可以在类型前面加上一些修 饰符来表示这些变量的使用方法。 l C+中常用的变量定义修饰符。 56 如:如: char a,b;/定义字符型变量定义字符型变量a,b extern int c;/c在其它函数中已经定义,这里只在其它函数中已经定义,这里只 是用到该变量,对该变量进行声明是用到该变量,对该变量进行声明 stat

27、ic int i=1000; /定义静态整型变量定义静态整型变量i,i的初始值为的初始值为1000 float a=2,b=3,c; /定义变量定义变量 a,b,c,且,且a、b的初始值分别为的初始值分别为2,3 57 3变量的初始化 l在定义变量的同时给变量赋一个初值。 例如: int a=3,b=3*(2+9); 58 l 在对多个变量赋于同一初值时,必须分别指定。 int a=3,b=3,c=3; l 不能写成: int a=b=c=3; 59 4定义变量的位置 变量的定义一般可有以下3种位置。 (1)在函数体内部 在函数体内部定义的变量称为局部变量。 该变量只在进入定义它的函数体时起作

28、用, 离开该函数体后就消失(被释放),即不再 起作用。 不同函数体内部可以定义相同名称的变量, 而互不干扰。 60 如: void func1(void) int y; y=2; void func2(void) int y; y=-100; 61 (2)形式参数 l 当定义一个有参函数时,函数名后面括号内的变 量统称为形式参数。 int is_in(char *a, char b) while(*a) if (*a= =b) return 1; else a+; return 0; 62 (3)全局变量 l在所有函数体的外部定义的变量,其作 用范围是整个程序,并在整个程序运行 期间有效。 6

29、3 2.3 运算符和表达式 2.3.1 算术运算符和算术表达式 l 算术运算符:对数据进行算术运算的运算符。 64 l算术表达式:用算术运算符、括号将常量、 变量和函数等连接形成的一个有意义的式 子。 l如: (1+x)/(3*x) (2*x-3)*x+2)*x)-5 3.14*sqrt(r) b*b-4.0*a*c 65 l注意: (1)表达式中的括号不管有多少层,一律使用圆 括号。 (2)在将一个数学上的运算式写成对应的C+的 表达式时,要注意进行必要的转换。 乘号不能省略。 数学运算函数要用数学运算库函数来代替。 两个整数相除的结果为整数。 %两侧只能为整型数据。 66 1自增和自减运算

30、符 自增(+)和自减(-)的作用是使变量的值 增1或减1。 l运算符(+)和(-)既可放在变量的前面,也可 放在变量的后面,但作用的效果是不同的。 【例2-2】 自增和自减运算符的使用。 67 2数据类型转换 l两种类型转换方式,即隐式类型转换和显 式类型转换。 (1)隐式类型转换 不同类型的数据进行运算时,编译器会自动将 它们转换为相同类型后再进行运算; 赋值时将所赋值转换成被赋值变量类型; 这种由编译器自动完成的类型转换称为隐式类 型转换。 隐式类型转换是按照从低到高的顺序进行的。 68 低高 69 例如: e=5*b+3.14-3L/2.0的顺算顺序如下: 进行5*b的运算,先将b转换成

31、整数98,运算结 果为490。 进行490+3.14的运算,将490和3.14转换成 double型,结果为493.14。 计算3L/2.0,首先转换为double型,结果为1.5。 进行493.14-1.5的运算,结果为double型的 491.64。 70 (2)显式类型转换 l显式类型转换,也称为强制类型转换, 指编程人员利用类型转换运算符显式地 将某一数据从一种数据类型转换为另一 种数据类型。 类型名 (表达式) 或 (类型名)表达式 l【例2-3】显式类型转换。 71 2.3.2 赋值运算符和赋值表达式赋值运算符和赋值表达式 赋值运算符的用法格式为: 变量名 赋值运算符 常量、变量或

32、表达式 lC+中的赋值运算符。 72 注意区分赋值运算符“=”与数学上的“等 号” int x,y; x=10; x=x+20; y=x+; y-=x+5; x%=y+10; 73 2.3.3 sizeof运算符运算符 lsizeof运算符的功能是求某一数据类型或 某一变量在内存中所占空间的字节数。 sizeof(变量名或数据类型) 或 sizeof 变量名或数据类型 l【例2-4】 sizeof运算符的使用。 74 2.3.4 关系运算符和关系表达式 l关系运算符:对两个量之间进行比较,判 断比较结果的运算符。 lC+的关系运算符。 75 l关系表达式:由关系运算符将两个表达式 连接形成的运

33、算式子。 l一个关系表达式的值是一个逻辑值。 当关系表达式成立时,其值为真(1); 当关系表达式不成立时,其值为假(0)。 76 l假设a=1,b=20,c=3,则: ab b= =c (a+b)!=c 77 2.3.5 逻辑运算符和逻辑表达式 l逻辑运算符:对两个逻辑量间进行运算的 运算符。 78 l 逻辑表达式:由逻辑运算符将两个表达式连接形成 的式子。 l 各种逻辑运算的“真值表” 。 79 注意: (1)C+中,在给出一个逻辑表达式的最终计算结 果值时,用1表示真,用0表示假。但在进行逻辑 运算的过程中,凡是遇到非零值时就当真值参加运 算,遇到0值时就当假值参加运算。 80 (2)在逻

34、辑表达式的求值过程中,并不是所有的逻 辑运算符都被执行,只是在必须执行下一个逻辑运 算符才能求出表达式的值时才执行该运算符。 l a 则表达式i+|i+|i+ (3)对于数学上的表示多个数据间进行比较的表达 式,在C+中要拆写成多个条件,并用逻辑运算符 将其连接形成一个逻辑表达式,而不能直接照搬。 l-9ab?a:b的值为? 82 2.3.7 位运算符 1位运算符及其运算规则 l 位是计算机表示信息的最小单位,一般用0和1 表示。 l 位运算符是指能进行二进制位运算的运算符。 l 位运算符的运算对象必须为整数。 83 位运算的运算规则为: (1)按位与 则表达式a+,b+,a+b的值为? 87

35、 2.3.9 运算符的优先级与结合性 l 当一个表达式中包含多个运算符时,要确定运算 的结果必须首先确定运算的先后顺序,即运算符 的优先级和结合性。 88 2.4 数据的输入与输出 l输入流对象:cin l输出流对象:cout l嵌入相应的头文件“iostream.h” 89 2.4.1 数据的输出cout l 输出流对象cout输出数据语句的一般格式为: cout数据1数据2数据n; l 说明: (1)cout是系统预定义的一个标准输出设备(一般代 表显示器);“变量名1变量名2变量名n; l 说明: (1)cin是系统预定义的一个标准输入设备(一般代 表键盘);“”是输入操作符,用于从ci

36、n输入流 中取得数据,并将取得的数据传送给其后的变量, 从而完成输入数据的功能。 91 (2)cin的功能是:当程序在运行过程中执行到cin时,程 序会暂停执行并等待用户从键盘输入相应数目的数据,用 户输入完数据并回车后,cin从输入流中取得相应的数据 并传送给其后的变量。 (3)“”操作符后除了变量名外不得有其他数字、字符 串或字符,否则系统会报错。 (4)cin后面所跟的变量可为任何数据类型,若变量为整型 数据类型,则在程序运行过程中从键盘输入数据时,可分 别按十进制、八进制或十六进制格式输入该整数。 92 (5)当程序中用cin输入数据时,最好在该语句之前用 cout输出一个需要输入数据

37、的提示信息,以正确引导和 提示用户输入正确的数据。 (6)当一个cin后面同时跟有多个变量时,则用户输入数 据的个数应与变量的个数相同,各数据之间用一个或多 个空格隔开,输入完毕后按回车键;或者,每输入一个 数据按回车键也可。 93 2.5 综合实例 l【例2-10】 运算符和表达式的运用。 94 小结 l 程序的核心任务是对数据进行加工和处理。 l 在C+中,任何数据都是有类型,不同数据类型所占的 存储单元的大小不同,因而表示数的范围大小也不同。 l 根据数据在程序运行过程中是否发生变化将数据分为常 量和变量: 常量的值固定不变且数据类型是由用户在程序中的书写格式来 决定; 变量则必须在程序

38、中进行明确的定义,即定义其名称和类型, 在程序中,任何变量都要遵循先定义后使用的规则。 95 小结 l C+为每种运算符规定了一个运算的优先级和结合特性, 以控制各种运算的顺序,利用圆括号可以改变表达式的运 算顺序。 l 当在表达式中进行运算的数据类型不同时,C+将自动进 行隐式转换。当然,用户也可利用强制类型转换的方法进 行转换。 l C+源程序中数据的输入和输出通常利用输入/输出流对象 cin和cout来完成,要求在程序的开头需要嵌入头文件 iostream.h。 第三章 C+的控制语句 97 本章主要内容 l 理解和领会C+程序的三种基本结构:顺序、选择和循环 结构。 l 熟练掌握两种选

39、择语句:if语句和switch语句。 l 熟练掌握三种循环语句:while循环语句、do-while循环语 句和for循环语句。 l 熟练掌握跳转语句break和继续语句continue。 98 3.1 C+语句概述 l 语句(statement)是程序中最小的可执行单位。 l 一条语句可以完成一种基本操作,若干条语句组 合在一起就能实现某种特定的功能。 l C+中语句可以分为以下4种形式: l 1声明语句 对变量或对象等进行定义的语句称为声明语句 。 它可以放在函数的任何位置。如: double a,b; l 2单一语句 完成一定操作的一条语句称为单一语句。 按照完成的功能,又可分为以下三类

40、: 99 (1)控制语句 l完成一定的控制功能的语句称为控制语句。 lC+中主要的控制语句: 其中,语句的()中为条件,其中,语句的()中为条件,表示内嵌的语句。例如,表示内嵌的语句。例如, for(i=1; i=100; i+) n=n+i; 100 (2)调用语句)调用语句 l一次函数或流对象调用后加一个分号构成一条调用语一次函数或流对象调用后加一个分号构成一条调用语 句。句。如:如: f() ; cout“n=”nb?a:b; 101 l 3空语句 仅由单个分号构成的语句 ,空语句不进行任何操作 。 l 4复合语句 复合语句是用一对花括号“ ”括起来的语句块。 复合语句在语法上等效于一个

41、单一语句,在程序中凡是可 以使用单一语句的地方都可以使用复合语句。 使用复合语句应注意: l(1)花括号必须配对使用。 l(2)花括号外不要加分号。 例如,下面是一个复合语句: n=n+i; i+; coutn=nendl; 102 3.2 C+程序的3种基本结构 l 在程序设计中,语句可以按照结构化程序设计的 思想构成3种基本结构,它们分别是顺序结构、分 支结构和循环结构,如图3-1所示。 顺序结构 分支结构 循环结构 语句A 语句B 条件P 语句A 语句B 真 假 条件P 语句A 103 l 1顺序结构 在顺序结构中,程序是按照语句的书写顺序依次执行,语 句在前的先执行,语句在后的后执行

42、。 【例3-1】计算直角三角形斜边的长度。 l 2分支结构 在分支结构中,程序根据判断条件是否成立选择执行不同 的程序段。也就是说,这种程序结构能有选择地执行程序 中的不同程序段。因此,这种结构也可称为选择结构。 C+能够实现分支结构的语句有if语句、ifelse语句、 ifelse if语句和switch语句。 104 l3循环结构 在循环结构中,程序根据判断条件是否成立决定 是否重复执行某个程序段。 这样可以避免重复书写需要多次执行的语句,从 而减小了程序的长度,提高了重复处理的能力。 C+中可以实现循环结构的语句有while循环语句、 do-while循环语句和for循环语句。 105

43、3.3 if 语句 lif语句是最常用的一种分支语句,也称为条 件语句。 l它可以根据所给定条件的满足与否选择执 行不同的程序段。 if语句有3种形式:单分支if 语句、双分支if语句 和多分支if语句。 106 l3.3.1 单分支if 语句 最简单的if语句形式: if(表达式) 语句 先计算关键字if后面的表达式的值。若为真,则 执行if后的“语句”部分,否则跳过该“语句” 部分。 不管是否执行“语句”部分,最后都要跳到“语 句”部分的后面继续执行程序的其他部分。 107 注意: (1)表达式外的括号不能省略。 (2)在if(表达式)后不能加分号“;”。 (3)关键字if的后面的表达式可

44、以是任意的表达式, 只要表达式的值为非0,C+就将表达式的值当真值 处理,否则当假值处理。 (4)if语句的内嵌语句可以是单一语句,也可以是 多条语句。 (5)书写程序时,尽量使if语句的内嵌语句比if语句 缩进,这是良好的编程书写风格。如: int x=1,y=2; if(x=0) y+; coutxscore80 为良,80score70为中等,70score60 为及格,score60为不及格。 112 l3.3.4 if语句的嵌套 前面介绍的三种if语句的语句部分中又可包含另 外一个或多个if语句,这种情况称为if语句的嵌套。 一般形式如下: 113 l使用if语句的嵌套时应注意以下几

45、个问题: (1)内嵌if语句必须完全包含在外层的if子句或 else子句中,即外层if语句和内层if语句间的关系 是包含与被包含的关系,不能出现交叉的情况。 (2)通常情况下,else子句总是与上面离它最近 的、尚未配对的if语句相匹配。 (3)如果if与else的数目不一样,为实现程序设计 者的意图,可以加大括号来确定if与else的配对 关系。 114 l【例3-4】设有以下分段函数: 编写一程序,输入自变量x的值,输出函数y的值。 (1)利用多分支if语句的方法编写程序。 (2)利用if语句嵌套的方法编写程序。 115 3.4 switch语句 lswitch语句是多分支语句。 l虽然多

46、分支if语句也可以实现多分支结构, 但当需要判断的条件较多时,程序显得过 于冗长,而且可读性差。 l在C+中,使用switch语句可以更方便、更 简洁地实现多分支结构。 116 lswitch语句:语句: switch(表达式表达式) case 常量表达式常量表达式1:语句:语句1; case 常量表达式常量表达式2:语句:语句2; case 常量表达式常量表达式n:语句:语句n; default:语句:语句n+1 117 lswitch语句的执行过程是: 计算switch语句后面的表达式的值,当表达式的 值与某一个case后面的常量的值相等时,就执行 此case后面的语句,若所有的case中

47、的常量的值 都没有与表达式的值匹配的,就执行default后面 的语句,当没有default语句时,则什么都不执行。 (2)case语句与default并不会改变控制流程。 执行完一个case后面的语句后,程序执行的流程 转移到下一个case继续执行。“case 常数”只 是起语句标号作用,并不是在该处进行条件判断。 在执行switch语句时,根据switch后面表达式的 值找到匹配的入口标号,就从此标号开始执行下 去,不再进行判断。 118 l 说明: (1)switch后括号中的表达式可以是任意一个合法的 C+表达式,但其值只能是字符型或整型。 (2)常量表达式1常量表达式n必须互不相同,

48、而且 不能是变量或表达式,每一常数后面要有冒号“:”, 常量表达式相同时会产生编译错误。例如,下面的语 句将会产生编译错误。 case 69:coutIt is 69endl; case E:coutIt is Escore80为 良,80score70为中等,70score60为 及格,score60为不及格(用switch语句实 现)。 l分析:程序可以利用switch语句对用户输入 的一个百分制成绩值进行分情况处理,对 于每一种情况输出对应的成绩等级,显然, 对于每一种情况输出一个成绩等级后应跳 出switch语句,因此,在case子句中应使用 break语句完成跳出的功能。 120 3

49、.5 循环语句 lC+提供了3种循环结构: while循环语句 do-while循环语句 for循环语句 3.5.1 while循环语句 while(表达式) 循环体语句 121 l该语句的执行过程是: 首先判断while后面的表达式的值,若表达式的 值为真,则执行while的内嵌语句(即循环体), 执行完毕后,程序自动跳回到while再次判断 while后面的表达式的值,若为真,则再次执行循 环体,然后重复以上过程,直到while后面的表达 式的值为假时,才退出循环,接着执行循环体语 句后面的其他程序语句。 while循环语句的流程图如图3-3所示。 表达式 语句 假 真 122 l注意:

50、(1)循环体语句如果包含多条语句,应该用大括 号括起来,表示每执行一次循环,则大括号内的 所有语句都要被执行。 (2)循环体中应包含使循环趋向于结束的语句, 若没有,则循环会一直执行下去。 123 【例3-7】将输入的整数反向显示。 l 分析: 反向显示一个整数时,首先显示的是个位数,可以通过将 该数对10取余得到。 然后将数字除以10,得到的新的数字保留了除个位数在 内的其他位数,再将它对10取余,即可得到输入整数的 十位数; 依次执行下去,就可以得到输入整数的各个位数。 124 l3.5.2 do-while 循环语句 do 循环体语句 while(表达式) ; 125 l该语句的执行过程

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

当前位置:首页 > 大学
版权提示 | 免责声明

1,本文(C++全册配套精品完整课件2(共554页).ppt)为本站会员(罗嗣辉)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|