第7章_ppt.txt

大学VISUAL C++程序设计-王永国-课件PPT

收藏

资源目录
跳过导航链接。
压缩包内文档预览:
预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图
编号:21836328    类型:共享资源    大小:4.17MB    格式:ZIP    上传时间:2019-09-06 上传人:QQ24****1780 IP属地:浙江
25
积分
关 键 词:
大学VISUAL C++程序设计-王永国-课件PPT 大学 visual C++ 程序设计 王永国 课件 ppt
资源描述:
大学VISUAL C++程序设计-王永国-课件PPT,大学VISUAL,C++程序设计-王永国-课件PPT,大学,visual,C++,程序设计,王永国,课件,ppt
内容简介:
1,Visual C+程序设计课件,主讲: 王永国 E-Mail: 安徽大学数学科学学院 2008.9,2,3,学习方式, 听课 (多媒体、启发式、讨论式) 读书 (预习、复习) 报告 (综合练习),考试成绩,课程成绩 (考勤+作业+笔试) 实验成绩 (考勤+实验报告+上机考试),4,第1章 Visual C+概述 第2章 数据类型、运算符和表达式 第3章 结构化程序设计 第4章 数组、字符串和指针 第5章 函数 第6章 面向对象程序设计基础 第7章 Visual C+可视化编程基础,目 录,5,第1章 Visual C+概述,1.1 C+语言的发展与特点 1.2 简单的C+程序 1.3 C+基本语法成分 1.4 基本输入输出 1.5 Visual C+简介,6,1.1 C+语言的发展与特点,1.1.1 C+语言的发展,C+起源于C语言。C语言是1972年由美国贝尔实验室的Dennis Ritchie根据B语言开发设计出来的。最初,发明C语言的目的是用它来代替汇编语言为小型机编写UNIX操作系统。后来,随着UNIX操作系统的推广,C语言被越来越多的程序设计人员了解和使用。到20世纪70年代末,C语言已经凭借其如下独有的特点风靡了全世界的程序设计领域: 1. 语言简洁、紧凑,使用灵活、方便。 2. 具有丰富的运算符和数据类型。 3. 可以进行许多低级操作,适合开发系统软件。 4. 程序的运行效率高。 5. 代码的可移植性好。 然而,在C语言流行的同时,也暴露出了它的局限性:,7,1. 类型检查机制相对较弱,这使得程序中的一些错误不能及时被发现。 2. 缺少支持代码重用的语言结构,因此作为一个程序设计的模块,很难再用于其他程序。 3. 不适合开发大型软件,当程序的规模大到一定程序时,维护工作会变得相当复杂。 为了满足开发大规模程序的需要,1980年贝尔实验室的Bjarne Stroustrup和他的同事们开始对C语言进行改进和扩充,把一种早期的面向对象语言(Simula67)中类的概念引入到C语言,并将改进后的C语言称为“带类的C”。1983年夏,“带类的C”被正式命名为“C+”,并于同年7月首次对外发表。1985年由Bjarne Stroustrup编写的C+程序设计语言一书出版,这标志着C+1.0版本的诞生。,8,表 C+支持的新特性,经过对C+语言的三次修订后,美国国家标准委员会(ANSI)于1994年制定了ANSI C+标准草案,这个草案最终于1998年被国际标准化组织(ISO)批准为国际标准(ISO/IEC 14882)。C+就是这样在不断的发展和完善中走过了二十多年的历史。至今,它仍然是一种充满活力的程序设计语言。目前主要使用的有Inprise公司的C+ Builder、Borland公司的Borland C+、Microsoft公司的Visual C+等,本课程主要基于目前流行的Visual C+ 6.0。,9,1.1.2 C+语言的特点,1. C+是C语言的超集 所谓“C+是C语言的超集”是指C+中包含C语言的全部语法特征。因此,每一个用C语言编写的程序都是一个C+程序。C+语言的设计宗旨就是在不改变C语言语法规则的基础上扩充新的特性。,C+的组成,C语言,面向对象设计 (OOP),10,2. C+是一种面向对象的程序设计语言 C+语言集中体现了近20年来在程序设计和软件开发领域出现的新思想和新技术,这主要包括: (1)抽象数据类型。 (2)封装和信息隐藏。 (3)以继承和派生方式实现程序的重用。 (4)以运算符重载和虚函数来实现多态性。 (5)以模板来实现类型的参数化。 3. C+具有很好的通用性和可移植性 C+语言是一种标准化的、与硬件基本无关的、广泛使用的程序设计语言,继承了C语言灵活、高效的优点,具有很好的通用性和可移植性。 4. C+具有丰富的数据类型和运算符,并提供了功能强大的函数库。,11,1.2 简单的C+程序,例1.1 一个最简单的C+程序,注释以/开始,#include是编译预处理命令 把头文件的内容插入该处 使用cin、cout函数必须有该命令,main函数的函数体,main函数的函数头 void表示无返回值,12,#include “iostream.h“ int add(int x, int y) /定义add()函数,求两个数之和 int z; /说明z为int类型的变量 z=x+y; /将x+y的值赋值给z return z; /结束add()函数的执行,并将z的值返回给主函数 ,例1.2 求两个数之和。,void main( ) /定义主函数 int a, b, c; /说明a、b、c为int类型的变量 cinab; /从键盘输入两个数据送到a和b中 c=add(a,b) ; /调用add()函数,计算a+b,并把结果赋给c coutcendl; / 先输出c的值,再输出换行符 ,13,(1) C+程序是一个或多个函数构成的,main函数一定要有。 不管有多少个函数,执行从main函数开始。 在一个函数内,执行从上到下开始的。 (3) 注释从/开始或从/*开始到*/结束,有增加可读性的作用。 (4) 书写形式自由。 一行内可以写多条语句,一条语句也可以分写在不同行上。 (5) C+语言中大小写字母是不同的。,总结:,14,1. 基本符号 (1) 字母:52个 AZ az (2) 数字字符:10个 0 9 (3) 下划线 _ (4) 特殊符号:一般作运算符,如+、-、*、/、& 2. 关键字 有特定含义的、专用的单词。 如int、char、break、for、define等。 不能作变量名、符号常量名、函数名、类名等。,1.3 C+基本语法成分,15,3. 标识符,由字母、数字和下划线三种字符组成 必须以字母或下划线开头 合法标识符: A2 student area_of_circle num _dd Int 不合法标识符: 2A A-B area of circle M.D int 大小写字母不等价(习惯上,变量名小写,符号常量大写)。 关键字不能作标识符用。例如,int、define等关键字不能作为标识符用。 定义标识符时最好能简洁且“见名知义”,以提高程序的可读性。如min表示最小值,average表示平均值,day表示日期。 在Visual C+中,标识符中不能有汉字,但是字符串和注释中可以有汉字。,16,1.4 基本输入输出,C+程序对数据的输入输出进行了扩充,引入了标准设备 cin(代表键盘)和cout(代表显示器),把数据的输入输出处理为从一个对象到另一个对象的流动。所谓“流”是从数据的传输(流动)抽象而来的,可以把它理解为“特殊的文件”;它们是在头文件iostream.h中定义的。要使用 cin 和cout ,需要在程序前面加语句: #include “iostream.h“ 或 #include 1. 文件包含 头文件:.h 如cstdio.h、iostream.h ,它们包含了大量的函数说明、常量定义。 作用:将头文件的内容插入到源文件(.cpp)文件中。 形式:(1)#include 从系统指定的文件夹中找 (2)#include “文件名“ 从当前文件夹中找,现到系统指定的文件夹中找 注意:一条文件包含命令只能包含一个文件,17,说明:在1998年通过的ISO C+标准中对C+语言的标准库进行了部分修订,其中包括重新命名定义输入输出功能的相关头文件,命名方法是将原来头文件名中的扩展名.h去掉,例如将iostream.h改为iostream就形成了新的头文件名。此外,新标准中还引入了名字空间(namespace)的概念,其目的是为了避免一个程序不同模块中相同名称所引起的命名冲突,减少用户程序中的标识符与标准库中的标识符产生命名冲突。用户程序可以使用两种方法来引用std名字空间中的标识符。 方法一: 使用关键字using将std名字空间中的标识符全部引入到全局名字空间(即用户程序中)。具体用法是在包含标准头文件的include预处理命令后面添加语句行: using namespace std; 这样,在用户程序中就可以像原来一样继续使用cin和cout进行输入输出操作了。如:,18,#include “iostream“ /新标准中的头文件名 using namespace std; /引入std名字空间中的标识符 void main() int a; float b; coutab; cout“a+b=“a+bendl; ,没有.h,19,方法二: 使用范围限定符:(即两个相邻的冒号)在用户程序中显示地指明属于std名字空间的标识符。具体用法是由前缀std:来引导std名字空间中的标识符。例如,将cin改为std:cin,将cout改为std:cout。如: #include “iostream“ /新标准中的头文件名 void main() int a; float b; std:coutab; std:cout“a+b=“a+bstd:endl; /操作符endl也是定义在std名字空间中的标识符 ,20,2. 标准输出设备cout cout表达式1表达式2表达式n; 说明: 将各表达式的值按顺序输出到显示器上,数据的输出格式由系统自动决定。 称为输出运算符,也称为插入运算符。 各表达式可以是任意类型的。 可以使用格式控制符控制数据的输出格式。,#include “iostream.h“ void main() int a=2; double b=3.32; char c=A; couta bendl; coutc “abcd“endl; ,21,格式控制符,(程序中应使用#include “iomanip.h”命令),22,使用格式控制符输出数据示例 #include “iostream.h“ #include “iomanip.h“ void main() int x=65; double f=123.456; cout“123456789012345“endl; coutdecx hexx octxendl; coutxendsxendl; coutfendl; coutsetprecision(4)fendl; coutsetw(12)fendl; coutsetw(12)setfill(#)fendl; ,23,3.标准输入设备 cin,cin变量1变量2变量n; 说明: 从键盘输入数据, 依次送入各变量中。 称为输入运算符,也称为提取运算符。 各变量可以是任意数据类型,输入时各个数据之间用空格、TAB键或回车分隔。,#include “iostream.h“ void main() int a; float b; coutab; cout“a+b=“a+bendl; ,24,1.5 Visual C+简介,项目工作区,输出窗口,代码窗口,25,Visual C+编辑器功能特点: 自动语法:用高亮度和不同颜色的字来显示关键字和注释内容。 自动缩进:帮助你排列源代码,使其可读性更强。 参数帮助:显示预定义的windows函数的参数 集成的关键字帮助。能够使你得到任何关键字、MFC类或Windows函数的帮助信息(按F1即可)。 拖放编辑(同Word):鼠标放在选中内容的任意部位,按下鼠标左键,此时鼠标右下方出现一个虚的长方形标志,该标志就表示你将要拖动的内容。如果你想复制所选的内容,则再按住Ctrl键(缺省为移动操作),此时鼠标右下方的长方型标志中间出现了一个十字形。 自动错误定位:能自动将光标移动到有编译错误的源代码处,方便编辑。,26,简单C+程序的编写、运行过程,1创建一个空工程; Win32 Console Application (.dsw、.dsp、Debug文件夹) 2创建一个C+源文件,输入源程序; C+ Source File (.cpp) 3进行编译、连接、运行。,编译编译TEST.cpp Ctrl+F7 编译构建TEST.exe F7 编译执行TEST.exe Ctrl+F5,编写源程序,预处理,编译,连接,执行,预处理程序,编译程序,创建工程,27,程序调试 1语法错误 错误信息 D:TESTTEST.CPP(6) : error C2146: syntax error : missing ; before identifier cin 警告信息 D:TESTTEST.CPP(6) : warning C4244: = : conversion from const double to int, possible loss of data 2逻辑错误 3调试 设置断点:InsertRemove Breakpoint F9 运行到断点:编译开始调试去 F5 单步执行:F10 结束调试: Shift+F5,编译连接后生成的主要文件,28,Variables窗口,Watch窗口,Restart 终止当前调试,重新运行,停在第一条语句 Stop Debugging 结束当前调试和运行 Step Over 单步运行,不进入函数体内 Step Out 从函数体运行到外面,29,习题一 1. 选择题在书本完成 2. 二1、3、4、5、7、8 三 1、2、3、4 实验1:预备知识 1熟悉Windows基本操作,掌握利用“我的电脑”或“Windows资源管理器”进行文件(夹)管理的基本方法; 2掌握屏幕截图的基本方法,能够利用画图工具或PhotoShop对图片进行简单加工; 3熟练掌握利用Word撰写实验报告; 4掌握常用压缩工具WinRAR、WinZIP的使用; 5掌握E-MAIL与FTP的使用。,习题与实验,主讲: 王永国 E-Mail:安徽大学数学科学学院 2008.9学习方式 听课 (多媒体、启发式、讨论式) 读书 (预习、复习) 报告 (综合练习)考试成绩课程成绩 (考勤+作业+笔试) 实验成绩 (考勤+实验报告+上机考试)第1章 Visual C+概述第2章 数据类型、运算符和表达式第3章 结构化程序设计第4章 数组、字符串和指针第5章 函数第6章 面向对象程序设计基础第7章 Visual C+可视化编程基础目 录第1章 Visual C+概述1.1 C+语言的发展与特点 1.2 简单的C+程序 1.3 C+基本语法成分1.4 基本输入输出1.5 Visual C+简介1.1 C+语言的发展与特点 1.1.1 C+语言的发展 C+起源于C语言。C语言是1972年由美国贝尔实验室的Dennis Ritchie根据B语言开发设计出来的。最初,发明C语言的目的是用它来代替汇编语言为小型机编写UNIX操作系统。后来,随着UNIX操作系统的推广,C语言被越来越多的程序设计人员了解和使用。到20世纪70年代末,C语言已经凭借其如下独有的特点风靡了全世界的程序设计领域: 1. 语言简洁、紧凑,使用灵活、方便。 2. 具有丰富的运算符和数据类型。 3. 可以进行许多低级操作,适合开发系统软件。 4. 程序的运行效率高。 5. 代码的可移植性好。 然而,在C语言流行的同时,也暴露出了它的局限性: 1. 类型检查机制相对较弱,这使得程序中的一些错误不能及时被发现。 2. 缺少支持代码重用的语言结构,因此作为一个程序设计的模块,很难再用于其他程序。 3. 不适合开发大型软件,当程序的规模大到一定程序时,维护工作会变得相当复杂。 为了满足开发大规模程序的需要,1980年贝尔实验室的Bjarne Stroustrup和他的同事们开始对C语言进行改进和扩充,把一种早期的面向对象语言(Simula67)中类的概念引入到C语言,并将改进后的C语言称为“带类的C”。1983年夏,“带类的C”被正式命名为“C+”,并于同年7月首次对外发表。1985年由Bjarne Stroustrup编写的C+程序设计语言一书出版,这标志着C+1.0版本的诞生。表 C+支持的新特性 经过对C+语言的三次修订后,美国国家标准委员会(ANSI)于1994年制定了ANSI C+标准草案,这个草案最终于1998年被国际标准化组织(ISO)批准为国际标准(ISO/IEC 14882)。C+就是这样在不断的发展和完善中走过了二十多年的历史。至今,它仍然是一种充满活力的程序设计语言。目前主要使用的有Inprise公司的C+ Builder、Borland公司的Borland C+、Microsoft公司的Visual C+等,本课程主要基于目前流行的Visual C+ 6.0。 1.1.2 C+语言的特点 1. C+是C语言的超集 所谓“C+是C语言的超集”是指C+中包含C语言的全部语法特征。因此,每一个用C语言编写的程序都是一个C+程序。C+语言的设计宗旨就是在不改变C语言语法规则的基础上扩充新的特性。C+的组成C语言面向对象设计(OOP)2. C+是一种面向对象的程序设计语言 C+语言集中体现了近20年来在程序设计和软件开发领域出现的新思想和新技术,这主要包括: (1)抽象数据类型。 (2)封装和信息隐藏。 (3)以继承和派生方式实现程序的重用。 (4)以运算符重载和虚函数来实现多态性。 (5)以模板来实现类型的参数化。3. C+具有很好的通用性和可移植性 C+语言是一种标准化的、与硬件基本无关的、广泛使用的程序设计语言,继承了C语言灵活、高效的优点,具有很好的通用性和可移植性。4. C+具有丰富的数据类型和运算符,并提供了功能强大的函数库。1.2 简单的C+程序例1.1 一个最简单的C+程序 注释以/开始#include是编译预处理命令把头文件的内容插入该处使用cin、cout函数必须有该命令main函数的函数体main函数的函数头void表示无返回值#include iostream.h int add(int x, int y)/定义add()函数,求两个数之和int z;/说明z为int类型的变量z=x+y;/将x+y的值赋值给zreturn z;/结束add()函数的执行,并将z的值返回给主函数例1.2 求两个数之和。void main( )/定义主函数 int a, b, c; /说明a、b、c为int类型的变量 cinab; /从键盘输入两个数据送到a和b中 c=add(a,b) ; /调用add()函数,计算a+b,并把结果赋给c coutcendl; / 先输出c的值,再输出换行符(1) C+程序是一个或多个函数构成的,main函数一定要有。 不管有多少个函数,执行从main函数开始。 在一个函数内,执行从上到下开始的。(3) 注释从/开始或从/*开始到*/结束,有增加可读性的作用。(4) 书写形式自由。 一行内可以写多条语句,一条语句也可以分写在不同行上。(5) C+语言中大小写字母是不同的。总结:1. 基本符号 (1) 字母:52个 AZ az (2) 数字字符:10个0 9 (3) 下划线 _ (4) 特殊符号:一般作运算符,如+、-、*、/、&2. 关键字 有特定含义的、专用的单词。 如int、char、break、for、define等。 不能作变量名、符号常量名、函数名、类名等。1.3 C+基本语法成分3. 标识符由字母、数字和下划线三种字符组成 必须以字母或下划线开头合法标识符:A2 student area_of_circle num _dd Int不合法标识符:2A A-B area of circle M.D int 大小写字母不等价(习惯上,变量名小写,符号常量大写)。 关键字不能作标识符用。例如,int、define等关键字不能作为标识符用。 定义标识符时最好能简洁且“见名知义”,以提高程序的可读性。如min表示最小值,average表示平均值,day表示日期。 在Visual C+中,标识符中不能有汉字,但是字符串和注释中可以有汉字。1.4 基本输入输出 C+程序对数据的输入输出进行了扩充,引入了标准设备 cin(代表键盘)和cout(代表显示器),把数据的输入输出处理为从一个对象到另一个对象的流动。所谓“流”是从数据的传输(流动)抽象而来的,可以把它理解为“特殊的文件”;它们是在头文件iostream.h中定义的。要使用 cin 和cout ,需要在程序前面加语句: #include iostream.h 或 #include 1. 文件包含头文件:.h如cstdio.h、iostream.h ,它们包含了大量的函数说明、常量定义。作用:将头文件的内容插入到源文件(.cpp)文件中。形式:(1)#include 从系统指定的文件夹中找 (2)#include 文件名 从当前文件夹中找,现到系统指定的文件夹中找注意:一条文件包含命令只能包含一个文件说明:在1998年通过的ISO C+标准中对C+语言的标准库进行了部分修订,其中包括重新命名定义输入输出功能的相关头文件,命名方法是将原来头文件名中的扩展名.h去掉,例如将iostream.h改为iostream就形成了新的头文件名。此外,新标准中还引入了名字空间(namespace)的概念,其目的是为了避免一个程序不同模块中相同名称所引起的命名冲突,减少用户程序中的标识符与标准库中的标识符产生命名冲突。用户程序可以使用两种方法来引用std名字空间中的标识符。 方法一: 使用关键字using将std名字空间中的标识符全部引入到全局名字空间(即用户程序中)。具体用法是在包含标准头文件的include预处理命令后面添加语句行: using namespace std; 这样,在用户程序中就可以像原来一样继续使用cin和cout进行输入输出操作了。如:#include iostream /新标准中的头文件名using namespace std; /引入std名字空间中的标识符void main() int a;float b; coutab; couta+b=a+bendl; 没有.h 方法二: 使用范围限定符:(即两个相邻的冒号)在用户程序中显示地指明属于std名字空间的标识符。具体用法是由前缀std:来引导std名字空间中的标识符。例如,将cin改为std:cin,将cout改为std:cout。如:#include iostream /新标准中的头文件名void main() int a;float b; std:coutab; std:couta+b=a+bstd:endl; /操作符endl也是定义在std名字空间中的标识符2. 标准输出设备coutcout表达式1表达式2表达式n;说明:将各表达式的值按顺序输出到显示器上,数据的输出格式由系统自动决定。 称为输出运算符,也称为插入运算符。 各表达式可以是任意类型的。可以使用格式控制符控制数据的输出格式。 #include iostream.hvoid main() int a=2; double b=3.32; char c=A; couta bendl; coutc abcdendl; 格式控制符(程序中应使用#include “iomanip.h”命令)使用格式控制符输出数据示例#include iostream.h#include iomanip.hvoid main() int x=65; double f=123.456; cout123456789012345endl; coutdecx hexx octxendl; coutxendsxendl; coutfendl; coutsetprecision(4)fendl; coutsetw(12)fendl; coutsetw(12)setfill(#)f变量1变量2变量n;说明:从键盘输入数据, 依次送入各变量中。 称为输入运算符,也称为提取运算符。 各变量可以是任意数据类型,输入时各个数据之间用空格、TAB键或回车分隔。 #include iostream.hvoid main()int a;float b;coutab;couta+b=a+bendl;1.5 Visual C+简介 项目工作区输出窗口代码窗口Visual C+编辑器功能特点:自动语法:用高亮度和不同颜色的字来显示关键字和注释内容。自动缩进:帮助你排列源代码,使其可读性更强。参数帮助:显示预定义的windows函数的参数 集成的关键字帮助。能够使你得到任何关键字、MFC类或Windows函数的帮助信息(按F1即可)。拖放编辑(同Word):鼠标放在选中内容的任意部位,按下鼠标左键,此时鼠标右下方出现一个虚的长方形标志,该标志就表示你将要拖动的内容。如果你想复制所选的内容,则再按住Ctrl键(缺省为移动操作),此时鼠标右下方的长方型标志中间出现了一个十字形。 自动错误定位:能自动将光标移动到有编译错误的源代码处,方便编辑。 简单C+程序的编写、运行过程1创建一个空工程; Win32 Console Application (.dsw、.dsp、Debug文件夹)2创建一个C+源文件,输入源程序; C+ Source File (.cpp)3进行编译、连接、运行。 编译编译TEST.cpp Ctrl+F7编译构建TEST.exe F7编译执行TEST.exe Ctrl+F5编写源程序预处理编译连接执行预处理程序编译程序创建工程程序调试1语法错误 错误信息D:TESTTEST.CPP(6) : error C2146: syntax error : missing ; before identifier cin 警告信息 D:TESTTEST.CPP(6) : warning C4244: = : conversion from const double to int, possible loss of data2逻辑错误 3调试设置断点:InsertRemove Breakpoint F9运行到断点:编译开始调试去 F5 单步执行:F10 结束调试: Shift+F5 编译连接后生成的主要文件Variables窗口Watch窗口Restart 终止当前调试,重新运行,停在第一条语句Stop Debugging 结束当前调试和运行Step Over 单步运行,不进入函数体内Step Out 从函数体运行到外面习题一 1. 选择题在书本完成 2. 二1、3、4、5、7、8 三 1、2、3、4实验1:预备知识 1熟悉Windows基本操作,掌握利用“我的电脑”或“Windows资源管理器”进行文件(夹)管理的基本方法;2掌握屏幕截图的基本方法,能够利用画图工具或PhotoShop对图片进行简单加工;3熟练掌握利用Word撰写实验报告;4掌握常用压缩工具WinRAR、WinZIP的使用;5掌握E-MAIL与FTP的使用。习题与实验1,第2章 数据类型、运算符和表达式,2.1 数据类型 2.2 常量、变量和函数 2.3 运算符和表达式 2.4 数据类型转换 2.5 应用举例,2,程序中要对各种各样的数据进行描述和操作,用到的数据都必须指明其类型。数据类型的作用: 指出了应为数据分配的存储空间的大小 规定了数据所能进行的操作,数据类型,基本类型,构造类型,整型 (int),实型,字符型(char) 布尔型(bool) 空类型(void) 指针,单精度型(float) 双精度型(double),数组 结构型(struct) 共用体(union) 枚举(enum) 类(class),2.1 数据类型,3,不同类型的数据占用的内存字节数、表示的数据范围都是不同的。表2-1中列出了Visual C+中支持的基本数据类型以及占用的字节数和和范围。,表2-1 基本数据类型及其占用的字节数和和范围,4,2.2 常量、变量和函数,2.2.1 常量 在程序运行过程中其值不能改变的量,有值常量和符号常量两种。 1. 逻辑常量 逻辑常量只有两个取值:true和false,主要用在逻辑运算中。例如,对于两个整数a和b: bool x=(a=b); 如果a和b 相等,则x的值为true,否则为false。此外,由于逻辑值对应着整数1和0,因此它也能像其它整数一样出现在表达式中,参与各种整数运算,这一点与其它语言有所区别。,5,2.整型常量,整型常量就是整型常数,简称整数,它有十进制、八进制和十六进制三种形式。 (1)十进制整型常量 形式:n n为09数字。十进制整数不能以0开始,以0开始的为八进制整数。例如0、+16、124、-127等。 (2)八进制整型常量 形式:0n n为07数字。例如0、016、0124等。 (3)十六进制整型常量 形式:0xn 以0x(或0X)开头, n 为 09 数字和字母AF或af组成。例如0x0、0x55、0x1cd等。 此外,C+中整型数据还允许给它们添加后缀u或l(大小写均可),来表示无符号整数或长整数。,6,3. 实型常量 (1)单精度实型常量 形式:n.nf n为由09数字组成的若干位整数。如果不加字母f默认为双精度实型常量。例如1.36、-17.、.1和41.9等。 (2)双精度实型常量 形式:n.nEn 其中:n为09数字,符号E(或e)表示指数部分,+号可省。例如:1.37、34.0、 1.25e-5、-1.25e23 等均为合法双精度实型常量。 注意:e前面不能没有数字,e后面的数字必须为整数,也不能加园括号。如1E(-3)、E-5、1e2.1都是错误的。,7,4. 枚举常量,枚举常量是枚举类型中定义的值,即枚举值。这种类型的变量值只能是给定的若干个名字之一。是一种有限状态的集合,以整型值代表。如:颜色,星期等。枚举类型属于构造类型,用关键字enum表示。用户通常利用枚举类型定义程序中需要使用一组相关符号常量。 声明形式:enum ; 例如:enum daysun,mon,tue,wed,thu,fri,sat ; 说明:(1)enum是关键字,标志枚举类型; (2)在定义枚举类型时,花括号中的一些名字如sun、mon是程序设计者指定的,与标识符的命名规则相同,但名字不是变量,不能改变其值;(如sun=1;非法) 枚举变量的说明和引用:enum day day1,day2 ; 或 enum daysun,mon,tue,wed,thu,fri,sat day1, day2;,8,1)枚举变量只能取该类型中的一个元素。例如:day1=sat ; 2)枚举元素如果不赋值,自动取0n-1整数值; 3)在定义时,可以对某个枚举元素赋值,其后的元素按此值自动加一递增。 如enum colorred=3,yellow,blue,green=8,black;则yellow为4 4)一个整数不能直接赋给一个枚举变量,应进行强制类型转换;如day2=2;是错误的; 5)枚举常量可以进行比较; 6)枚举常量不是字符串。,注意:,9,5. 字符常量 C+提供了两类字符型常量: 普通字符常量:用单引号括起来的一个字符。如:A、0、?。 转义字符常量:以 (反斜杠)开头的用单引号括起来的字符序列。如:n 、t 、x61等。常用的转义字符见教材P26。 注意: 0表示ASCII码为0的字符,它是一个空字符,注意其与0的区别,后者表示的是ASCII码为48的数字字符。 字符型数据在内存中以ASCII码存储,故整型数据和字符型数据在一定范围内可以通用。如: x= a +2;,10,6. 字符串常量 字符串常量是用双引号括起来的字符序列, 系统在字符串常量最后自动加字符串结束符号0 。 例如: 字符串“A“的存储形式:,A,内存中实际存放的 是这些字符的ASCII码,#define 标识符 常量值 const 数据类型 标识符 = 常量值;,或,7. 符号常量 是以标识符形式出现的常量,作用是便于程序阅读和修改。C+中用define命令或关键字const定义符号常量,形式如下:,字符A的存储形式:,11,注意:,习惯上符号常量名大写,而变量名小写,以示区分。 符号常量虽然用标识符来标识,但本质上是常量,具有常量值不能改变的性质。,#include “iostream.h“ #define PI 3.14 void main( ) float r=3.0,s,l; l=2*PI*r; s=PI*r*r; cout“l=“l“,s=“ sendl; ,【例2-1】,1.演示不同精度圆周率的程 序运行结果 2.观察编译中的“警告”对程 序运行的影响 3.消除“warning”的方法,12,1.变量的定义 程序运行过程中其值可变的量, 定义方式如下:,C+规定: 程序中所有变量必须先定义后使用,这样可及时发现录入错误(如:定义的变量为data,而程序体中使用变量为date),同时还可限制非法运算(如:a%b , 若a,b为float类型则出错)。 C+中变量可随时使用,随时定义。,例如: int a, b; (定义变量a和b为整型) float x,y ; (定义变量x和y为单精度实型),数据类型 变量名表 ;,2.2.2 变量,13,2.变量的初始化,数据类型 变量名=表达式; 数据类型 变量名(表达式);,例如: int k=3,m=3, n(3); () int k=m=n=3; /不允许为多个变量同时初始化,变量必须先有确定的值后才能参与各种相应的操作,变量获取值的途径有三: 通过输入语句输入 (如:cina;) 通过赋值语句赋值 (如:a=3; ) 通过初始化方式赋初值 (如:int k=3;) 所谓初始化是指在定义变量的同时指定变量的初值,形式有二:,14,3.变量引用,C+中增加了“引用”这一概念,许多地方可以代替指针实现相应的功能,比指针更安全。 所谓引用即给一个已知变量起个别名,系统不为引用另外开辟内存,而是与原变量共享同一段内存,引用好比是一个虚拟的变量,声明形式为:,数据类型 &引用名=已定义的变量,如: int a=3, /你知道此时a的值为多少吗?,说明: (1)引用运算符与地址操作符使用了相同的符号,但含义不一样; (2)引用被创建时,必须立即初始化,且一旦一个引用被初始化为一个对象的引用,就不能再被改变为另一个对象的引用,另外也不能有NULL引用,所以这点和以后学的指针不一样。,15,4typedef语句,为了增加程序的可读性和可移植性,C+提供了typedef 语句,用于为已有的数据类型定义一个新的名称。 形式:typedef 数据类型 新的数据类型名; 例如: typedef float FLOAT; / FLOAT可当作float用 FLOAT k, j; /用FLOAT定义k和j为float类型 注意:typedef语句并没有真正地定义新的数据类型,它只是相当于给某个已有的数据起了一个别名。,16,2.2.3 标准函数,函数是一个可以独立完成某个功能的语句块。在C+中函数分为标准函数和用户自定义的函数。表2-3中列出了常用的数学函数。,所有的标准函数都被放在不同的函数库中,并有一个与之对应的头文件。在使用标准函数时,应把包含标准函数的头文件,通过 #include 预处理命令装入到程序中,例如,要使用上述数学函数,应该在程序加入: #include “math.h “ 或 #include “cmath“ using namespace std;,又如: #include “stdlib.h“ 中含有的随机函数rand是用于产生032767之间的一个整数,如需产生a,b之间的整数,只需用:rand()%(b-a+1)+a即可。,17,2.3 运算符和表达式,2.3.1 基本概念,运算符具有三个属性: 优先级:指运算的先后次序,共分15个级别。(见书表2-4) 结合性:指相同优先级运算符连续出现时的计算顺序,分自左 向右和自右向左两种,除特别声明外,皆指自左向右。 目 数: 指运算符要求的操作数的个数,包括单目、双目和三目, 一般目数越少,优先级越高。,表达式:由常量、变量、函数调用和运算符按一定规律组合在一 起构成的式子。 如:a+14/(3+2)-sqrt(17) (-b+sqrt(b*b-4*a*c)/(2*a),18,符号: + (加法或取正) - (减法或取负) * (乘法) / (除法) % (求余数) + (自增) - (自减) 其中:+和-的结合性则是自右向左 优先级:(从高到低) (+、-、+、-) (*、/、%) (+、-),2.3.2 运算符 1.算术运算,正、负,加、减,19,说明: 在除法运算中,当两个操作数都是整数时,商也为整数,小数部分一律舍去。如: 1/2 0 1.0 /2 0.5,若 i 的值为3,则: j=+i; j的值为4, i的值为4 j=i+; j的值为3, i的值为4,注意:增、自减运算符只能用于变量,而不能用于常量和表达式。 () 5+、(a+b)+,%(求余运算)要求两个操作数都是整型,结果为整除后余下的整余数,符号与被除数相同。 自增、自减运算符(+、- -) +i , -i (在使用 i之前,先使i的值加减1) i+ , i- (在使用 i之后, 使i的值加减1),20,2 .关系运算,符号: (大于) = =(等于)、 =(大于等于)、 !=(不等于) 优先级: (从高到低) ( 、 = ) ( = = 、 != ) 关系运算描述的是一种“判断关系”,在C+中为了提高程序的可读性,引入了bool类型,其结果有true和false两种。为了保持与C的兼容可以用“1”代表“真”,用 “0” 代表“假” 例如:53的结果为true , aB的结果为false 思考: x为0到100之间的数能否表示为 0=x=100?,21,3.逻辑运算,种类: &(逻辑与)、 |(逻辑或)、!(逻辑非) 优先级: (从高到低) ! & |,其中,“!” 是单目运算符,优先级高于算术运算符。“” 和 “|” 低于关系运算符。 逻辑运算通常用来连接关系运算,逻辑运算符两端的操作数如为“非”,就当作“真”来处理,如果是“”,便当作“假”来处理。逻辑运算的结果也只有false (0)和true (1)两种。,22,说明: 当多个&连续出现时,如:表达式& 表达式&表达式。从左到右,只要一个操作数为0,结果就为0,不进行后续运算。 当多个 | 连续出现时,如:表达式|表达式|表达式。从左到右,只要一个操作数为1,结果就为1,不进行后续运算。,23,#include “iostream.h“ void main() int m,n=10; m=2 ,【例2-2】,1.分析运行结果 m=1,n=11 2. 改为m=0&n+,结果又如何。,4. 条件运算 形式: e1?e2:e3 一般而言,e1为条件表达式,当其成立时,将e2的值作为整个表达式的值,不再计算e3的值;否则取e3的值作为整个表达式的结果,而不计算e2的值。,24,如:max(xy?x:y); /将和中较大的一个数赋值给变量max 条件运算符的结合性是由右向左 思考题:试用条件运算符表达:对n(0)个人进行分班,每班k(0)个人,最后不足k人也编一班,问要编几个班?,n%k0?n/k+1:n/k,5. 逗号运算,形式:e1,e2,e3, 其中e1、e2、e3均为表达式,从左向右依次计算各个表达式的值,而将最后一个表达式的值作为整个表达式的值,逗号运算符常用于循环语句的表达式中,将多个表达式连接成一个表达式,如:for(i=0,j=n;ij;i+,j-) 逗号运算符的优先级别最低。,25,6. 位运算,位运算符是以单独的二进制位为操作对象的运算。也就是说,其操作数是二进制数。这是与其他运算的主要不同。 C+语言中提供的位运算符有:按位与(&)、按位或(|)、按位异或()、按位取反()、左移()6种。此运算规则见表2-7。,26,7. 赋值运算,格式:变量 赋值运算符 表达式,作用:将一个表达式的值赋给一个变量,并以变量的值作为整个式子的值。,/Ex2_1.cpp #include void main() int a=15,x,y,z; x=a; /负数在计算机中以补码形式存储 y=a2; coutx“ “y“ “zendl; ,27,例如: b /= a+2 等价于 b = b/(a+2),其中赋值运算符可以是 “=”,也可以是复合赋值运算符,如“+=”、“-=”、“*=”、“/=”和“%=”等等。 复合赋值运算符的等价形式: (以 “+=”为例),变量+=表达式,变量 = 变量表达式,是一个整体,结合性自右向左 若两端类型不同,则系统自动将右端类型转换为左端类型。 例如:有定义 int a = 3.78; 则a中存放的值为3 左端只能是变量(或数组元素),不能为表达式或常量,如: a+2*=b () a=b+2=c+5 (),28,8. sizeof运算符 形式: sizeof(操作数) 其中操作数可以是表达式或数据类型名,当操作数是表达式时括号还可省略。 作用:求出操作数在计算机内存中所占用的字节数。 例如:sizeof(char)。,2.3.2 表达式,1表达式的概念
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
提示  人人文库网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文
本文标题:大学VISUAL C++程序设计-王永国-课件PPT
链接地址:https://www.renrendoc.com/p-21836328.html

官方联系方式

2:不支持迅雷下载,请使用浏览器下载   
3:不支持QQ浏览器下载,请用其他浏览器   
4:下载后的文档和图纸-无水印   
5:文档经过压缩,下载后原文更清晰   
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

网站客服QQ:2881952447     

copyright@ 2020-2025  renrendoc.com 人人文库版权所有   联系电话:400-852-1180

备案号:蜀ICP备2022000484号-2       经营许可证: 川B2-20220663       公网安备川公网安备: 51019002004831号

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知人人文库网,我们立即给予删除!