




已阅读5页,还剩54页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C+程序设计教案蔡勇智 讲师授课时间:2010年3月 2010年 7月课程性质:专业必修课课程类别:讲授课+实训课授课对象:08级电子商务专业 课 时 数:周4教学目的:通过本课程的学习,使学生理解面向对象程序设计思想,掌握面向对象程序设计的基本概念和技术。使学生深刻理解面向对象技术所带来的观念改革,掌握一种面向对象程序设计语言和面向对象设计的思维方式、规则与基本方法,了解面向对象程序设计技术的发展趋势。通过面向对象思维的训练,使学生逐渐掌握现代编程能力,为今后的软件开发和各种信息处理打下良好的基础。教学方法:本课程以以下两种教学方法为主:1理论课堂教学使用多媒体辅助教学手段,并采用可视化的编程工具用于课程学习和编程。2实验教学结合理论教学实际情况,布置合适比例的概念理解题和综合设计题,使学生在掌握面向对象概念、巩固知识的同时,提高综合设计和处理实际问题的能力。教学内容:第一章 面向对象程序设计概述第二章 C+程序设计基础第三章 函数第四章 数组第五章 结构体与共用体 第六章 指针与引用教学重难点:重难点在于采用面向对象的观点分析问题、解决问题,以及培养学生结合实际应用,采用面向对象的思想设计有效的算法和可视化编程实现能力。考核方式:平时考勤、作业占30%,期末考试占70%。使用教材:C+程序设计邓振杰 主编第1章 C+概述本章课时:4课时本章重点: c+的基本结构C+的上机实现本章难点:C+的上机实现教学内容及教学目标:了解:1传统程序设计与面向对象程序设计的区别2C+的发展3面向对象程序设计语言理解:1面向对象程序设计的特点2熟悉VC+6.0集成开发环境掌握: 1C+的特点2C+程序结构和书写规则第一节 面向对象程序设计基本概念:1. 对象 在面向对象程序设计中,对象是由对象名、一组属性数据和一组操作封装在一起构成的实体。其中属性数据是对象固有特征的描述,操作是对这些属性数据施加的动态行为,是一系列的实现步骤,通常称之为方法。 2. 类 在面向对象程序设计中,类是具有相同属性数据和操作的对象的集合,它是对一类对象的抽象描述。类是创建对象的模板,它包含着所创建对象的状态描述和方法的定义,一般是先声明类,再由类创建其对象。按照这个模板创建的一个个具体的实例,就是对象。 3. 属性 对象中的数据称为对象的属性,而类中的特性称为类的属性,不同的类和对象具有不同的属性。4. 消息 在面向对象程序设计中,当要求一个对象做某一操作时,就向该对象发出请求,通常称为“消息”。当对象接收到消息时,就调用有关方法,执行相应操作。这种对象与对象之间通过消息进行相互联系的机制,就叫做消息传递机制,通过消息传递可实现对象的交互。5. 方法 方法就是对象所能执行的操作。方法包括接口和方法体两部分。方法的接口就是消息的模式,它告诉用户如何调用该方法;方法体则是实现操作的一系列步骤,也就是一段程序代码。传统程序设计及其局限性:1. 传统程序设计开发软件的生产效率低下2. 传统程序设计难以应付庞大的信息量和多样的信息类型3. 传统程序设计难以适应各种新环境面向对象程序设计的特点:1.封装性 封装是一种数据隐藏技术,在面向对象程序设计中可以把数据和与数据有关的操作集中在一起形成类,将类的一部分属性和操作隐藏起来,不让用户访问,另一部分作为类的外部接口,用户可以访问。 2. 继承性 在面向对象程序设计中,继承是指新建的类从已有的类那里获得已有的属性和操作。已有的类称为基类或父类,继承基类而产生的新建类称为基类的子类或派生类。3. 多态性 多态性是指相同的函数名可以有多个不同的函数体,即一个函数名可以对应多个不同的实现部分。在调用同一函数时,由于环境的不同,可能引发不同的行为,导致不同的动作,这种功能称为多态。它使得类中具有相似功能的不同函数可以使用同一个函数名。第二节 C+的发展1980年,美国AT&T公司贝尔实验室的Bjarne Stioustrup博士为了仿真课题研究,编写了称为“带类的C”语言版本。1983年7月用C+将该语言名字定下来,并对外公开发表。 Microsoft公司于20世纪80年代中期在Microsoft C 6.0的基础上开发了Microsoft C/C+ 7.0,同时引进了Microsoft Foundation Class(MFC)1.0版本,完善了源代码。后来Microsoft公司推出了Microsoft C/C+ 8.0,即Visual C+ 1.0版本,之后又推出了 Visual C+ 2.0和Visual C+ 4.0版本。伴随Windows 98操作系统的发布,Microsoft公司又隆重推出了Visual C+ 6.0 C+的特点:C+全面兼容C语言,许多C语言代码不经修改就可以在C+中使用。用C+编写的程序可读性更好,代码结构更为合理。生成代码质量高,运行效率仅比汇编语言慢10%20%。从开发时间、费用到形成软件的可重用性、可扩充性、可维护性和可靠性等方面有很大提高,使得大中型软件开发变得容易很多。支持面向对象程序设计,可方便地构造出模拟现实问题的实体和操作。 第三节 c+程序的基本结构【例1.1】一个简单的C+程序。# include void sayhello();void main()sayhello( ); / 在显示器上输出显示一行字符串coutThis is my first C+ program! endl;/函数定义void sayhello()coutHello! endl;1.头文件 在C+程序开始部分出现以#开头的命令,表示这些命令是预处理命令,称作预处理器。C+提供了3类预处理命令:宏定义命令、文件包含命令和条件编译命令 C+语言包含头文件的格式有两种:#include #include文件名.扩展名2. 函数 C+的程序是由若干个文件组成,每个文件又由若干个函数组成。函数之间是相互独立的,相互之间可以调用。但函数在调用之前,必须先定义。 C+的程序中的函数可分为两大类,一类是用户自己定义的函数,另一类是系统提供的标准函数。使用系统提供的标准函数时,可以直接调用,但需要将该函数的头文件包含在该程序中。3. 主函数 在组成C+程序的若干个函数中,必须有一个且只能有一个主函数main()。执行程序时,系统先从主函数开始运行,其他函数只能被主函数调用或通过主函数调用的函数所调用,函数可以嵌套调用。4. 注释第一种注释方法是以“/*”开始,以“*/”结束,二者之间的所有字符都会被作为注释处理,此时的注释可以是一行,也可以是多行,适合于大块的注释。第二种注释方法是以“/”表示注释开始,本行中“/”后面的字符都会被作为注释处理,这种注释方式多用于较短的程序注释。5. 输入/输出 输入/输出语句是C+最基本的语句。 综上所述,一个C+程序的基本结构应该包括以“#”开头的若干个预处理命令,将程序所需要的头文件包含进来;然后定义主函数和其他函数,当然函数也可以在程序的起始部分先利用函数要包括各种语句和注释,这部分是程序的主体部分,所占比重也最大。C+程序的书写格式:C+程序的书写格式与C程序书写格式基本相同。原则如下:一般情况下一行只写一条语句。短语句可以一行写多条,长语句也可以分成多行来写。分行原则是不能将一个单词分开,用双引号括起来的字符串最好也不要分开。C+程序书写时要尽量提高可读性。为此,采用适当地缩进格式书写程序是非常必要的,表示同一类内容或同一层次的语句要对齐。C+程序中大括号 使用较多,其书写方法也较多,建议用户要养成使用大括号 的固定风格。例如,每个大括号占一行,并与使用大括号的语句对齐,大括号内的语句采用缩进两个字符的格式书写。第四节 Visual C+ 6.0集成开发环境 Visual C+ 6.0是微软公司开发的可视化的C+集成开发环境。它集程序代码的编辑、编译、连接、调试等功能为一体,界面友好,用户操作方便。源程序编辑窗口菜单栏标准工具栏工作区窗口输出窗口编译工具栏1 菜单栏2标准工具栏3工作区窗口4源程序编辑窗口5编译工具栏6输出窗口编辑、编译和运行程序:1. 编辑 编辑是将写好的C+源程序输入到计算机中,生成磁盘文件的过程。默认文件扩展名为*.cpp。2. 编译 编辑好的源程序必须经过编译,计算机才能执行,这些二进制代码称为目标代码。将这些目标代码以.obj为扩展名保存成目标程序文件。3. 连接 编译后生成的目标代码还不能直接在计算机上运行,其主要原因是编译器对每个源程序文件分别进行编译,如果一个程序有多个源程序文件,编译后这些源程序文件还分布在不同的地方。因此,需要把它们连接在一起,生成可以在计算机上运行的可执行文件。4. 运行 可执行文件可以在Windows环境下直接双击运行,也可以在Visual C+ 6.0的集成开发环境下运行。在生成可执行文件之前,一定要改正编译和连接时出现的致命错误和警告错误,这样才能保证运行结果是正确的。 参照教材练习C+程序的上机实现过程。利用Debug调试功能调试程序:Visual C+ 6.0集成开发环境为我们提供了辅助调试工具,可以实现单步运行、设置断点、观察变量和表达式的值等功能,使我们可以跟踪程序的执行过程,观察不同时刻变量值的变化情况。所谓断点就是程序运行时的暂停点,程序运行到断点处便暂停,这样就可以通过观察断点处变量的值来了解程序的执行过程。 参照教材练习利用Debug调试程序的过程。作业教材P18-19所有习题。第2章 C+程序设计基础本章课时:16课时本章重点:运算符与表达式控制语句本章难点:控制语句教学内容及目标:了解:1 为什么会有三种基本的程序控制结构2 C+的基本数据类型理解: 1程序控制结构的控制方式:顺序结构,选择结构,循环结构2C+的运算符、关键字、标识符和分隔符、常量和变量语法规则3转向语句的使用4表达式中数据类型的转换规则掌握:1选择控制的使用:if语句,switch语句2循环控制结构的使用:while语句,do_while语句,for语句,循环的嵌套3判断表达式的使用第一节 词法符号标识符:标识符是程序员为命名程序中的一些实体而定义的专用单词。常见的有函数名,类名、变量名、常量名、对象名等。C+语言中标识符的命名规则如下:标识符是由英文字母(包括大写和小写)、数字和下划线组成,并且以字母和下划线开始,例如:Abc、X1、_x1、desk都是合法的标识符,而2A是非法的。标识符中大写和小写字母是有区别的。标识符的长度是任意的,但有的编译系统仅识别前32个字符。标识符不能和C+语言的关键字同名。关键字:关键字是一种有特殊用途的词法符号,是C+系统预定义的保留字,不能再用作其他用途。下面列举一些C+语言中常用的关键字:auto break bool case char catch classConst continue default delete do double elseEnum explicit export extern false float forfriend goto if inline int long newMutable name space operator private protectedpublic register return short signed sizeofStatic atruct switch this typedef trueunion unsigned typename void using virtualvolatile while static_cast 运算符:运算符是C+语言实现各种运算的符号,如+、*、/ 等。运算符根据操作对象个数的不同,可以分为单目运算符、双目运算符和三目运算符。单目运算符又称一元运算符,它只对一个操作数进行操作。例如,求负运算符、逻辑求反运算符!等。双目运算符又称二元运算符,它可以对两个操作数进行操作。例如,加法运算符+、乘法运算符*等。三目运算符又称三元运算符,它可以对三个操作数进行操作。C+语言中只有一个三目运算符,就是条件运算符? :。分隔符:分隔符又称标点符号,是用来分隔单词或程序正文的,它可以表示某个程序实体的结束和另一个程序实体的开始。在C+语言中,常用的分隔符有以下几个:空格符:常用来作为单词与单词之间的分隔符。逗号:用来作为多个变量之间的分隔符,或用来作为函数多个参数之间的分隔符。分号:用来作为for循环语句中for关键字后面括号中三个表达式的分隔符,或用作语句结束的标志。冒号:用来作为语句标号与语句之间的分隔符,或switch语句中关键字case与语句序列之间的分隔符。第二节 基本数据类型C+语言的数据类型是十分丰富的,大致可分为基本数据类型和非基本数据类型。基本数据类型包括整型、字符型、浮点型和布尔型。非基本数据类型主要包括数组类型、结构体类型、共用体类型、指针类型和空类型等,如图2-1所示。 数据类型决定了数据在内存中所占的空间大小,也确定了其表示范围。各种基本数据类型的长度和取值范围见表2-1。 第三节 常量与变量常量:1整型常量 整型常量即整型常数,可以用十进制、八进制和十六进制3种形式来表示。十进制整型常量不能以0开始。例如,234、-67为合法的十进制整型常量。八进制整型常量以0为前缀。例如,0134、-076为合法的八进制整型常量。十六进制整型常量以0X或0x为前缀。例如,0x2F、0xA3B4为合法的十六进制整型常量。注意:整型常量中的长整型用L或l作后缀表示。例如,324L、076L等;整型常量中的无符号型用U或u作后缀表示。例如,431U、0x34DU等。2浮点型常量 浮点型常量又称实型常量,是由整数部分和小数部分组成的,只能用十进制表示。浮点型常量有两种表示方法:小数表示法和科学计数法。小数表示法:是由符号、数字和小数点组成。例如,9.55、.25等。科学计数法:是用指数形式来表示浮点型常量,即在小数表示法后面加上E或e表示指数。例如,3.2E-5,7e10,-34.5e2等。3字符常量 C+中有两种字符常量,即一般字符常量和转义字符常量。一般字符常量:一对单引号括起来的一个字符,其值为ASCII码值。例如,a、A、$、5等都是合法的字符常量。转义字符 转义字符是一个以“”开头的特定字符,表示其后的字符具有特殊意义。例如,n中的n不是代表字符n,而是代表回车换行的意思。常用的转义字符见表2-2。字符形式ASCII码值功能00x00NULLa0x07响铃b0x08退格(Backspace键)t0x09水平制表(Tab键)f0x0c走纸换页n0x0a回车换行v0x0b垂直制表r0x0d回车(不换行)0x5c字符“”0x27单引号0x22双引号?0x3f问号ddd0ddd13位八进制数所代表的字符xhh0xhh12位十六进制数所代表的字符表2-2 C+中常用的转义字符4字符串常量 字符串常量是用一对双引号括起来的字符序列。例如,a、123、hello等都是字符串常量。这些字符在内存中连续存储,并在最后加上字符0作为字符串结束的标志。例如,字符串“HELLO”在内存中占连续6个内存单元,存放示意图如图2-2所示。HELLO0 图2-2 字符串HELLO在内存中的存放示意图 字符常量是用单引号括起来的一个字符。它在内存中只占一个字节。所以,x和x是不同的。注意:不能将一个字符串常量赋给字符常量。例如,语句char c=abc是错误的。5逻辑常量 在C+程序设计中经常会用到两个逻辑值(也称布尔值)0和1,逻辑值“0”代表“假”、“不成立”、“false”等,逻辑值“1”代表“真”、“成立”、“true”等。 6符号常量 在C+中,可以用一个标识符来表示一个常数,这个标识符就是符号常量。使用符号常量可以增加程序的可读性和可维护性。C+语言提供了两种定义符号常量的方法:用const语句定义符号常量 一般格式为:const 数据类型 符号常量=表达式; 例如:const double pi = 3.1415926; 注意:在定义符号常量时必须进行初始化 用#define语句定义符号常量 #define是预处理指令,缺点是不能显示声明常量的类型。其一般格式为:#define 常量名 常量值 例如:#define pi 3.1415926变量:变量是指在程序运行过程中其值可以改变的量。C+语言中使用变量前,必须先对它的数据类型进行说明,以便编译程序为变量分配存储空间。1变量的命名变量的命名要遵循C+语言中标识符的命名规定2变量的定义变量定义的一般格式为:数据类型 变量1,变量2,;其中数据类型可以是前面讲过的各种数据类型,它决定了变量在内存中所占的存储单元数。例如:int x,y,z; /定义了3个整型变量x、y、z float a,b,c; /定义了3个实型变量a、b、c3变量与初始化可以在声明变量的同时赋初值:例如:int x=10,y=20+a;例如:int x(10);也可以先定义变量,后赋值。例如:int x1,y1;x1=10;y1=20;注意: 不能连续赋值。如:int a=b=c=5;是错误的。但可以分别赋值。 在同一个程序块中,不能有两个相同的变量名。 变量赋值时,等号左右两边类型要匹配。表达式是由运算符和各种运算对象(常数、变量、常量等,也称操作数)组合而成。在C+程序中,表达式与我们在数学中学到的类似,是用于计算的式子,是计算求值的基本单位。 C+语言定义了丰富的运算符。运算符给出计算的类型,而参与运算的数据叫操作数。按运算符的运算性质又可分为算术运算符、关系运算符和逻辑运算符等。使用运算符时,要注意以下几点:运算符的功能。如加、减、乘、除等。与操作数的关系,注意操作数的个数和类型。运算符的优先级别。运算符的结合性。第四节 运算符和表达式表2-3 C+中常用运算符的优先级、功能和结合性优先级运算符功能说明要求操作数的个数结合性1( )改变优先级左结合:作用域运算符 数组下标运算符 成员选择* *成员指针选择2*指针运算符1右结合&取地址sizeof求内存字节数!逻辑求反按位求反+ -增1、减1运算符+ -取正、取负运算符3* / %乘法、除法、取余2左结合4+ -加法、减法2左结合5左移位、右移位2左结合6 =小于、大于、小于等于、大于等于2左结合表2-3 C+中常用运算符的优先级、功能和结合性(续表)优先级运算符功能说明要求操作数的个数结合性7= !=等于、不等于2左结合8&按位与2左结合9按位异或2左结合10|按位或2左结合11&逻辑与2左结合12|逻辑或2左结合13?:条件运算符3右结合14= += = *= /= %= &= = |=赋值运算符2右结合15,逗号运算符左结合1基本算术运算符与算术表达式 基本算术运算符有:+(取正或加)、(取负或减)、*(乘)、(除)、%(取余)。其中+(取正)、(取负)是单目运算符,其余是双目运算符。上述运算符与其在数学中的意义、优先级、结合性基本相同,即先进行乘法、除法和求余运算,优先级相同,后执行加法和减法运算,优先级相同。 注意:要求取余运算符(%)的两个操作数必须是整数或字符型数据。 算术表达式是由算术运算符与操作数组成的,其表达式的值是一个数值,表达式的类型由运算符和操作数共同确定。【例2.1】基本算术表达式的计算。#includevoid main()int i=4,j=5,k=6;int x;x=i+j-k;coutx=xendl; /输出x=3x=(i+j)*k/2;coutx=xendl; /输出x=27x=25*4/2%k;coutx=xendl; /输出x=2double y=2.5;couty=y-(y+0.5)*2endl; /输出y= -3.5运行程序后,输出结果为:x=3x=27x=2y= -3.52增1、减1运算符及表达式 增1、减1运算符都是单目运算符,这两个运算符都有前置和后置两种形式。前置形式是指运算符在操作数的前面,后置是指运算符在操作数的后面。例如:i+; /+后置j; /前置注意:增1、减1运算符只能用于变量,不能用于常量和表达式。增1、减1运算符的结合方向是自右向左,如表达式-i+中运算符“-”和“+”优先级相同,结合方向是自右向左,即表达式可以理解为-(i+)。增1、减1运算符在很多情况下的使用可能会出现歧异,从而产生意想不到的结果。 【例2.2】增1、减1表达式的计算。#includevoid main()int i,j,k,m,n;i=4;j=i+;couti=itj=jendl;i=4;k=+i;couti=itk=kendl; i=4;m=i-;couti=itm=mendl;i=4;n=-i;couti=itn=nendl;运行程序后,输出结果为:i=5 j=4i=5 k=5i=3 j=4i=3 k=3 关系运算符: 关系运算符用于比较两个操作数的大小,其比较的结果是一个布尔型的值。当两个操作数满足关系运算符指定的关系时,表达式的值为true,否则为false。 在C+语言中,关系运算符都是双目运算符,共6个:(小于)、(大于)、=(大于或等于)、= =(等于)、!=(不等于)。其中前4种的优先级高于后2种。 C+语言中虽然有布尔类型,但它仍然继承了C语言的规定,true等于1,false等于0。所以,关系运算符的比较结果可以作为算术运算中的操作数。例如:表达式2 = 3的结果为0(false)。 在使用关系运算符时还应注意以下几点:不要把关系运算符“= =”误用为赋值运算符“=”。也不要将不等于运算符“!=”写成其他语言中的不等于运算符“”。a=60的意思是a的ASCII码值与60比较大小。对于数学中表示“x大于等于5,且x小于等于20”的数学关系式5x20,正确的表达式应该是:5 = x & x = 20 关系表达式是由关系运算符和操作数组成,表达式的值都是1(true)或0(false)。经常出现在条件语句和循环语句中,用于决定问题的执行方法。【例2.3】关系表达式的计算。#includevoid main()int i=4,j=5;coutj)endl; cout=j)endl; cout(ij)endl; cout(i=j)endl; cout(i=j)endl; cout(i!=j)endl; 运行程序后,输出结果为:001101return逻辑运算符与逻辑表达式:1逻辑运算符 逻辑运算符共有3个:1个单目运算符!(逻辑求反),2个双目运算符&(逻辑与)和|(逻辑或)。 注意: 在三个运算符中,逻辑非的优先级最高,逻辑与次之,逻辑或最低。 关系运算和逻辑运算的结果若为真,其值为1;若为假,其值为0。aba&ba|b0000010110011111表2-3 逻辑值的逻辑运算结果2逻辑表达式 逻辑表达式由逻辑运算符与操作数组成,表达式的值都应是1(true)或0(false)。【例2.4】逻辑表达式与关系表达式的计算#includevoid main()int x=3,y=5,z;z=(x0)|(y10);coutz=zendl; /输出z=1,表示truez=(x=0)&(y10);coutz=zendl; /输出z=0,表示falsez=!(x=3);coutz=zendl; /输出z=0,表示false赋值运算符:C+中的赋值运算符分为两种:简单赋值运算符和复合赋值运算符。1简单赋值运算符“=” 其表达式的一般形式为:变量 = 表达式2复合赋值运算符 如果以#表示数值型运算符,则复合赋值表达式的一般形式为: 变量 #= 表达式 该表达式等价于: 变量 = 变量 # 表达式例如: a += 5 等价于 a = a+5 m %=7 等价于 m = m % 7 复合赋值运算符的优先级和赋值运算符相同,结合性也相同,都为右结合。3赋值表达式 赋值表达式由赋值运算符与操作数组成。赋值表达式的作用就是把赋值运算符右边表达式的值赋给左边的变量。赋值表达式的类型为左边变量的类型,其值为赋值后左边变量的值。在C+语言中还可以连续赋值。【例2.5】赋值表达式的应用。#includevoid main()int m=3,n=4,k;k=m+ - -n;coutk=kendl;char x=m,y=n;int z;z=yx;coutz=zendl;z=(y=x+1);coutz=zendl;z=(y!=Y);coutz=zendl;int a=1,b=3,c=5;a+=b*=c-=2;couta=a,b=b,c=c b ? a : b2逗号运算符 由逗号运算符构成的表达式称为逗号表达式,其一般形式为: 表达式1,表达式2,表达式n 逗号表达式的执行规则是从左到右,逐个表达式执行,最后一个表达式的值是该逗号表达式的值。 注意:逗号运算符“,”的优先级最低。 例如,表达式“a=3,a+l,a*a”的结果为9。 表达式中数据类型的转换:1. 隐含转换 当操作数的类型不一致时,表达式的类型就取决于操作数中类型最高的操作数类型,C+语言将自动进行类型转换,隐含转换的示意图如图2-3所示,其转换规则如下:注意:隐含转换是由编译系统自动完成的,它实际并不改变操作数的数据类型,只是在计算表达式值时,临时改变操作数的数据类型,计算完成后,操作数仍保持原有的数据类型。2. 强制转换 强制转换的作用是将表达式的类型强制转换成指定的数据类型。 其一般形式为: 数据类型(表达式)或 (数据类型)表达式 例如: double(a) /将a强制转换成double型 float(5%3) /将5%3的结果转换成float型 注意:如果将高类型转换成低类型,会造成数据精度的损失。因此,这是一种不安全的类型转换。 第五节 控制语句C+语句概述:1表达式语句 表达式语句是由一个表达式加上分号组成。例如: int i; /将i声明为整型变量的语句 a=3*4+5; /赋值语句2复合语句 复合语句也称块语句,是由两条或两条以上的语句组成,并用“ ”括起来的语句。复合语句在语法上相当于一条语句。 注意:在复合语句的右括号后不再需要分号。3控制语句 控制语句通常包括选择语句、循环语句和转移语句。4空语句语句 空语句只有一个分号,它不作任何操作,常用在需要一条语句而又不需要任何操作的地方,如循环语句中。 选择语句:1if语句if语句用来有条件地执行某一语句系列。if语句主要有3种语法格式:(1)简单if语句格式:if(表达式) 语句; 功能:首先计算表达式的值,如果表达式的值不为0,表示条件判定为真,花括号内的语句将被执行;否则,将执行后面的语句。其中的表达式一般是关系表达式,并且表达式必须用()括起来。语句可以是一条语句,也可以是多条语句。如果只有一条语句,则 可以省略。【例2.7】简单if语句的应用。#include void main() float score;coutPlease enter your score:score;if (score=60)coutPassed!endl;if (score60)coutNo passed!endl;coutYou should do your best to studyendl;运行程序后,屏幕上输出显示:Please enter your score:提示用户输入成绩,当用户输入成绩信息后,程序会根据用户的输入,输出显示相应的信息。如输入70,则显示:Passed!(2)两分支if语句格式:if(表达式) 语句1;else 语句2; 功能:首先计算表达式的值,如果表达式条件判定为真,则执行语句1,否则将执行语句2。该格式的流程图如图2-5所示。 【例2.8】利用两分支if语句改写例2.7。#include void main() float score;coutPlease enter your score:score;if (score=60)coutPassed!endl;elsecoutNo passed!endl;cout You should do your best to studyendl;(3)多分支if语句格式:if(表达式1) else if(表达式2) else if(表达式3) else if(表达式n) else 功能:首先计算表达式1的值,如果表达式1条件判定为真,则执行语句1,否则判定表达式2,如果条件判定为真,则执行语句2,依此类推,直到所有的表达式条件均不满足,此时将执行语句n+1。该格式实际上提供了多重条件选择。该格式的流程图如图2-6所示。 【例2.9】利用多分支if语句比较两个数的大小。#include void main() int x,y;coutPlease input x,y:xy;if (x=y) coutx=yy)coutyendl;else coutxyendl;程序执行后,屏幕上输出显示:Please input x,y:计算机提示用户输入两个x和y的值。当用户输入后,计算机将显示相应的判断结果。例如,输入1和2后将显示“xy”的判断结果。 (4)if语句的嵌套 三种if语句之间可以实现嵌套。通常为了不破坏程序的可读性,嵌套的层次一般不超过两层。【例2.10】利用if语句的嵌套改写例2.9。#include void main() int x,y;coutPlease input x,y:xy;if (x!=y)if (xy)coutyendl;elsecoutxyendl;elsecoutx=yendl;2switch语句switch语句又称开关语句,其语法格式为:switch(表达式M)case 常量表达式M1:语句1;case 常量表达式M2:语句2; case 常量表达式Mn:语句n; default:语句Mn+1; 其中,switch、case和default是关键字,常量表达式通常为整型数值和字符常量,语句1、语句2、语句n是由1条或多条语句组成的语句段,也可以是空语句。如果是多条语句,可以用花括号括起来。 switch语句的执行过程是:首先计算switch语句中的表达式,然后按先后顺序将得到的结果与case中的常量表达式的值进行比较。如果两者相等,程序就转到相应case处开始顺序执行。如果没有找到相匹配的结果,就从default处开始执行。如果没有default,则转到switch语句后面的语句。如果希望switch语句在执行完某一case后面的语句后,不再执行其后面的case和default分支,就需要在每个case的末尾加上一条break语句,表示跳出switch语句。加break语句的switch语句流程图如图2-7所示。 【例2.11】根据考试成绩的等级给出百分制分数段。#include void main() char grade;cout请输入成绩:grade;if (grade=a & grade=z) grade-=32; /若输入小写字母,则转化为大写字母 switch(grade) case A :cout90100 endl; case B :cout8089 endl; case C :cout7079 endl; case D :cout6069 endl; case E :cout60分以下 endl; default:coutInput error!endl; 运行程序后,屏幕上将显示字符串“请输入成绩:”。假设输入B后,将输出结果:80897079606960分以下Input error!显然,这样的输出结果是不符合题目原意的,原因就在于没有用break语句作为每个case的结束语句。现修改例2.11程序如下:switch(grade)case A :cout90100 endl;break;case B :cout8089 endl; break;case C :cout7079 endl; break; case D :cout6069 endl; break; case E :cout60分以下 endl; break; default:coutInput error!endl; 再运行程序,然后输入成绩B,将输出结果:8089循环语句:在程序设计中经常遇到需要重复执行的操作,这些操作可以使用循环语句来实现。循环语句使得程序在给定条件满足时,能够重复地执行某些操作。C+语言提供了3种循环语句:while循环语句、do-while循环语句和for循环语句。 1while循环语句while循环语句的语法形式为: while(表达式) 循环体;其中,while是关键字,表达式可以是C+语言中任何合法的表达式,它用来判断执行循环体的条件,根据循环条件决定是否执行循环体。循环体由语句组成,可以是一条语句,也可以是多条语句。while循环执行过程示意图如图2-8所示。表达式循环体真假图2-8 while循环执行过程注意: 如果循环体有多个语句时,要用大括号把它们括起来,以复合语句形式出现。 在使用循环语句时,一定要设法改变循环变量,使之在有限次循环之后能满足循环终止条件而结束循环。 【例2.12】编程计算1100之和。#include void main() int i=1,sum=0
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 山西2025自考数字戏剧三维动画基础案例题专练
- 宁夏2025自考生物育种技术种子生产与检验案例题专练
- 数字基础设施强化制造碳排放监控
- 河北2025自考行政管理行政法与行政诉讼法一案例题专练
- 宁夏2025自考学前教育学前比较教育考前冲刺练习题
- 2025年灭火演练考试题目及答案
- 浙江2025自考工程造价英语二模拟题及答案
- 第二单元第四节4.《用“图片”文件制作插图》说课稿 2024-2025学年粤教版(2007)初中信息技术七年级上册
- 海南2025自考法学合同法选择题专练
- 六级阅读模拟试题及答案
- 中间继电器常见故障课件
- 催化重整课件
- 内蒙古自治区矿山地质环境治理工程预算定额标准
- 《中华人民共和国医师法》题库(答案+解析)
- 消化内科临床路径(15个,2025年版)
- 加油站现场安全管理课件
- 设计审美培训课程
- 心肌梗死护理查房
- 反恐安全培训试题及答案
- T/CADBM 62-2022多元镁轻质无机板
- 销售业务外包合作协议范本7篇
评论
0/150
提交评论