《c++面向对象程序设计(完整课件).ppt》由会员分享,可在线阅读,更多相关《c++面向对象程序设计(完整课件).ppt(443页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、C+面向对象程序设计面向对象程序设计 教材: C+参考大全 学时:40(理论)+24(实践) 考试:70%(笔试)+30%(平时)第一章第一章 C+编程基础编程基础一、程序语言的发展一、程序语言的发展1、机器语言(用二进制代码表示)、机器语言(用二进制代码表示)2、汇编语言(用符号表示)、汇编语言(用符号表示)3、高级语言(类似自然语言)、高级语言(类似自然语言)第一章第一章 C+编程基础编程基础二、二、C+与与C的联系的联系1、C+是在是在C的基础上发展而来,的基础上发展而来, 是带类的是带类的C语言。语言。2、C语言支持结构化程序设计,语言支持结构化程序设计,C+ 语言支持面向对象程序设计
2、。语言支持面向对象程序设计。3、结构化程序设计的思想:、结构化程序设计的思想: 功能分解功能分解,并逐并逐 步求精。步求精。 面向对象程序设计的本质:面向对象程序设计的本质: 把数据和处理数据的过程把数据和处理数据的过程 看成一个整体看成一个整体对象。对象。第一章第一章 C+编程基础编程基础第一章第一章 C+编程基础编程基础三、三、C+中几个重要概念中几个重要概念1、程序:数据、程序:数据+操作操作2、数据类型:不同的数据组织方式、数据类型:不同的数据组织方式 得到不同的数据类型得到不同的数据类型3、表达式:操作符、表达式:操作符+操作数操作数4、语句控制:数据操作的流程、语句控制:数据操作的
3、流程第一章第一章 C+编程基础编程基础四、开发一个四、开发一个C+程序的四个步骤:程序的四个步骤:1、编辑(产生源文件,扩展名为、编辑(产生源文件,扩展名为CPP)2、编译(产生目标文件,扩展名为、编译(产生目标文件,扩展名为OBJ)3 3、连接(产生执行文件,扩展名为连接(产生执行文件,扩展名为EXE)4、运行、运行第一章第一章 C+编程基础编程基础五、集成开发环境(五、集成开发环境(IDE)1、定义:、定义:集文字处理、编译、连接、项目管理、程集文字处理、编译、连接、项目管理、程序排误等多功能为一体的软件开发工具序排误等多功能为一体的软件开发工具。2、常见的集成开发环境:、常见的集成开发环
4、境: Borland C+,Visual C+第一章第一章 C+编程基础编程基础六、程序风格六、程序风格1、良好的编程风格,不仅有利于、良好的编程风格,不仅有利于 自己对程序的调自己对程序的调 试,而且会大试,而且会大 大增加程序的可复用机会。大增加程序的可复用机会。第一章第一章 C+编程基础编程基础2、注释、注释(1)定义:为增加程序的可读性而在)定义:为增加程序的可读性而在 程序中附加的说明性文字。程序中附加的说明性文字。(2)形式)形式: 以符号以符号/打头,只占一行。打头,只占一行。 C+特有的注释形式。特有的注释形式。 包含在符号包含在符号/与与/之间,可占多行。之间,可占多行。 继
5、承继承C的注释形式。的注释形式。第一章第一章 C+编程基础编程基础六、程序风格六、程序风格3、命名(为常量、变量、函数取名)、命名(为常量、变量、函数取名)(1)名字必须符合标识符的规范。)名字必须符合标识符的规范。(2)标识符:由字母、数字、下划线组成,)标识符:由字母、数字、下划线组成, 而且而且 只能以字母、下划线打头。只能以字母、下划线打头。(3)名字不能是保留字(系统有固定用途)名字不能是保留字(系统有固定用途 的标识符)。的标识符)。(4)字母的大小写有区别。)字母的大小写有区别。(5)名字最好能表达一定的含义。)名字最好能表达一定的含义。第一章第一章 C+编程基础编程基础4、编排
6、、编排编排时使用缩进、空行、空格编排时使用缩进、空行、空格使程序更清晰。使程序更清晰。第一章第一章 C+编程基础编程基础七、简单性原则七、简单性原则1、可以用一句话说清楚的,不要用一页、可以用一句话说清楚的,不要用一页 纸纸 去说明,可以用一个简单的语句完去说明,可以用一个简单的语句完 成的功能,不要用许多语句来完成。成的功能,不要用许多语句来完成。2、不要写太长的函数,可以用函数调用、不要写太长的函数,可以用函数调用 来缩短函数的定义。来缩短函数的定义。3、不要写太长的语句,可以用多条语句、不要写太长的语句,可以用多条语句 来代替一条语句。来代替一条语句。第一章第一章 C+编程基础编程基础4
7、、如果文件太长,将它分成几个小文件。、如果文件太长,将它分成几个小文件。5、不要用太多的嵌套,可以考用、不要用太多的嵌套,可以考用switch 语句或者引入新的函数来解决问题。语句或者引入新的函数来解决问题。6、定义类时,一个文件放一个类的定义。、定义类时,一个文件放一个类的定义。第一章第一章 C+编程基础编程基础八、一致性原则八、一致性原则1、变量的命名应该有意义。、变量的命名应该有意义。2、在程序中加上适当的注释。、在程序中加上适当的注释。3、利用缩进使程序清晰。、利用缩进使程序清晰。4、相关的内容组织在一起。、相关的内容组织在一起。5、能简单,则简单。、能简单,则简单。第二章第二章 基本
8、基本C+程序结构程序结构例例1:#include void main( ) cout ” 同学们同学们,你们好你们好! ”; 程序功能程序功能:在屏幕上显示输出在屏幕上显示输出 同学们同学们,你们好你们好!说明一说明一说明二说明二说明三说明三说明四说明四说明五说明五说明六说明六第二章第二章 基本基本C+程序结构程序结构一、编译预处理命令一、编译预处理命令#include1、#:预处理命令的标志。:预处理命令的标志。2、 #include:包含命令;:包含命令; 把一个文本文件的内容插入到该命令处。把一个文本文件的内容插入到该命令处。3、命令参数;命令参数; 给出要插入文件的文件名。给出要插入文
9、件的文件名。返回返回第二章第二章 基本基本C+程序结构程序结构二、头文件:以二、头文件:以h为扩展名的文本文件为扩展名的文本文件 如果程序文件中引用到的函数、变量、如果程序文件中引用到的函数、变量、 常量、对象、数据类型等是由别的文件常量、对象、数据类型等是由别的文件 提供的,则必须在程序文件的开始部分提供的,则必须在程序文件的开始部分 用用#include命令把有关的头文件包含进来。命令把有关的头文件包含进来。返回返回第二章第二章 基本基本C+程序结构程序结构三、函数(具有特定功能的程序模块)三、函数(具有特定功能的程序模块)1、定义格式:、定义格式:返回类型返回类型 函数名(形式参数表)函
10、数名(形式参数表)函数体函数体void main ( ) cout ” 同学们同学们, 你们好你们好! ”;返回返回第二章第二章 基本基本C+程序结构程序结构 (1)类型修饰符)类型修饰符 :函数返回值的类型。:函数返回值的类型。 (2)函数名:非保留字的标识符。)函数名:非保留字的标识符。 (3)形式参数表:由一系列用逗号隔)形式参数表:由一系列用逗号隔 开的参数组成。开的参数组成。 (4)函数体:包含在一对)函数体:包含在一对 中的语句序列。中的语句序列。第二章第二章 基本基本C+程序结构程序结构2、主函数(、主函数(main函数)函数)每个程序中至少要有一个函数,这个不可缺少每个程序中至
11、少要有一个函数,这个不可缺少的函数就是主函数,约定主函数名为:的函数就是主函数,约定主函数名为: main(1)程序由一个或多个函数组成。)程序由一个或多个函数组成。(2)如果程序中只有一个函数,则)如果程序中只有一个函数,则 一定是一定是main函数。函数。(3)如果程序中有多个函数,则有)如果程序中有多个函数,则有 且仅有一个为且仅有一个为main函数。函数。第二章第二章 基本基本C+程序结构程序结构(4) main函数是程序的入口,程序是从函数是程序的入口,程序是从 main函数开始执行的。函数开始执行的。(5) main函数的返回值函数的返回值 void:无返回值。无返回值。 int:
12、 有有返回值。返回值。 (0表示程序正常结束表示程序正常结束 非非0表示程序非正常结束)表示程序非正常结束)第二章第二章 基本基本C+程序结构程序结构四、四、C+语句语句基本语句:以分号;作为结束标志。基本语句:以分号;作为结束标志。复合语句:包含在复合语句:包含在 中的基本语句序列。中的基本语句序列。返回返回第二章第二章 基本基本C+程序结构程序结构五、常量五、常量数据的一种重要表现形式,常量的值数据的一种重要表现形式,常量的值不可改变不可改变1、整型常量(整型常数)如:、整型常量(整型常数)如:1232、实型常量(实型常数)如:、实型常量(实型常数)如:1.233、字符常量(用、字符常量(
13、用 括起的一个括起的一个字符)字符) 如:如: a 第二章第二章 基本基本C+程序结构程序结构4、字符串常量(用、字符串常量(用 ” ”括起的括起的字符序列)字符序列) 如:如: ” student ”5 5、枚举、枚举常量常量注:除字符串常量中引号内的字符以及注:除字符串常量中引号内的字符以及 注释外,其它字符必须是半角字符。注释外,其它字符必须是半角字符。 尤其注意不要误用中文标点。尤其注意不要误用中文标点。返回返回第二章第二章 基本基本C+程序结构程序结构六、六、cout和数据的显示输出和数据的显示输出1 1、 cout:连接显示器的输出流对象。连接显示器的输出流对象。2 2、 :输出操
14、作符(插入操作符):输出操作符(插入操作符)第二章第二章 基本基本C+程序结构程序结构3、显示输出语句的格式:、显示输出语句的格式: cout 表达式【表达式【 表达式】表达式】 ; 注:【注:【 】中内容可有可无,】中内容可有可无, 若有,可重复多次。若有,可重复多次。 如:如:cout100; 屏幕输出屏幕输出 100 cout100200100+200; 屏幕输出屏幕输出 100200300返回返回第二章第二章 基本基本C+程序结构程序结构4、插入空格:(空格符为、插入空格:(空格符为 )如:如:cout 100 200100+200; ;屏幕输出屏幕输出 :100 200 300:10
15、0 200 300第二章第二章 基本基本C+程序结构程序结构5、换行输出、换行输出换行符号:换行符号:n 换行控制符:换行控制符:endl如:如:cout 100n200; cout 100endl200;则这两个语句的输出结果相同:则这两个语句的输出结果相同:100100200200第二章第二章 基本基本C+程序结构程序结构四点注意:四点注意:1 1、要输出的字符串需要用双引号、要输出的字符串需要用双引号” ” ”括起括起 来。但输出到屏幕上时,双引号来。但输出到屏幕上时,双引号” ” ” ” 并并 不显示。不显示。2 2、语句的最后要用分号、语句的最后要用分号 ;表示结束。表示结束。 第二
16、章第二章 基本基本C+程序结构程序结构3 3、换行符号、换行符号n n 和换行控制符和换行控制符endlendl写写法不同,但效果相同。法不同,但效果相同。4 4、可以作为输出内容的不止是字符串,还、可以作为输出内容的不止是字符串,还可以是数、表达式等等。可以是数、表达式等等。返回返回第二章第二章 基本基本C+程序结构程序结构例例2:#include void main( ) float radius,circum; const float PI=3.14; cinradius; circum=2* * PI* *radius; cout ”circum=”circum; 说明一说明一说明二说
17、明二说明三说明三第二章第二章 基本基本C+程序结构程序结构 程序功能:程序功能: 根据从键盘输入的半径,计算并输出根据从键盘输入的半径,计算并输出 圆的周长。圆的周长。 如:键盘输入如:键盘输入2.02.0,则屏幕输出:,则屏幕输出: circum=12.56 返回返回第二章第二章 基本基本C+程序结构程序结构 一、变量一、变量 数据的一种重要表现形式,变量的值数据的一种重要表现形式,变量的值 可以改变。可以改变。 1、变量必须先定义后使用。、变量必须先定义后使用。 定义格式:定义格式: 变量类型变量类型 变量名;变量名; 如:如: int age;返回返回第二章第二章 基本基本C+程序结构程
18、序结构2、变量赋值和初始化、变量赋值和初始化如:如:int age; age=20;/变量赋值变量赋值 int age=20;/变量初始化变量初始化第二章第二章 基本基本C+程序结构程序结构3、常值变量、常值变量在一般变量定义前加上保留字在一般变量定义前加上保留字const如:如:const float PI=3.14;注:常值变量定义时必须初始化,且值注:常值变量定义时必须初始化,且值 不可改变。常值变量名通常大写。不可改变。常值变量名通常大写。第二章第二章 基本基本C+程序结构程序结构 1、定义:由操作符和操作数按照一定、定义:由操作符和操作数按照一定 的语法规则组的语法规则组 成的符号序
19、列。成的符号序列。 如:如:2* * PI* *radius /算术表达式算术表达式 circum=2* * PI* *radius /赋值表达式赋值表达式 注:最简单的表达式:注:最简单的表达式: 常量,变量,函数调用。常量,变量,函数调用。 二、表达式二、表达式返回返回第二章第二章 基本基本C+程序结构程序结构2、优先级和结合性:、优先级和结合性:优先级:不同操作符出现在同一表达式中,优先级:不同操作符出现在同一表达式中, 谁先运算的级别。谁先运算的级别。如:如:a+bc / 优先级高于优先级高于+结合性:同等优先级的操作符出现在同一表结合性:同等优先级的操作符出现在同一表 达式中,谁先运
20、算的规定。达式中,谁先运算的规定。如:如:a+b-c /从左到右从左到右第二章第二章 基本基本C+程序结构程序结构3 3、表达式语句:、表达式语句:表达式后加表达式后加;如:如: circum=2* * PI* *radius;4、C+表达式的写法:表达式的写法:(1)所有字符写在同一水平线上。)所有字符写在同一水平线上。(2)乘号:)乘号: 除号:除号: /(3)算术运算符不可省略。)算术运算符不可省略。第二章第二章 基本基本C+程序结构程序结构5、表达式的值、表达式的值(1)算术表达式)算术表达式算术运算符:算术运算符:+,-,/,% %(取模操作符):(取模操作符): 求两整数相除后所得
21、的余数。求两整数相除后所得的余数。 如:如:22%7=1第二章第二章 基本基本C+程序结构程序结构 若两操作数都为整数,则计算结果为整数。若两操作数都为整数,则计算结果为整数。 如:如:345/10=34 若两操作数有一个为实数,则计算结果若两操作数有一个为实数,则计算结果 为实数。为实数。 如:如:345.0/10=34.5 第二章第二章 基本基本C+程序结构程序结构(2)赋值表达式:)赋值表达式:赋值操作符赋值操作符 =赋值表达式格式赋值表达式格式 变量变量=表达式表达式 如:如: circum=2 PIradius第二章第二章 基本基本C+程序结构程序结构 赋值表达式的值:赋值操作符左边
22、表达赋值表达式的值:赋值操作符左边表达式的值。式的值。 如:如: cout(x=5):输入操作符(提取操作符):输入操作符(提取操作符) 键盘输入语句的格式:键盘输入语句的格式: cin 变量【变量【 变量】;变量】;返回返回第二章第二章 基本基本C+程序结构程序结构1、【、【 】中内容可有可无,若有,可重复多次。】中内容可有可无,若有,可重复多次。如:如:int a,b,c; cina; cinabc;2、格式中、格式中cin后跟的是变量,不可是常量或后跟的是变量,不可是常量或 表达式。表达式。如:如:cin100;() cin100+200;()注:若在程序中用到注:若在程序中用到cin或
23、或cout,则在程序中应,则在程序中应 有有#include第三章第三章 数据类型数据类型一、一、C+数据类型分类图数据类型分类图数数 据据 类类 型型基本数据类型基本数据类型整型(整型(int)浮点型浮点型(float)字符型字符型(char)双精度型双精度型(double)无值无值(void)构造数据类型构造数据类型引申数据类型引申数据类型指针指针(*)引用引用(&)结构化数据类型结构化数据类型数组数组( )结构结构(struct)联合联合(union)位域位域枚举枚举(enum)类类(class)第三章第三章 数据类型数据类型 二、基本数据类型概况:二、基本数据类型概况: 1、数据在计算
24、机中的存储、数据在计算机中的存储 (1)计算机内存单元的单位是字节,)计算机内存单元的单位是字节, 一个字节是一个字节是8个二进制位。个二进制位。 如:如:0000 0000 1010 1010 是两个字节。是两个字节。 第三章第三章 数据类型数据类型(2)不同的计算机中,同一数据类型)不同的计算机中,同一数据类型 占用的空间不一定相同。占用的空间不一定相同。 如:如:16位计算机中,整型占两个字节;位计算机中,整型占两个字节; 32位计算机中,整型占四个字节;位计算机中,整型占四个字节;第三章第三章 数据类型数据类型(3)数据占用内存字节的多少决定了其)数据占用内存字节的多少决定了其 能表达
25、的数据的范围。能表达的数据的范围。 如:两个字节的整数表示范围是如:两个字节的整数表示范围是 -3276832767 第三章第三章 数据类型数据类型(4)计算机对内存中存放的同样信息解释)计算机对内存中存放的同样信息解释 会因其所能表示的数据类型的不同而会因其所能表示的数据类型的不同而 不同。不同。 如:如:0000 0000 0000 1010 在在16位计算机中位计算机中 若表示整数,则为一个整数若表示整数,则为一个整数 若表示字符,则为两个字符若表示字符,则为两个字符第三章第三章 数据类型数据类型注:定义变量时,数据类型有两个含义:注:定义变量时,数据类型有两个含义: 为该变量分配多大的
26、存储空间;为该变量分配多大的存储空间; 如何解释该存储空间中的二进制数位。如何解释该存储空间中的二进制数位。 如:定义变量如:定义变量float radius; 则表示则表示radius 将要占用将要占用4个字节的存储空间,并且对这个字节的存储空间,并且对这 个空间的值的存放和解释都按小数进行。个空间的值的存放和解释都按小数进行。第三章第三章 数据类型数据类型2、修饰符号、修饰符号long(长型符长型符) short(短型符短型符) signed(有符号型有符号型) unsigned(无符号型无符号型)第三章第三章 数据类型数据类型使用修饰符号后的基本数据类型使用修饰符号后的基本数据类型所属类
27、型所属类型加修饰符后加修饰符后的类型的类型16位计算机位计算机中所占字节中所占字节数数简写简写 charchar1unsigned char 1signed char1 char第三章第三章 数据类型数据类型所属类型所属类型加修饰符后加修饰符后的类型的类型16位计算位计算机中所占机中所占字节数字节数简写简写 intint2unsigned int2signed int2 int所属类型所属类型加修饰符后的类加修饰符后的类型型16位计位计算机中算机中所占字所占字节数节数简写简写short intshort int2shortunsigned short int2signed short int2
28、第三章第三章 数据类型数据类型所属类型所属类型加修饰符后加修饰符后的类型的类型16位计算位计算机中所占机中所占字节数字节数备备注注 long intlong int4longunsigned long int4signed long int4第三章第三章 数据类型数据类型所属类型所属类型加修饰符后加修饰符后的类型的类型16位计算位计算机中所占机中所占字节数字节数备备注注实型实型float4double8long double10第三章第三章 数据类型数据类型第三章第三章 数据类型数据类型 3、基本数据类型、基本数据类型 (1)void:实际上不能算是一种数据:实际上不能算是一种数据 类型,它表
29、示根本就没有值,通类型,它表示根本就没有值,通 常用于表示函数没有返回值。常用于表示函数没有返回值。第三章第三章 数据类型数据类型(2)整型)整型 整数的三种表示方式:整数的三种表示方式: 十进制:无前缀十进制:无前缀 如:如:12 八进制:八进制:0前缀前缀 如:如:012 十六进制:十六进制:OX(或(或ox)前缀)前缀 如:如:OX12第三章第三章 数据类型数据类型(3)实型)实型 浮点数浮点数(float)和双精度数和双精度数(double)的区别的区别 表示的数据范围不同表示的数据范围不同 表示的精度不同表示的精度不同第三章第三章 数据类型数据类型 实数的两种表示形式实数的两种表示形
30、式 定点数形式定点数形式 如:如:3.14 指数形式指数形式 如:如: 31400 3.14E4 0.314 3.14E-1第三章第三章 数据类型数据类型(4)字符型)字符型 字符型和整型的关系字符型和整型的关系 字符在内存中是以字符在内存中是以ASCII码存储,所以码存储,所以 字符和整数在一定范字符和整数在一定范 围内可以通用。围内可以通用。 如:如:char c=60; int i = &; 第三章第三章 数据类型数据类型整数值的范围比字符类型值的范围整数值的范围比字符类型值的范围要大,所以在赋值时要注意不能超要大,所以在赋值时要注意不能超过字符的范围。过字符的范围。如:如:char c
31、=1234;()第三章第三章 数据类型数据类型 尽管整数和字符可以在一定范围内尽管整数和字符可以在一定范围内 相互赋值,但它们表示的含义不同,相互赋值,但它们表示的含义不同, 一个表示整数,而另一个表示字符。一个表示整数,而另一个表示字符。 第三章第三章 数据类型数据类型 例例3:#include void main( ) int i=60; char c=i; cout ” The value of integer:”iendl; cout ” The value of character: ” c endl; 该程序的输出结果是:该程序的输出结果是: The value of intege
32、r:60 The value of character:第三章第三章 数据类型数据类型特殊字符(转义字符):以特殊字符(转义字符):以 开头的字符序开头的字符序列。列。名称名称符号符号名称名称符号符号空字符空字符0水平制表水平制表t换行换行n垂直制表垂直制表v换页换页f问号问号?回车回车r反斜线反斜线回格回格b单引号单引号响铃响铃a双引号双引号”第三章第三章 数据类型数据类型如:如:cout” How are you!”; 则屏幕输出:则屏幕输出: How are you! cout” ”How are you! ” ”; 则屏幕输出:则屏幕输出: ” How are you! ”第三章第三章
33、 数据类型数据类型字符串(用字符串(用” ”括起来的字符序列)括起来的字符序列) 0:字符串结束符;不显示,但占一:字符串结束符;不显示,但占一个个 字节的存储空间。字节的存储空间。 如:如: ”Hello ” 内存表示为:内存表示为: H e l l o0 第三章第三章 数据类型数据类型如:如:”0”与与0的差别:的差别:”0”为字符串,内存表示为:为字符串,内存表示为: 0为字符,内存表示为:为字符,内存表示为: 00 0第三章第三章 数据类型数据类型 4、数据类型长度的确定、数据类型长度的确定 格式:格式:sizeof(数据类型数据类型) 如:如:cout ” Size of int i
34、s:”sizeof(int); 则屏幕输出:则屏幕输出: Size of int is:2 表示在表示在16位计算机中,位计算机中, int型的长度为型的长度为2个字节。个字节。第三章第三章 数据类型数据类型5、选择数据类型的原则、选择数据类型的原则 根据所表示的数据的类型选择。根据所表示的数据的类型选择。 根据所表示的数据的范围选择。根据所表示的数据的范围选择。第三章第三章 数据类型数据类型三、结构化数据类型概况三、结构化数据类型概况1、数组、数组数组变量可以存放一组具有相同类型的数组变量可以存放一组具有相同类型的数据。数据。数组变量的定义格式:数组变量的定义格式: 数据类型数据类型 数组名
35、数组名 数组元素个数数组元素个数 如:如:int grade50; 则将变量则将变量grade定义成一个可存放定义成一个可存放50个整个整 数的整型数组。数的整型数组。第三章第三章 数据类型数据类型下标访问下标访问 通过下标访问操作符通过下标访问操作符 访问指定的数组访问指定的数组元素。元素。 若数组元素个数为若数组元素个数为n,则下标范围是:,则下标范围是:0n-1如:如: grade0表示该数组的第一个元素。表示该数组的第一个元素。 grade49表示该数组的最后一个元素。表示该数组的最后一个元素。第三章第三章 数据类型数据类型2、枚举、枚举枚举是一种用户自定义的类型,使用前必枚举是一种用
36、户自定义的类型,使用前必须先定义。须先定义。 枚举类型的定义格式:枚举类型的定义格式: enum 枚举类型名枚举类型名常量常量1,常量,常量2,常,常量量n;如如:enumWEEKDAYSun,Mon,Tue,Wed,Thu,Fri,Sat; 第三章第三章 数据类型数据类型定义了一个枚举类型后定义了一个枚举类型后,就可以用该就可以用该类型来定义变量类型来定义变量. 如如: WEEKDAY w1,w2=sat;第三章第三章 数据类型数据类型某一枚举类型的变量,它的取值范围限某一枚举类型的变量,它的取值范围限定在定在 中的中的n个变量。个变量。 如:如: WEEKDAY类型的两个变量类型的两个变量
37、w1,w2,它们只能它们只能Sun,Mon,Tue,Wed,Thu,Fri,Sat这七个符号常量中取值。这七个符号常量中取值。第三章第三章 数据类型数据类型枚举类型中的每个符号常量对应一个整数。枚举类型中的每个符号常量对应一个整数。 两种对应关系:两种对应关系: 依此与整数依此与整数0,1,2,n对应。对应。 用赋值号规定其对应关系。用赋值号规定其对应关系。第三章第三章 数据类型数据类型 如:如: enum WEEKDAYSun,Mon,Tue,Wed,Thu, Fri,Sat; 此枚举类型中此枚举类型中: Sun,Mon,Tue,Wed,Thu,Fri,Sat对应的整数分别对应的整数分别为:
38、为:0,1,2,3,4,5,6第三章第三章 数据类型数据类型如:如:enum SomeDigitsONE=1,TWO,FIVE=5,SIX,SEVEN;此枚举类型中此枚举类型中:ONE=1,TWO=2,FIVE=5,SIX=6,SEVEN=7第三章第三章 数据类型数据类型3、结构、结构结构是一种用户自定义的类型,结构是一种用户自定义的类型,使用前必须先定义。使用前必须先定义。 第三章第三章 数据类型数据类型 结构类型的定义格式:结构类型的定义格式: struct 结构类型名结构类型名 成员成员1; 成员成员2; 成员成员n; ;第三章第三章 数据类型数据类型 如:如:struct Person
39、 char name10; int sex; int age; float pay; ;定义了一种结构类型后,可以用该类型来定义变量。定义了一种结构类型后,可以用该类型来定义变量。如:如:Person p1;第三章第三章 数据类型数据类型对结构变量进行赋值:对结构变量进行赋值: 对各成员进行赋值对各成员进行赋值如:如:p1.name= ” WangPin”; p1.sex=1; p1.age=35; p1.pay=1000.0; 在定义结构变量时进行初始化在定义结构变量时进行初始化如:如:Person p1=” WangPin”,1,35,10001,35,1000、. .第四章第四章 程序流
40、程控制程序流程控制一、复合语句一、复合语句 1、最常用的四类语句:、最常用的四类语句: (1)说明和定义语句。)说明和定义语句。 如:如:char a,b; (2)表达式语句)表达式语句 如:如:c=a+b; (3)流程控制语句)流程控制语句 (4)异常处理语句)异常处理语句第四章第四章 程序流程控制程序流程控制2、复合语句、复合语句 包含在一对包含在一对 的语句序列。的语句序列。 如:如: int i=4; couti; (3)couti2;计算机按语句的先后顺序依此执行计算机按语句的先后顺序依此执行(1)()(2)()(3)第四章第四章 程序流程控程序流程控制制 四、分支流程四、分支流程
41、(一)(一)if 语句语句 1、格式一:、格式一: if (条件)(条件) 语句;语句; 功能:如果条件为真,则执行语句;功能:如果条件为真,则执行语句; 否则什么都不做。否则什么都不做。第四章第四章 程序流程控制程序流程控制例例1:#include void main( ) float score; cin score; if(score=60) cout ”及格及格”; 第四章第四章 程序流程控制程序流程控制2、格式二:、格式二: if (条件)(条件) 语句语句1 else 语句语句2功能:如果条件为真,则执行语句功能:如果条件为真,则执行语句1; 条件为假,则执行语句条件为假,则执行语
42、句2 。第四章第四章 程序流程控制程序流程控制例例2:#include void main( ) float score; cin score; if(score=60) cout ”及格及格”; else cout ”不及格不及格”; 第四章第四章 程序流程控制程序流程控制3、 if语句的嵌套:语句的嵌套: if语句中又含有语句中又含有if语句。语句。例例3:#include void main( ) float score; cin score; if(score=60) if(score=90) cout=80) cout ”良好良好”; else cout ”及格及格”; else c
43、out ”不及格不及格”; 注:注: elseelse总是与离它最近的尚未配对的总是与离它最近的尚未配对的ifif配对配对。第四章第四章 程序流程控程序流程控制制4、if多分支结构多分支结构通过规范化的通过规范化的if嵌套所构成的多分支结构。嵌套所构成的多分支结构。if嵌套放在嵌套放在elseelse之后之后第四章第四章 程序流程控制程序流程控制 格式:格式: if(条件(条件1)语句)语句1 else else if(条件(条件2)语句)语句2 else else if(条件(条件3)语句)语句3 else else if(条件(条件n)语句)语句n 【 else else 语句语句n+1
44、】第四章第四章 程序流程控制程序流程控制例例4:#include void main( ) float score; cin score; if(score100) cout ”输入错误!输入错误!”; else if (score 60) cout ”不及格不及格”; else if (score 70) cout ”及格及格”; else if (score 80) cout ”中等中等”; else if (score 90) cout ”良好良好”; else cout ”优秀优秀”; 第四章第四章 程序流程控制程序流程控制二二switch语句语句 1、格式:、格式: switch(表
45、达式)(表达式) case 常量表达式常量表达式1:语句:语句1; case 常量表达式常量表达式2:语句:语句2; case 常量表达式常量表达式n:语句:语句n; 【default:语句语句n+1; 】 第四章第四章 程序流程控制程序流程控制 2、执行顺序:、执行顺序: 先计算先计算switch语句中表达式的值,然后在语句中表达式的值,然后在case 语句中寻找值相等的常量表达式,并以此为语句中寻找值相等的常量表达式,并以此为入口,由此开始入口,由此开始 顺序执行。如果没有找到顺序执行。如果没有找到 相相等的常量表达式,且等的常量表达式,且default 后的语句后的语句n+1存在,存在,
46、则执行语句则执行语句n+1,否则什么都不做。,否则什么都不做。第四章第四章 程序流程控制程序流程控制3、五点注意:、五点注意:(1) case后表达式的值必须是整型的。后表达式的值必须是整型的。(2)各常量表达式的值不能相同。)各常量表达式的值不能相同。(3)每个)每个case语句的分支可以有多条语句,语句的分支可以有多条语句, 但不必用但不必用 。第四章第四章 程序流程控制程序流程控制(4)每个)每个case语句只是一个入口标号,并语句只是一个入口标号,并不能确定执行的终止点,因此每个不能确定执行的终止点,因此每个case分支的最后最好加上分支的最后最好加上break语句,用来结语句,用来结
47、 束当前束当前switch语句的执行;否则会从入口语句的执行;否则会从入口点开始一直执行到点开始一直执行到switch语句的结束。语句的结束。(5)当若干分支需要执行相同操作时,可)当若干分支需要执行相同操作时,可以使多个以使多个case分支共用一组语句。分支共用一组语句。第四章第四章 程序流程控制程序流程控制例例5:根据整型变量:根据整型变量dayoftheweek(0-6)值输出其表示值输出其表示的星期几的英语单词。的星期几的英语单词。(无(无break语句)语句) Switch(dayoftheweek) case 0: cout ”Sunday”; case 1: cout ”Mond
48、ay”; case 2: cout ”Tuesday”; case 3: cout ”Wednesday”; case 4: cout ”Thursday”; case 5: cout ”Friday”; case 6: cout ”Saturday”; default:cout ”Unknown week day”; ;第四章第四章 程序流程控制程序流程控制若若dayoftheweek的值为的值为4,则输出结果为:则输出结果为:ThursdayFridaySaturdayUnknown week day第四章第四章 程序流程控制程序流程控制(有(有break语句)语句) Switch(day
49、oftheweek) case 0: cout ”Sunday”; break; case 1: cout ”Monday”; break; case 2: cout ”Tuesday”; break; case 3: cout ”Wednesday”; break; case 4: cout ”Thursday”; break; case 5: cout ”Friday”; break; case 6: cout ”Saturday”; break; default:cout ”Unknown week day”; break; ;第四章第四章 程序流程控制程序流程控制若若dayofthew
50、eek的值为的值为4,则输出结果为:则输出结果为:Thursday第四章第四章 程序流程控制程序流程控制(三)(三) if多分支结构和多分支结构和switch语句的改写语句的改写 改写条件:改写条件: switch语句中每个非空语句序列语句中每个非空语句序列 的最后一个语的最后一个语 句为句为break语句。语句。第四章第四章 程序流程控制程序流程控制例例6:例:例5的后一个的后一个switch语句可改写为语句可改写为if多分支结构多分支结构 if(dayoftheweek=0=0) cout ” Sunday”; else if (dayoftheweek = 1 1) cout ” Mon