书签 分享 收藏 举报 版权申诉 / 404
上传文档赚钱

类型全套课件-C++面向对象程序设计(第二版).ppt

  • 上传人(卖家):三亚风情
  • 文档编号:3199137
  • 上传时间:2022-08-01
  • 格式:PPT
  • 页数:404
  • 大小:4.83MB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《全套课件-C++面向对象程序设计(第二版).ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    全套 课件 C+ 面向 对象 程序设计 第二
    资源描述:

    1、C+面向对象程序设计(第二版)C+面向对象程序设计(第二版)第一章 面向对象程序设计概述 2022年7月19日星期二C+面向对象程序设计第一章 面向对象程序设计概述 1.1 面向对象的基本概念 1.2 C+面向对象程序设计 1.3 C+程序的基本组成 1.4 Visual C+6.0开发环境2022年7月19日星期二C+面向对象程序设计1.1 面向对象的基本概念 面向对象程序设计的本质是把数据及对数据的操作方法放在一起,作为一个相互依存、不可分离的整体对象。对同类型对象抽象出其共性,形成类。2022年7月19日星期二C+面向对象程序设计1.1 面向对象的基本概念 面向对象程序设计方法具有4个基

    2、本特征:抽象、封装、继承和多态性。抽象(abstract)就是忽略事物的非本质特征,只注意那些与当前目标有关的本质特征,从而找出事物的共性,把具有共同性质的事物划分为一类,得出一个抽象的概念。面向对象方法中的“类”将具有相同属性和行为的一组对象提供了抽象的描述,一个属于某类的对象称为该类的一个实例。2022年7月19日星期二C+面向对象程序设计1.1 面向对象的基本概念 封装(encapsulation)就是把每个对象的数据(属性)和操作(行为)包装在一个类中,并尽可能隐藏对象的内部细节。一般限制直接访问对象的属性,而应通过操作接口访问,这样使程序中模块之间关系更简单、数据更安全。对程序的修改

    3、也仅限于类的内部,使得由于修改程序所带来的影响局部化。2022年7月19日星期二C+面向对象程序设计1.1 面向对象的基本概念 多态性(polymorphism)是指允许不同类的对象对同一消息作出的响应不相同。一般类中定义的属性或行为,被特殊类继承后,可以具有不同的数据类型或者是表现出不同的行为。这使得同一个属性或行为在一般类及其各个特殊类中具有不同的语义 2022年7月19日星期二C+面向对象程序设计1.1 面向对象的基本概念 通过使用面向对象程序设计的抽象、封装、继承和多态性等机制,程序更易于维护、更新和升级。利用代码可重用性,程序员可以在程序中大量使用成熟的类库,从而缩短程序的开发时间,

    4、提高程序员的工作效率和程序的可靠性。2022年7月19日星期二C+面向对象程序设计1.2 C+面向对象程序设计 本书介绍的主要就是使用最为广泛的C+语言和使用C+语言进行面向对象程序设计的方法。在学习编程之前,我们首先来简单了解以下C+程序的开发过程。2022年7月19日星期二C+面向对象程序设计1.2 C+面向对象程序设计 程序的开发通常要经过编辑、编译、连接、运行调试这几个步骤。编辑是将源程序输入到计算机中,生成后缀为.cpp的磁盘文件。编译(compile)是将程序的源代码转换成机器语言代码。程序员编制的源程序被编译后,会生成一个目标文件,这个文件通常以.obj作为文件扩展名,该目标文件

    5、为源程序的目标代码。2022年7月19日星期二C+面向对象程序设计1.2 C+面向对象程序设计 但是编译后的程序还不能由计算机执行,因为目标代码只是一个个的程序块,需要相互衔接成为一个适应一定操作系统环境的程序整体。为了把它转换成可执行程序,必须进行连接(link)。C+程序通常是通过同时连接一个或多个目标文件以及一个或几个库而创建的。2022年7月19日星期二C+面向对象程序设计1.2 C+面向对象程序设计 库(.lib)是一组由机器指令构成的程序代码,是可连接文件。库有标准库和用户生成的库。标准库是由C+提供的,用户生成的库是由软件开发商或程序员提供的。文件与库连接的结果,即生成一个后缀为

    6、.exe的计算机可执行程序。2022年7月19日星期二C+面向对象程序设计1.3 C+程序的基本组成 我们就从最简单的例子来分析C+程序的构成:#include using namespace std;void main()cout Hello,World!n;cout Im a student.n;2022年7月19日星期二C+面向对象程序设计1.3 C+程序的基本组成 程序运行结果为:Hello,World!Im a student.2022年7月19日星期二C+面向对象程序设计1.3 C+程序的基本组成t一个C+程序是由三部分组成的,分别是:注释部分、编译预处理和程序主体。l程序的注释部

    7、分是程序员为读者作的说明,是提高程序可读性的一种方法。l每个以符号“#”开头的行,称为编译预处理行。如本例中“#include”称为编译指令。2022年7月19日星期二C+面向对象程序设计1.3 C+程序的基本组成l在程序的主体部分中,main是主函数名,函数是C+程序中最小的功能单位,每一个C+程序都必须有一个main()函数,并且main()表明了程序执行的开始点。2022年7月19日星期二C+面向对象程序设计1.3 C+程序的基本组成 每一种编程语言都使用一组字符来构造成编程语句。用C+语言编写程序时,除了字符型数据以外,其它所有成分都只能由字符集中的字符构成。C+语言的字符集由下列字符

    8、构成:2022年7月19日星期二C+面向对象程序设计1.3 C+程序的基本组成26个大写英文字母:ABCDEFGHIJKLMNOPQRSTUVWXYZ26个小写英文字母:abcdefghijklmnopqrstuvwxyz10个数字字符:0 1 2 3 4 5 6 7 8 9特殊字符:+-*/=,._ :;?!#%&()空格2022年7月19日星期二C+面向对象程序设计1.3 C+程序的基本组成t词法记号是最小的词法单元,接下来介绍C+的关键字、标识符、文字、运算符、分隔符、空白符。l关键字C+中,关键字又称保留字,它是预先定义好的标识符,这些标识符对C+编译程序有着特殊的含义。2022年7月

    9、19日星期二C+面向对象程序设计1.3 C+程序的基本组成l标识符标识符是程序员声明的单词,它命名程序正文中的一些实体,如函数名、变量名、类名、对象名等。l文字文字是在程序中直接使用符号表示的数据,包括数字、字符、字符串和布尔文字。l操作符(运算符)操作符是用于实现各种运算的符号。2022年7月19日星期二C+面向对象程序设计1.3 C+程序的基本组成l分隔符 分隔符用于分隔各个词法记号或程序正文,这些分隔符不表示任何实际的操作,仅用于构造程序。l空白 在程序编译时的词法分析阶段将程序正文分解为词法记号和空白。空白是空格、制表符、换行符和注释的总称。2022年7月19日星期二C+面向对象程序设

    10、计1.4 Visual C+6.0开发环境 Visual C+6.0是微软公司推出的一个功能强大的可视化软件开发工具。Visual C+6.0不仅是一个C+编译器,它还有一个非常好的集成开发环境Developer Studio,包括编辑器编译器、调试器以及程序向导等组件,用它可以在编写C+程序时对程序的结构进行可视化的管理。2022年7月19日星期二C+面向对象程序设计1.4 Visual C+6.0开发环境 本节简单介绍Visual C+6.0集成开发环境的特点、界面风格和简单工具的使用。安装完Visual C+6.0后,从Windows的“开始|程序”菜单中选择Microsoft Visu

    11、al Studio 6.0菜单中的Microsoft Visual C+6.0菜单项,就启动了Visual C+集成开发环境,出现集成开发环境的主窗口Developer Studio。2022年7月19日星期二C+面向对象程序设计1.4 Visual C+6.0开发环境 下面通过实例说明如何利用Visual C+6.0创建一个C+程序。l启动Visual C+6.0,打开File菜单,执行New菜单命令,出现New对话框,如图1-1所示。在Project页面窗口中选择Win32 Console Application选项,创建一个Win32控制台应用程序。在Project name编辑框中输入

    12、项目名称Hello,在Location编辑框中输入保存项目的路径。2022年7月19日星期二C+面向对象程序设计1.4 Visual C+6.0开发环境图1-1 创建一个Win32控制台应用程序2022年7月19日星期二C+面向对象程序设计1.4 Visual C+6.0开发环境l在Win32 Console Application-Step1 of 1对话框中设置控制台应用程序的类型,如图1-2所示。这里我们要创建一个空项目程序,因此选择第一项An empty project,单击Finish按钮,出现New Project Information对话框,单击OK按钮,将生成一个空项目。20

    13、22年7月19日星期二C+面向对象程序设计1.4 Visual C+6.0开发环境图1-2 设置控制台应用程序的类型 2022年7月19日星期二C+面向对象程序设计1.4 Visual C+6.0开发环境l向项目Hello中添加源程序文件。打开Project菜单,选择Add to Project|New,出现如图1-3所示的添加项目文件对话框。在的Files页面窗口中选择C+Source File,在右边的File编辑框中输入C+源程序文件名称Hello,在Location编辑框中输入保存该文件的路径。单击OK按钮,在主窗口Developer Studio左边的项目工作区窗口的Souce Fi

    14、les文件夹目录下出现Hello.cpp文件,双击该文件,在右边的编辑窗口中输入例1-1的源程序代码。2022年7月19日星期二C+面向对象程序设计1.4 Visual C+6.0开发环境图1-3 添加项目文件2022年7月19日星期二C+面向对象程序设计1.4 Visual C+6.0开发环境l编译运行源程序Hello.cpp。打开Build菜单,选择Build Hello.exe命令项或按快捷键F7,系统开始对项目Hello进行编译、连接,同时在输出窗口中显示出编译的内容,当出现Hello.exe 0 error(s),0 warning(s)字样时,表示Hello.exe可执行文件已经正

    15、确无误地生成了,如图1-4所示。在Build菜单中选取Execute Hello.exe命令项或按快捷键Ctrl+F5,就可以运行刚刚生成的Hello.exe。2022年7月19日星期二C+面向对象程序设计1.4 Visual C+6.0开发环境图1-4 Hello项目Developer Studio窗口2022年7月19日星期二C+面向对象程序设计1.4 Visual C+6.0开发环境lMSDN帮助系统。除了有关Visual C+6.0 IDE具体操作说明的联机帮助文件,Microsoft Visual Studio还提供了MSDN Library(Microsoft developer

    16、network library)组件。MSDN帮助系统是一个HTML格式的帮助文件,它所包含的内容非常丰富,包含了有关Visual Studio的编程原理、方法和应用实例等内容。并且使用MSDN时可以通过访问微软网站“http:/”获得有关MSDN的最新信息。2022年7月19日星期二C+面向对象程序设计1.4 Visual C+6.0开发环境l用户通过选择Help菜单下的Contents命令或Search工具栏按钮就可以进入MSDN帮助系统,也可单击F1键快速获取相关内容的帮助。图1-5是MSDN Library是一般界面。2022年7月19日星期二C+面向对象程序设计1.4 Visual

    17、C+6.0开发环境图 1-5 MSDN帮助系统C+面向对象程序设计(第二版)第二章 C+语言基础2022年7月19日星期二C+面向对象程序设计第二章 C+语言基础 2.1 数据类型和基本输入输出 2.2 运算符和表达式 2.3 基本控制结构 2.4 函数 2.5 构造类型 2.6 指针 项目设计1 控制台程序的人机界面设计2022年7月19日星期二C+面向对象程序设计2.1 数据类型和基本输入输出 2.1.1 基本数据类型 2.1.2 常量 2.1.3 变量 2.1.4 基本输入、输出2022年7月19日星期二C+面向对象程序设计2.1.1 基本数据类型 基本数据类型是C+系统的内部数据类型,

    18、包括bool(布尔型)、int(整型)、char(字符型)、float(单精度浮点型)、double(双精度浮点型)以及基本数据类型中short(短型)和long(长型)、signed(有符号)和unsigned(无符号)之分。+的数据类型如下图所示:2022年7月19日星期二C+面向对象程序设计2.1.1 基本数据类型 2022年7月19日星期二C+面向对象程序设计2.1.1 基本数据类型 使用基本数据类型要注意两点:无符号(unsigned)和有符号(signed)的区别在于数值最高位的含义。int型在16位系统中和在32位系统中,所占用字节数是不一样的。2022年7月19日星期二C+面向

    19、对象程序设计2.1.2 常量 所谓常量是指在程序运行的整个过程中其值始终不可改变的量,也就是直接使用符号(文字)表示的值。例如10,-6,2.3,-5.7,A,b都是常量。整型常量 整型常量就是整型常数。整型常量可以用以下三种形式表示:十进制整数:十进制整数没有前缀。例如:237、-568、65535、16272022年7月19日星期二C+面向对象程序设计2.1.2 常量 八进制整数:八进制整数要以数字0开头,即以0作为八进制数的前缀。例如:015(十进制为13)、0101(十进制为65)、0177777(十进制为65535)十六进制整常数:十六进制整数要以数字0 x或0X开头,即以0 x作为

    20、十六进制数的前缀。例如:0X2A(十进制为42)、0XA0(十进制为160)、0XFFFF(十进制为65535)实型常量 实型常量也称为实数或者浮点数。实数只采用十进制,它有二种形式:小数形式和指数形式。2022年7月19日星期二C+面向对象程序设计2.1.2 常量 十进制数的形式:由数码09和小数点组成。例如:0.0、25.0、5.789、0.13、300.、-267.8230等均为合法的实数。注意,实型常量中必须含有小数点。指数形式:由十进制数,加阶码标志“e”或“E”以及阶码(只能为整数,可以带符号)组成。例如:2.1E5(等于2.1105)、3.7E-2(等于3.710-2)、-2.8

    21、E-2(等于-2.810-2)实型常量默认都按双精度double型处理。但可以添加后缀“f”或“F”即表示该数为单精度浮点数。2022年7月19日星期二C+面向对象程序设计2.1.2 常量 字符常量 字符常量是用单引号括起来的一个字符。例如:a、b、=、+、?。有以下特点:字符常量只能用单引号括起来,不能用双引号或其它括号。字符常量只能是单个字符,不能是字符串。字符可以是字符集中任意字符。但数字被定义为字符型其含义就发生了变化。如5 和5 是不同的。2022年7月19日星期二C+面向对象程序设计2.1.2 常量 转义字符是一种特殊的字符常量。转义字符以反斜线“”开头,后跟一个或几个字符。转义字

    22、符具有特定的含义,不同于字符原有的意义,故称“转义”字符。例如,“n”就是一个转义字符,其意义是“回车换行”。转义字符主要用来表示那些用一般字符不便于表示的控制代码。广义地讲,字符集中的任何一个字符均可用转义字符来表示。字符串常量2022年7月19日星期二C+面向对象程序设计2.1.2 常量 字符串常量是由一对双引号括起的字符序列。例如:“CHINA”,“C program”,“$12.5”等都是合法的字符串常量。字符串常量和字符常量是不同的量。它们之间主要有以下区别 字符常量由单引号括起来,字符串常量由双引号括起来 字符常量只能是单个字符,字符串常量则可以含一个或多个字符 字符常量占一个字节

    23、的内存空间。字符串常量占的内存字节数等于字符串中字节数加1。增加的一个字节中存放字符“0”(ASCII码为0)。这是字符串结束的标志。2022年7月19日星期二C+面向对象程序设计2.1.2 常量 布尔常量 布尔型常量只有两个:true(真)和false(假)。符号常量 除了前面讲过的直接用文字表示常量外,也可以为常量命名,这种代替常量本身的标识符称为符号常量。C+中用const定义符号常量。符号常量在使用之前一定要首先声明,常量声明语句的形式为:const 数据类型说明符 常量名=常量值;2022年7月19日星期二C+面向对象程序设计2.1.2 常量 符号常量在声明时一定要赋初值,而在程序中

    24、间不能改变其值。2022年7月19日星期二C+面向对象程序设计2.1.3 变量 在程序的执行过程中其值可以变化的量称为变量,变量是需要用名字来标识的。变量的定义 就像常量具有各种类型一样,变量也具有相应的类型。变量在使用之前需要首先声明其类型和名称。变量名应是合法的标识符。变量声明语句的形式如下:;2022年7月19日星期二C+面向对象程序设计2.1.3 变量 变量的初始化 在声明一个变量的同时,也可以给它赋以初值,而这实质上就是给对应的内存单元赋值,这一过程称为初始化。例如:int a=3,b=5;/指定a,b为整型变量,a的初值为3,b的初/值为5 C+中变量的初始化还有另一种形式,例如:

    25、int a(3),b(5);需要注意的是,一个未初始化的变量不是没有数值,而是取决于变量所在系统中的存储形式,它可能是系统的默认值或无效值。2022年7月19日星期二C+面向对象程序设计2.1.4 基本输入、输出 C+中使用标准输入流cin和标准输出流cout来实现数据的输入与输出。输出流(cout)通过cout可以输出一个整数、实数、字符及字符串,cout中的插入符“”可以连续写多个,每个后面可以跟一个表达式,该表达式通常是获得输入值的变量或对象。2022年7月19日星期二C+面向对象程序设计2.2 运算符和表达式 2.2.1 算术运算符和算术表达式 2.2.2 赋值运算符和赋值表达式 2.

    26、2.3 逗号运算符和逗号表达式 2.2.4 关系运算符和关系表达式 2.2.5 逻辑运算符和逻辑表达式 2.2.6、与sizeof运算符 2.2.7 位运算符 2.2.8 三目运算符2022年7月19日星期二C+面向对象程序设计2.2 运算符和表达式 2.2.9 运算符的优先顺序 2.2.10 运算式中的类型转换2022年7月19日星期二C+面向对象程序设计2.2.1 算术运算符和算术表达式 C+中由算术运算符、操作数和括号构成的表达式称为算术表达式。C+中基本算术运算符有:+(加法),(减法或负号),*(乘法),/(除法),%(求余)。这些算术运算符和数学运算的概念及运算方法是一致的,但有几

    27、点需要说明:“”减法运算,即是双目运算符又是单目运算符,作单目运算符时,是求负运算,例如:-5,-x等。2022年7月19日星期二C+面向对象程序设计2.2.1 算术运算符和算术表达式“/”除法运算,当参与相除运算的两个操作数均为整型时,其结果也为整型,取商的整数部分,舍去小数,因此表达式1/2的结果为0。如果两个操作数中有一个是实型,则结果为双精度实型。“%”求余运算,要求参与运算的操作数均为整型。例如:表达式a%b,其值等于两数相除后的余数,即a被b除的余数,符号与a相同。优先级和结合性。在一个包含多种算术运算的混合运算中,先乘除、后加减的运算规则是由运算符的优先级来保证的;在算术运算符中

    28、,除单目运算符外,其余运算符的结合性都是自左向右。2022年7月19日星期二C+面向对象程序设计2.2.2 赋值运算符和赋值表达式 C+中赋值运算符“=”是一个双目运算符,运算的结合性为自右向左。带有赋值运算符的表达式被称为赋值表达式,其作用就是将赋值符右边表达式的值赋给左边的操作数。例如,x=a+b就是一个赋值表达式。在赋值符“=”之前加上其它双目运算符可构成复合赋值符。C+提供了10种复合赋值运算符:+=,=,*=,/=,%=,=,&=,=,|=。例如:a+=5 等价于a=a+52022年7月19日星期二C+面向对象程序设计2.2.3 逗号运算符和逗号表达式 在语言中逗号“,”也是一种运算

    29、符,称为逗号运算符。逗号运算符是优先级最低的运算符。其形式为:表达式1,表达式2,表达式n 在计算时,C+将自左向右逐个计算每个表达式,最终整个表达式的结果是最后计算的那个表达式的类型和值。例如:j=(i=12,i+8)/表达式值为20 2022年7月19日星期二C+面向对象程序设计2.2.4 关系运算符和关系表达式 比较两个量的运算符称为关系运算符。关系运算符将两个数据进行比较,判定两个数据是否符合给定的关系。例如,“x y”中的“”表示一个大于关系运算。C+提供了6种关系运算符:(小于),(大于),=(大于等于),=(等于),!=(不等于)。2022年7月19日星期二C+面向对象程序设计2

    30、.2.4 关系运算符和关系表达式 有几点需要注意“等于”关系运算符是两个等号“=”,而不是一个等号“=”(赋值运算符)。在6个关系运算符中,前4个优先级相同,后2个也相同,且前4个高于后2个。关系运算符的优先级,低于算术运算符,但高于赋值运算符。用关系运算符将两个表达式连接起来,进行关系运算的式子就是关系表达式。2022年7月19日星期二C+面向对象程序设计2.2.4 关系运算符和关系表达式 关系表达式的值为逻辑值即“真”或“假”。在C+编译系统中,往往将“真”表示为“true”或1,将“假”表示为“false”或0。而任何不为0的数被认为是“真”,0被认为是“假”。例如设x1=1,x2=2,

    31、x3=3,则:(x1x2)!=x3 /表达式为1。2022年7月19日星期二C+面向对象程序设计2.2.5 逻辑运算符和逻辑表达式 逻辑运算符用于将多个关系表达式或逻辑量(“真”或“假”)组成一个逻辑表达式。C+提供了下列三种逻辑运算符:&逻辑与|逻辑或 !逻辑非 例如,下面的表达式都是逻辑表达式:(x=1&(x2),(x5),!(x=0)2022年7月19日星期二C+面向对象程序设计2.2.5 逻辑运算符和逻辑表达式 逻辑运算符的运算规则如下:&:双目运算符,当且仅当两个操作数的值都为“真”时,运算结果为“真”,否则为“假”。等价于“同时”的含义。|:双目运算符,当且仅当两个操作数的值都为“

    32、假”时,运算结果为“假”,否则为“真”。等价于“或者”的含义。!:单目运算符,当操作数的值为“真”时,运算结果为“假”;当操作数的值为“假”时,运算结果为“真”。等价于“否定”的含义。例如,设x=5,则(x=0)&(x25)的值为“真”,(x5)的值为“假”。2022年7月19日星期二C+面向对象程序设计2.2.5 逻辑运算符和逻辑表达式 逻辑运算符的优先级如下:逻辑非的优先级最高,逻辑与次之,逻辑或最低,即:!(非)&(与)|(或)与其它种类运算符的优先关系:!算术运算 关系运算&|赋值运算 2022年7月19日星期二C+面向对象程序设计2.2.6、与sizeof运算符 自增、自减运算符 单

    33、目运算符自增(+)和自减()的作用是使整型变量的值增1或减1。这两个运算符都有前置和后置两种使用形式。例如:+i 与i+的作用相当于i=i+1;i与i的作用相当于 i=i1。这里需要注意的是:自增(+)和自减()运算符只能用于变量,而不能用于常量或表达式,如3+或(a+b)+都是不合法的。2022年7月19日星期二C+面向对象程序设计2.2.6、与sizeof运算符+和 的结合性是“自右至左”。若自增(+)和自减()仅用于某个变量的增1和减1,则前置和后置两种使用形式是等价的,但如果将自增(+)和自减()和其他运算符组合在一起,则前置和后置两种使用形式在求值次序上就会产生不同:+i,i (在使

    34、用i参与其他运算之前,先使i的值加(减)1)i+,i (在使用i参与其他运算之后,再使i的值加(减)1)2022年7月19日星期二C+面向对象程序设计2.2.6、与sizeof运算符 sizeof运算符 sizeof运算符用于计算操作数在内存中所占的字节数。它使用的语法形式为:sizeof()sizeof()运算结果返回值为“数据类型”所指定的类型或“表达式”的结果类型所占的字节数。例如:sizeof(int)/计算整型int所占内参的字节数 sizeof(hello)/计算字符串常量的实际长度 2022年7月19日星期二C+面向对象程序设计2.2.7 位运算符 位运算符是对操作数按其在计算机

    35、内表示的二进制数逐位地进行逻辑运算或移位运算。C+语言提供了6种位运算:位逻辑运算符“按位与”运算符&运算规则:参加运算的两个操作数,如果两个数相应位的值都是1,则该位的结果值为1,否则为0。例如:如果要保留整数a的低字节,屏蔽掉其高字节,只需要将a和b进行按位与运算即可,其中b的高字节每位置为0,低字节每位置为1,即 00101010 01010010&00000000 11111111=00000000 010100102022年7月19日星期二C+面向对象程序设计2.2.7 位运算符“按位或”运算符|运算规则:参加运算的两个操作数,如果两个数相应位的值都是0,则该位的结果值为0,否则为1

    36、.例如:如果把a的第10位置为1,而且不要破坏其它位,可以对a和b进行“按位或”运算,其中b的第10位置为1,其它位置为0,即 00100000 01010010|00000010 00000000=00100010 01010010 “按位异或”运算符 运算规则:参加运算的两个操作数,如果两个数的相应位的值不同,则该位的结果值为1,否则为0。例如:如要把a的奇数位翻转,可以对a和b进行“按位异或”运算,其中b的奇数位置为1,偶数位置为0,即 00000000 01010010 01010101 01010101=01010101 00000111 2022年7月19日星期二C+面向对象程序设

    37、计2.2.7 位运算符“按位取反”运算符 运算规则:对一个操作数的每一位都取反,即将1变为0,0变为1。移位运算符 左移运算符 运算规则:对运算符左边的操作数的每一位全部左移右边运算量表示的位数,右边空出的位补0。左移1位相当于该数乘以2,左移n位相当于该数乘以2n。例如:char a=0 x21;则a2的过程 001000012=10000100 即 a 运算规则:对运算符左边的运算量的每一位全部右移右边运算量表示的位数,右边低位被移出去舍弃掉,空出的高位补0还是补1,分两种情况 对无符号数进行右移时,空出的高位补0。这种右移称为逻辑右移。例如:unsigned char a=0 x8a;a

    38、:10001010 等于十进制数138 a1:01000101 0 等于十进制数69 补 0 舍弃 对带符号数进行右移时,空出的高位全部以符号位填补。即正数补0,负数补1。这种右移称为算术右移。2022年7月19日星期二C+面向对象程序设计2.2.7 位运算符 例如char a=0 x8a;a:10001010 等于十进制数-118 a1:11000101 0 等于十进制数-59 补 1 舍弃 位赋值运算符 位运算符与赋值运算符结合可以组成位赋值运算符。2022年7月19日星期二C+面向对象程序设计2.2.8 三目运算符 C+中唯一的三目运算符是条件运算符 语法格式为:?:“条件表达式”是C+

    39、中可以产生“真”和“假”结果的任何表达式,如果条件表达式的结果为“真”,则执行表达式1,否则执行表达式2。例如:n=(ab)?1:0;/如果ab成立,则n的 /值为1,否则为02022年7月19日星期二C+面向对象程序设计2.2.9 运算符的优先顺序 运算符优先顺序如下表:2022年7月19日星期二C+面向对象程序设计2.2.9 运算符的优先顺序2022年7月19日星期二C+面向对象程序设计2.2.10 运算式中的类型转换 当表达式中出现了多种类型数据的混合运算时,往往需要进行类型转换。表达式中的类型转换分为两种:自动转换和强制转换。自动转换 自动转换的基本原则是将数据类型按照从低到高的顺序进

    40、行转换。类型越高,数据的表示范围越大,精度也越高,各种类型的高低顺序如下:char、short、int、unsigned、long、unsigned long、float、double2022年7月19日星期二C+面向对象程序设计2.2.10 运算式中的类型转换 自动转换遵循以下规则 若参与运算量的类型不同,则先转换成同一类型,然后进行运算。转换按数据长度增加的方向进行,以保证精度不降低。如int型和long型运算时,先把int量转成long型后再进行运算。所有的浮点运算都是以双精度进行的,即使仅含float单精度量运算的表达式,也要先转换成double型,再作运算。char型和short型参

    41、与运算时,必须先转换成int型。在赋值运算中,赋值号两边量的数据类型不同时,赋值号右边量的类型将转换为左边量的类型。如果右边量的数据类型长度比左边量的数据类型长度长时,将丢失一部分数据,这样会降低精度,丢失的部分按四舍五入向前舍入。2022年7月19日星期二C+面向对象程序设计2.2.10 运算式中的类型转换 强制转换 强制类型转换是通过类型说明符和括号来实现的,其一般形式为:()或()例如:(float)a /把a转换为实型 (int)(x+y)/把x+y的结果转换为整型 2022年7月19日星期二C+面向对象程序设计2.3 基本控制结构 2.3.1 表达式语句、空语句和复合语句 2.3.2

    42、 选择控制语句 2.3.3 循环控制语句 2.3.4 break和continue语句 实训2 程序控制结构的应用 2022年7月19日星期二C+面向对象程序设计2.3.1 表达式语句、空语句和复合语句 顺序结构程序就是由顺序执行语句组成的,程序运行是按照书写的顺序进行,不发生控制转移,所以它是最简单的。表达式语句 表达式语句由表达式后加一个分号构成。例如:a+b;num=3;空语句 空语句仅由一个分号构成。例如:;就是一个空语句 复合语句 复合语句是由一对大括号括起来的两条或两条以上的语句构成的。2022年7月19日星期二C+面向对象程序设计2.3.1 表达式语句、空语句和复合语句 例如:需

    43、要注意的是,在复合语句中定义的变量只作用于该复合语句的范围,而在复合语句外,这些变量却不能被调用。void main()t=x;x=y;y=t;/复合语句 2022年7月19日星期二C+面向对象程序设计2.3.2 选择控制语句 选择结构是用来判断所给定的条件是否满足,并根据判定的结果(真或假)决定哪些语句被执行。用if语句实现选择结构 if语句是专门用来实现选择结构的语句。它根据给定的条件进行判断,以决定执行某个分支程序段。其语法形式为:if ()else 2022年7月19日星期二C+面向对象程序设计2.3.2 选择控制语句 例如:if(xy)max=x;else max=y;if语句中的语

    44、句2可以为空。当语句2为空 时,else可以省略。if语句的嵌套 处理多分支的情况时,C+语言允许在if 或 if else 中的语句1或语句2部分中再使用if或 if else语句,这种设计方法称为嵌套。if语句的嵌套中,else部分总是与前面最靠近的、还没有配对的if配对。2022年7月19日星期二C+面向对象程序设计2.3.2 选择控制语句 例如:比较两个数的大小#include using namespace std;void main()int x,y;coutxy;if(x!=y)if(xy)coutyendl;elsecoutxyendl;elsecoutx=yendl;2022

    45、年7月19日星期二C+面向对象程序设计2.3.2 选择控制语句 如果if语句的嵌套都是发生在else分支中,就可以应用if else if语句。语法形式为:if ();else if();.else if();例如:求分段函数y=f(x)的值,f(x)的表达式如下:x2 1 (x1)2022年7月19日星期二C+面向对象程序设计2.3.2 选择控制语句#include using namespace std;void main()float x,y;coutx;if(x=-1&x=1)y=x*x;else y=x*x+1;coutf(x)=yendl;2022年7月19日星期二C+面向对象程序

    46、设计2.3.2 选择控制语句 switch语句 C+语言提供了直接实现多分支选择结构的语句:switch语句,称为多分支语句,也叫开关语句。switch语句的语法形式如下:switch ()case :语句1;break;case :语句2;break;.case :语句n;break;default:语句 n+1;break;2022年7月19日星期二C+面向对象程序设计2.3.2 选择控制语句 使用switch语句需要注意的是:switch后面的表达式可以是整型、字符型、枚举型,而case后面的常量表达式的类型必须与其匹配。每个case后面常量表达式的值必须各不相同,各case及defau

    47、lt子句的先后次序不影响程序执行结果。每个case分支可以有多条语句,但不必用。case后面的常量表达式仅起语句标号作用,并不进行条件判断。系统一旦找到入口标号,就从此标号开始执行,不再进行标号判断,所以必须加上break语句,以便结束switch语句,否则会从入口点开始一直执行到switch结构的结束点。当若干分支需要执行相同操作时,可以使多个case分支共用一组语句。2022年7月19日星期二C+面向对象程序设计2.3.2 选择控制语句 例如:用switch语句实现计算器的简单功能。#include using namespace std;void main()float x,y;/运算数

    48、char oper;/运算符coutxopery;2022年7月19日星期二C+面向对象程序设计2.3.2 选择控制语句 switch(oper)case+:coutx+y=x+yendl;break;case-:coutx-y=x-yendl;break;case*:coutx*y=x*yendl;break;case/:if(y=0)coutdivisor is zero!n;break;coutx/y=x/yendl;break;default:coutoperator has no effect!n;2022年7月19日星期二C+面向对象程序设计2.3.3 循环控制语句 C+中提供了三

    49、种循环控制语句:while语句、do-while语句和for语句。while语句 while语句的语法形式如下:while ()其中表达式是循环条件,语句为循环体。执行顺序是:先判断表达式的值,当表达式为真时便开始执行while循环体中的语句,然后反复执行,每次执行都会判断表达式是否为真,直到有一次执行循环体后条件表达式的值为假时终止。2022年7月19日星期二C+面向对象程序设计2.3.3 循环控制语句 例如:用while语句求100以内的奇数之和。#include using namespace std;void main()int i=1,sum=0;while(i=100)sum+=i

    50、;i+=2;coutsum=sumendl;2022年7月19日星期二C+面向对象程序设计2.3.3 循环控制语句 使用while语句需要注意的有:如果循环体有多个语句时,要用大括号把它们括起来,以复合语句形式出现。循环体中必须有修改条件表达式的语句,可以使条件由成立转为不成立,从而结束循环。否则如果开始时条件为真,就会永远为真,使循环体永远重复执行下去,称为“死循环”。do-while语句 do-while语句的语法形式如下:do while ();执行顺序是:先执行循环中的语句,然后再判断表达式是否为真,如果为真则继续循环;如果为假,则终止循环。因此,do-while循环至少要执行一次循环

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:全套课件-C++面向对象程序设计(第二版).ppt
    链接地址:https://www.163wenku.com/p-3199137.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


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

    163文库