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