高教类课件:C++语言程序设计.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《高教类课件:C++语言程序设计.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 高教 课件 C+ 语言程序设计
- 资源描述:
-
1、C+C+语言程序设计语言程序设计第一章第一章 C+语言概述语言概述主要内容 C+的特点 C+程序开发过程 编写简单的C+程序 应用VC+编译、调试C+程序 1.1 C+的特点 C+语言是目前应用广泛的一种计算机程序设计语言。C+是从C语言发展而来的,C+支持面向对象的程序设计方法,特别适合于中型和大型的软件开发项目,从开发时间、费用到软件的重用性、可扩充性、可维护性和可靠性等方面,C+均具有很大的优越性。同时,C+又是C语言的一个超集,在基本语法特点方面,C+语言保持与C语言兼并,二者没有本质上的差别,这就使得许多C程序不经修改就可被C+编译通过。C+语言与C语言的主要区别是编程思想上的更新,
2、即由面向过程转变为面向对象。在C+语言中引入了类与对象机制,从而引发出一系列包括类的定义、继承与派生、多态性等概念。数据封装和隐藏是与类的定义紧密相关的现象,也是C+语言中的一大特点。数据的封装和隐藏使重要的内部数据得到保护。1.2 C+程序开发过程 Step1:在分析给定问题的基础上,确定所用的算法(即操作步骤)和数据结构(即数据的类型和组织形式),最后用高级语言加以实现。编制的程序必须送入计算机中,以文件的形式存放在磁盘上,这个过程称为编辑。在编辑方式下建立起来的程序文件称为源程序文件,简称源文件,相应的程序叫做源程序。Step2:源程序是用高级语言编写的,它不能直接在机器上运行。因为计算
3、机不能识别源程序,它仅认识规定范围内的一系列二进制代码所组成的指令数据(即指令动作所涉及的对象),并按预定的含义执行一系列动作。通常把这些计算机能识别的二进制代码称为目标代码。为了把源程序变成目标代码,就需要有个“翻译”做这种转换工作。在计算机系统中实现这种转换功能的软件是编译程序。Step3:如果在编译过程中发现源程序有语法错误,则系统就给出“错误信息”,提示用户在哪一行中可能有什么样的错误。用户见到这类提示信息后,要重新进入编辑方式,对代码行中的错误进行修改,然后对修改过的源程序重新进行编译。经编译之后生成的目标程序的文件叫做目标文件。Step4:目标程序还不能马上在机器上运行。因为程序中
4、会用到库函数或者其他函数,需要把它们连成一个统一的整体,这一步工作是连接。经过连接就把分离的目标程序连成完整的可执行程序,对应的文件是可执行文件。程序设计算法及描述 程序设计用计算机语言编制解决问题的方法和步骤的过程。程序设计首先要解决的是算法设计。程序设计算法就是用计算机解决问题的方法和步骤。描述算法的方法 主要有:自然语言、流程图、盒图、伪代码、程序语言等。流程图的基本符号 1.3 编写简单的C+程序 我们在C+语言的编辑器编辑上述源程序,将程序文件命名为hello.cpp保存。源程序经过编译、连接后,生成一个可执行的应用程序。运行该应用程序,其运行结果为:你好,欢迎学习C+!通过上面的例
5、子,我们看到,一个C+源程序包括编译预处理命令、注释和函数体三部分:程序解析编译预处理的作用是在对源程序编译之前,先对这些命令进行预处理,然后将预处理的结果和源程序一起进行正常的编译处理。C+语言中,编译预处理命令以打头,一行只能写一条编译预处理命令。程序编译预处理命令语句#include 中是iostream.h头文件的文件名。头文件一般以.h或.hpp为扩展名,主要提供数据类型声明、类的定义、函数的说明等信息。一般来说,C+语言系统提供的头文件名用括起来,如,而用户自己定义的头文件,则用双引号“”把头文件括起来。在本程序中,iostream.h是系统提供的头文件,该头文件声明了程序所需要的
6、输入输出操作的有关信息。cin、cout、和等操作信息都在该文件中有声明。(1 1)编译预处理命令编译预处理命令(2)注 释程序中标有“/”号的语句为注释语句。注释是程序中的说明性文字,是程序的非执行部分。它的作用是为程序添加说明,增加程序的可读性。C+语言使用两种方式对程序进行注释:“/”符号,它表示从“/”符号开始到此行的末尾位置都作为注释。“/*/”符号,它表示从“/*”开始到“*/”结束的部分都作为注释部分,可以是多行注释。(3)函数C+语言的源程序是一系列函数的集合。函数是用特定格式描述、具有特定功能的程序模块。函数由函数声明和函数体两部分组成。每个程序有且只有一个主函数,其函数名为
7、main,其结构如下:主函数main()可以位于程序中的任何位置,程序的执行总是从main()函数开始。(4)语句语句是组成程序的基本单元。函数是由若干条语句组成的。C+语言的语句以分号表示语句结束。一般程序都是由若干条语句组成的,每一条语句都以分号结束。C+语言对字母的大小写敏感,所以在书写程序语句时要注意字母的大小。1.4 应用VC+编译、调试C+程序1、启动Microsoft Visual C+2、建立当前工作区目录3、建立一个空项目4、在当前项目中建立程序文件编译编译编译、编译、链接链接运行5 5、编译程序、编译程序6、运行程序 单击工具栏中的运行按钮 ,则可以看到程序运行结果 C+C
8、+语言程序设计语言程序设计第二章 C+语言基础本章内容提要 输入输出语句 数据类型 表达式和运算符 程序控制语句2.1 简单的输入输出语句 1、输出语句 cout通过输出操作符“”将表达式1、表达式2、表达式n依次显示到屏幕上。如果表达式是变量则将变量的值显示出来;如果表达式是计算式,则先计算,再将计算的结果显示出来;如果表达式是用双引号括起来的字符串,则将双引号括起来的内容“原样照印”的显示到屏幕上。cout cout 表达式表达式1 1 表达式表达式2 2 表达式表达式n n;例2-11#include 2using namespace std;3 void main()4 5 cout
9、我对 C+很着迷!;6 cout endl;7 包含iostream头文件,该文件定义了输出流对象cout 定义名字空间输出流对象cout将字符输出到屏幕上显示换行例2-2 在屏幕上输出显示一个用“*”号组成的三角形图形。1#include 2 using namespace std;3 void main()4 5 cout *endl;6 cout *endl;7 cout *endl;8 cout *endl;9 包含iostream头文件时,必须定义名字空间双引号中的任何符号在输出时都将被“原样照印”,第一行输出1个“*”号,第二行输出3个“*”号,第三行输出5个“*”号,第四行输出7
10、个“*”号。*输出结果:输出结果:例 2-31#include 2 using namespace std;3 void main()4 5 cout 3+5=3+5”,使用输入流对象cin读取由键盘输入的字符和数字,并把它赋值给指定的变量。从键盘上输入的数据通过cin接收,再由输入操作符“”将数据赋值给指定的变量。输入操作符“”也称为提取运算符。同样,输入操作符“”也是在iostream.h中定义的,因此,必须在程序的开头用#include包含iostream.h。例2-4 从键盘上输入两个整数,再计算出两个数的和 1#include 2 using namespace std;3 void
11、 main()4 4 int a,b;6 cout a;8 cout b;10 cout a “+”b “=”a+b endl;11 cout、cin需要头文件iostream使用名字空间int为定义整数类型变量,这里定义的变量a、b只能接受整数cin读取由键盘输入的数字,并通过输入操作符把它赋值给变量a按照“原样照印”模式输出 cin读取由键盘输入的数字,并把它赋值给变量b 程序运行时,用cin接收用户输入的两个整数,然后计算并输出这两个数的和。比如用户通过键盘输入3后,按Enter键,然后输入5,再按Enter键,其运行结果如下:用户通过键盘给变量a、b赋值 输入第一个整数,a=:3 输入
12、第二个整数,b=:5 3+5=8 说明:在上面运行结果中,下划线表示的3 和5由用户输入,“”为Enter键。2.2 数据类型 C+语言的数据类型可以分为两大类:基本数据类型和构造数据类型。基本数据类型是由程序设计语言系统所定义、不可再划分的数据类型。基本数据类型在内存中存入的是数据值本身。构造数据类型在内存中存入的是指向存放该数据的地址,不是数据本身,它是在基本数据类型的基础上,由系统或用户自定义的。构造数据类型也被称为复合数据类型。数据类型的作用有二个:其一,为数据在内存中分配合适的存储区域,同时也确定了数据范围;其二,规定数据所能进行的操作。2.2.2 基本数据类型C+定义了多个基本数据
13、类型:字节型,短整型,整型,长整型,无符号整型,字符型,浮点型,双精度型,布尔型,这些类型可分为4组:整数型:该组包括字节型(byte),短整型(short),整型(int),长整型(long),它们都是有符号整数型,还有无符号整数型,即正整数型。浮点数型:该组包括浮点型(float),双精度型(double),它们代表有小数精度要求的数字。字符:这个组包括字符型(char),它代表字符集的符号,例如字母和数字。布尔型:这个组包括布尔型(boolean),它是一种特殊的类型,表示真/假值。类型数据类型关键字类型长度值域范围有符号短整数short,short int2-215215-1内的整数有
14、符号整数int 4-231231-1内的整数有符号长整数long,long int,signed long int4-231231-1内的整数无符号短整数unsigned short int20216-1内的整数无符号整数unsigned int 40232-1内的整数无符号长整数unsigned long int 40232-1内的整数单精度浮点型 float 4-3.402823*10383.402823*1038内的数双精度浮点型double 8-1.7977*103081.7977*10308内的数长双精度浮点型long double8-1.7977*103081.7977*10308
15、内的数有符号字符char1-128+127内的整数无符号字符unsigned char10255内的整数逻辑bool 10和1 下面对表2-1作几点说明:1、对于每一种整数类型和字符类型,又可分为有符号和无符号两种类型。通常使用较多的是有符号类型,所以时常也把有符号类型简称为所属类型。如把有符号整数类型简称为整型或int型,把有符号字符类型简称为字符型或char型。2、类型长度是指存储该类型值域范围内的任一个数据所占有的存储字节数,该字节数由系统规定,并且对任一数据都相同。如短整型长度为2,即存储每个短整数占用2个字节,对应16个二进制位;整型长度为4,即存储每个整数占用4个字节,对应32个二
16、进制位;字符型长度为1,即存储每个字符占用1个字节,对应8个二进制位。3、类型的值域范围是指该类型所对应的固定大小的存储空间按照相应的存储格式所能表示的值的范围。如对于有符号短整型来说,它对应2个字节的存储空间,存储格式为二进制整数补码格式,只能够表示(即存储)-215215-1,即-32768+32767之间的所有整数。若一个整数小于-32768或大于32767,则它就不是该类型中的一个值,即它不是一个短整数。又如对于无符号字符类型来说,它对应1个字节的存储空间,存储格式为二进制整数无符号(隐含为正)格式,只能够表示028-1,即0255之间的所有整数。若一个整数小于0或大于255,则它就不
17、是该类型中的一个值,即它不是一个字符数据。4、在32位的 C+版本中,整型(int)和长整型(long ing)具有完全相同的长度和存储格式,所以它们是等同的。但在早期的C+版本中,由于当时的机器字长为16位,所以整型和长整型的长度是不同的,前者为2个字节,后者为4个字节。无论如何,任一种C+语言都遵循short int型的长度小于等于int型长度,同时int型长度又小于等于long ing型长度的规定。与上述情况类似,在32位的C+版本中,双精度型(double)和长双精度型(long double)也具有完全相同的长度和存储格式,它们是等同的。在其他C+语言中也可能不同,但无论如何,它们都
18、遵循float型的长度小于等于double型长度,同时double型长度又小于等于long double型长度的规定。2.2.3 数据类型转换在在C+中有两种数据类型转换:中有两种数据类型转换:数据类型自动转换 强制类型转换。1、数据类型自动转换 在对数据进行运算时,一般要求两个运算操作数的类型一致,如果操作数的类型不一致,则系统编译器会自动将这两个运算操作数转换成相同类型之后再进行运算。自动类型转换是按从低到高的顺序原则进行的。各种数据类型按下列的高低顺序转换:例如:计算10+2.5,先将10转换成双精度浮点型后再相加,结果为双精度浮点型的12.5。2、强制类型转换 强制类型转换是在程序设计
19、时显式指出的类型转换。强制类型转换的格式如下:int a;double b=3.14;a=(int)b;结果 a=3,b仍然是double类型,b的值仍然是3.14。从该示例可以看到,采用强制类型转换将高类型数据转换成低类型数据时,可能会降低数据精度。数据类型说明(表达式)数据类型说明(表达式)或(数据类型说明)表达式或(数据类型说明)表达式2.2.4 变量 在程序中,每一个数据都有一个名字,并且在内存中占据一定的存储单元。在程序运行过程中,数据值不能改变的量称为常量,其值可以改变的量称为变量。变量在程序运行过程中可以进行赋值,从而改变了原来的值。在C+语言中,所有常量及变量在使用前必须先声明
20、其值的类型,也就是“先声明,后使用”。每一个变量都属于一种数据类型,用来表示(即存储)该类型中的一个值。在程序中只有存在了一种数据类型后,才能够利用它定义出该类型的变量。根据这一原则,我们可以随时利用C+语言系统提供的基本类型或用户自定义的类型定义需要使用的变量。一个变量只有被定义后才能被使用,即定义后的变量才能进行存储和读取其值的操作。1、变量的定义 变量定义是通过变量定义语句实现的,该语句的一般格式为:为已存在的一种数据类型,如short,int,long,char,bool,float,double等都是类型关键字,是用户定义的一个标识符,用来表示一个变量,该变量可以通过后面由方括号表示
21、的可选项赋予一个值,称为给变量赋初值,是一个数值或表达式,它的值就是赋予变量的初值。数据类型关键字数据类型关键字 变量名变量名=;2、变量定义语句示例 第一条语句定义了两个整型变量a和b;第二条语句定义了两个字符变量ch1和ch2,并被分别赋初值为字符a和A,一个字符变量只能存放一个字符,不能存放字符串;第三条语句定义了一个整型变量x,并赋予表达式a+2*b的值作为初值;第四条语句定义了三个双精度变量,分别为d1,d2和d3,其中d2被赋予初值0.0,d3被赋予初值3.14159。3、变量定义语句执行过程 当程序执行到一条变量定义语句时,首先为所定义的每个变量在内存中分配与类型长度相同的存储单
22、元,如对每个整型变量分配4个字节的存储单元,对每个双精度变量分配8个字节的存储单元。定义变量时,若变量名后带有赋值表达式,则计算出初值表达式的值,并把它保存到变量所对应的存储单元中,表示给变量赋初值,若变量名后不带赋值表达式,将自动给变量赋予初值0,否则不赋予任何值,此时的变量值是不确定的,实际上是存储单元中的原有值。在习惯上,常量名用大写字母表示,变量用小写字母表示,以示区别。例2-5 定义三个变量,求和值并输出结果。1#include 2 using namespace std;3 void main()4 5 int x;6 float y,z,sum;7 x=2;8 y=5.5;9 z
23、=10.0;10 sum=x+y+z;11 cout sum=sum endl;12 例2-6 实型数据的舍入误差 1#include 2 using namespace std;3 void main()4 5 float a,b;6 a=1234567890;7 b=a+20;8 cout a=(int)a endl;9 cout b=(int)b endl;10 a与b的输出结果相同,较小的整数部分被“丢失”。a=1234567936a=1234567936b=1234567936b=1234567936 说明:(1)实型变量是用有限的存储单元存储的,因此提供的有效数字是有限的,在有效位
24、以外的数字将被舍去,由此可能会产生一些误差。(2)由于实数存在舍入误差,使用时要注意:不要试图用一个实数精确表示一个大整数,因为浮点数是不精确的;实数一般不判断“相等”,而是判断接近或近似;避免直接将一个很大的实数与一个很小的实数相加、相减,否则会“丢失”小的数;根据实际问题的要求选择单精度或双精度类型。#includeusing namespace std;void main()double a,b;/将a,b定义为双精度实数类型 a=1234567890;b=a+20;cout a=(int)a endl;cout b=(int)b endl;运算精度运算精度得到保证得到保证a=12345
25、67890a=1234567890b=1234567910b=12345679102.2.5 常量 常量有两种形式:一种是直接常量,以字面值直接出现的数据量,如12、3.14、a等;另一种是符号常量。符号常量是一个标识符,对应着一个存储空间,该空间中保存的数据就是该符号常量的值,这个数据是在定义符号常量时赋予的,是以后不能改变的。(1)用const定义符号常量 例如:const double PI=3.14159;const const 数据类型符号常量名称初始值;数据类型符号常量名称初始值;(2)用#define命令定义符号常量 注意,由于#define是预处理命令,语句不能以分号结束,且定
展开阅读全文