欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    C++程序设计课程介绍-第二章 通过例子学习.ppt

    • 资源ID:2838514       资源大小:365KB        全文页数:89页
    • 资源格式: PPT        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    C++程序设计课程介绍-第二章 通过例子学习.ppt

    第二章 通过例子学习,第一个程序第二个程序变量定义数据类型符号常量算术表达式,赋值表达式自增自减运算符强制类型转换数据的输入输出构思一个程序,C+程序的基本组成,基本的C+程序结构,/File:hello.cpp/this program prints the message/“hello everyone”on the screen#include int main()std:cout“hello everyone”std:endl;return 0;,程序注释,预处理命令,主程序,注释,C+的注释是从/开始到本行结束,也可以采用C风格的注释,即从/*与*/之间所有的文字都是注释,可以是连续的几行。注释是写给人看的,而不是写给计算机的。程序注释:从整体描述程序操作过程 注释也可以出现在主程序中,解释主程序中一些比较难理解的部分。给程序添加注释是良好的程序设计风格,C程序的基本组成,基本的C程序结构,/File:hello.cpp/this program prints the message/“hello everyone”on the screen#include int main()std:cout“hello everyone”std:endl;return 0;,程序注释,预处理命令,主程序,编译预处理,C+的编译分成两个阶段:预编译和编译 预编译处理程序中的预编译命令,即那些以#开头的指令 编译预处理主要有:库包含:用#include实现,表示程序使用了某个库宏定义:用#define实现。,库包含的格式,库是预先做好的一些工具程序。每个库要提供一个接口,告诉库的用户如何使用库提供的工具。库包含就是把库的接口文件放入源文件,以便编译器检查程序中对工具的调用是否正确。库包含格式:#include:包含了一个系统库#include“filename”:包含了一个用户自定义的库,宏定义,宏定义有两类:不带参数的宏带参数的宏,不带参数的宏定义,不带参数的宏定义通常用于为程序中的常量取一个名字,称为符号常量。格式:#define 标识符 替换文本 如:#define RADIUS 5#define PI 3.14159#define AREA PI*RADIUS*RADIUS用define定义符号常量是C语言的习惯,在C+中有更好的解决方案,使用符号常量的好处,含义清楚,提高了程序的可读性。在需要改变一个常量时能做到“一改全改”,带参数的宏定义,带参数的宏用于定义一些较为复杂的操作格式:#define 宏名(参数表)替换文本 如:#define CIRCLE_AREA(x)(PI(x)*(x)当程序中出现语句area=CIRCLE_AREA(4),就会被替换成 area=(3.14159*(4)*(4)带参数的宏是C语言的习惯,它有很多缺陷,在C+中有更好的解决方案,C程序的基本组成,基本的C程序结构,/File:hello.cpp/this program prints the message/“hello everyone”on the screen#include int main()std:cout“hello everyone”std:endl;return 0;,程序注释,预处理命令,主程序,主程序,主程序由一个或多个函数组成函数是一系列独立的程序步骤,把这些程序步骤集合在一起,并赋予一个名字。每个程序都必须有一个名为main的函数,它是程序执行的入口。,函数的构成,int main()函数头 std:cout“hello everyone”std:endl;return 0;,函数体,函数头,说明函数和外界的交流形式:返回类型 函数名(参数表)返回类型:是函数的输出值的类型函数名:是函数的名字。程序可以通过函数名执行函数体的语句参数表:是函数的输入可以把函数想象成数学中的函数。参数表是一组自变量,返回类型是函数值的类型,函数体,函数如何完成预定功能的过程。它说明了如何从输入(参数)得到输出的(返回值)的过程。可以把它想象成数学中的函数表达式,输出流对象std:cout,“流”指的是设备之间传递的数据流输出流是传给输出设备的数据流cout 代表显示器,std是名字空间名格式将hello显示在屏幕上:std:cout“hello”std:cout“hello,everyone”std:endlstd:endl表示换行,名字空间,在大型的程序时,每个源文件可能由不同的开发者开发。不同的源文件中可能有同样的名字。当这些源文件连接起来形成一个可执行文件时,就会造成重名。名字空间是把一组程序实体组合在一起,构成的一个作用域。一个名字空间中不能有重名,不同的名字空间中可以定义相同的实体名。当引用某个实体时,需要加上名字空间的限定 程序中的std是C+中所有标准库的名字空间名。,使用名字空间的指令,格式:using namespace 名字空间名;一旦用了使用名字空间的指令,该名字空间中的所有的实体在引用时就不需要再加名字空间的限定了。第一个程序可以改写为:,/file:hello.cpp/This program prints the message“Hello world.”/On the screen#include using namespace std;int main()cout“Hello world.”endl;return 0;,返回函数执行的结果,第二章 通过例子学习,第一个程序第二个程序变量定义数据类型符号常量算术表达式,赋值表达式自增自减运算符强制类型转换数据的输入输出构思一个程序,计算园的面积和周长,/file:circle.cpp/该程序用于计算园的面积和周长#define PI 3.14159/定义符号常量#include using namespace std;int main()double radius,area,circum;cout radius;area=PI*radius*radius;circum=2*PI*radius;cout endl;cout 园的面积为:area endl;cout 园的周长为:circum endl;return 0;,变量定义,输入阶段,计算阶段,输出阶段,程序的组成,变量定义:为一些在程序编写时值未知的数据预约它们的存放处 输入阶段:获取执行时才能确定的用户数据。输入过程一般包括两步:显示提示信息 读取数据 计算阶段:由输入推导出输出的过程。通常通过各种计算得到。输出阶段:显示程序执行的结果各阶段之间一般用空行分开,第二章 通过例子学习,第一个程序第二个程序变量定义数据类型符号常量算术表达式,赋值表达式自增自减运算符强制类型转换数据的输入输出构思一个程序,变量定义,变量,也称为对象,是数据的存放之处 变量有三个重要属性:名称、值、类型。变量定义就是告诉编译器变量的名字及该变量中可以存放哪一类数据类型的值C语言中变量定义的格式:类型名 变量名1,变量名2,变量名n;如:int num1,num2;double area;在C语言中,每个变量在使用前必须被定义,以便编译器检查变量使用的合法性。,变量命名,名字必须以字母或下划线开头。C语言中,名字中出现的大写和小写字母被看作是不同的字符,因此ABC,Abc,abc是三个独立的变量名。名字中的其它字符必须是字母、数字或下划线,不得使用空格和其它特殊符号名字不可以是系统的保留词,如:int,double,for,return等,它们在C语言中有特殊用途C语言没有规定过名字的长度,但各个编译系统都有自己规定。名字应使读者易于明白其存储的值是什么,做到“见名知意”。,第二章 通过例子学习,第一个程序第二个程序变量定义数据类型符号常量算术表达式,赋值表达式自增自减运算符强制类型转换数据的输入输出构思一个程序,数据类型,数据类型包括两个方面:数据的取值范围可用的操作C/C+中的数据类型分为两大类:基本数据类型:整型、浮点型、字符型和布尔型构造数据类型:数组、结构、联合和枚举,数据类型,整型实型字符型布尔型枚举类型,重新命名类型名定义新的类型变量赋初值了解占用的内存量,数据类型整型,整型数的表示范围:由各个编译器指定。整型数有三种存储方式,在VC中占用的空间如下所示基本型:int 4 byte(PC)231(2311)长整型:long/long int 4 byte(PC)231(2311)短整型:short/short int:2 byte(PC)-215(2151)允许的操作:算术运算、比较大小等,整数的内部表示,整数在计算机内部通常用补码表示,在VC中也是如此。应用整数运算时要注意数据的表示范围。如整数用两个字节表示时,正整数 32767 加 1 的结果为-32768。这称为整数运算的溢出。系统不检查整数溢出错误,程序员必须自己保证程序中不出现这样的错误。,无符号整数,在某些应用中,不可能出现负数,则整型数中有一半的数值范围是被浪费的。因此在C/C+中可以将最高位看成是数字而不是符号,称为无符号数。无符号数的定义:在各种整数类型前加上关键词unsigned,变成unsigned int,unsigned short,unsigned long,整型常量,整型常量可用十进制、八进制和十六进制表示十进制:123,-234八进制:0123十六进制:0 x123,0 x3a2f一旦定义了一个整型变量,可以将一个整型常量赋给该整型变量。如 int a;a=123;或 a=0 x123;都是正确的,数据类型,整型实型字符型布尔型枚举类型,重新命名类型名定义新的类型变量赋初值了解占用的内存量,数据类型浮点数,C语言中的实型数以浮点形式表示浮点类型的分类单精度 float:占用4字节,3字节尾数,1字节指数,精确度7位,范围10381038 双精度 double:占用8字节,5字节尾数,3字节指数,精确度1516位,范围1030710308 浮点数无法精确表示,浮点数常量,浮点数常量有两种表示法:十进制表示:1.23 3.14-5.988科学计数法:尾数*10指数 尾数e指数 123e2=12300 2.25e-3=0.00225 注意:尾数不能为空 e3 1e3 指数必须为整数 2.5e2.3是非法的,数据类型,整型实型字符型布尔型枚举类型,重新命名类型名定义新的类型变量赋初值了解占用的内存量,数据类型字符类型,字符类型:存放一个字母或符号,占一个字节,存放的是字符的内码。字符类型名:char,字符的机内表示,字符的机内表示 用字符编码表示。常用的有ASCII,BCD,EBCDIC等。PC机中都用ASCII.ASCII码的重要特性 数字0到9是顺序存放的 字母被分成二段:大写的和小写的。大写字母是连续的,小写字母也是连续的,可打印字符和非打印字符,可打印字符:小写字母、大写字母、数字、标点符号、空格等非打印字符:换行和报警字符或响铃 等控制字符,可打印字符的使用,字符常量 a,S,2等用一对单引号括起来的数据称为字符常量,可打印字符的使用,赋值 char c1,c2;c1=a;c2=b;c1=97;c2=98;比较c=9和c=9?运算 如:c1=a;c1=c1+2;c1的值应为?如c中存放的是小写字母,则c-a+1表示什么?如c中存放的是数字(0 9),则c-0表示什么?如c1,c2存放的是小写字母,则c2-c1表示什么?,转义字符,非打印字符需要用转义序列表示换行符写为n,虽然它由两个字符和n来描述,但它表示一个ASCII字符。反斜杠符号称为转义字符。双引号和单引号的转义 如果在一个串中把双引号”用作一个字符或表示字符常量单引号,必须要对它转义,否则它会终结该字符串。cout“”abc”;输出“abc”双引号的单字符表示:可以写”,也可以写”。八进制数转义序列 警告字符a 可以表示成:007,07,7,常用的转义字符,数据类型,整型实型字符型布尔型枚举类型,重新命名类型名定义新的类型变量赋初值了解占用的内存量,数据类型布尔类型,布尔型(bool):标准C中没有布尔型数据,这是C+中新增的数据类型。占一个字节。它的值为:true,false布尔型数据可以进行逻辑运算布尔型数据的内部表示:true为1,false为0,数据类型,整型实型字符型布尔型枚举类型,重新命名类型名定义新的类型变量赋初值了解占用的内存量,枚举类型,有时在设计程序时会用到一些特殊的对象,这些对象的取值范围是有限可数的。如在一个生成日历的程序中很可能用到一个表示一个星期中的每一天的对象。该对象可能取值的范围就是星期日到星期六。解决方法 采用编码:假设0表示星期日,1表示星期一,6表示星期六。然后用一个整型变量如weekday表示这个对象。缺点是可读性差。符号常量:用#define功能将这些数字定义为符号常量 定义一个新类型,定义新的枚举类型,格式:enum 枚举类型名 元素表;定义一个表示一周中每天的名字的枚举类型:enum weekdayT Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday;枚举类型变量的定义:weekdayT weekday;枚举类型变量的使用:赋值:weekday=Friday;比较:Monday Friday 比较这两个值的内部表示枚举类型不能直接输入输出,枚举类型的内部表示,在内部,枚举类型采用编码表示。当定义 enum weekdayT Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday;时,默认用0代表Sunday,1代表Monday,6表示SaturdayC语言的编译器也允许明确指出枚举类型的元素的内部表示。例如,希望从1而不是0开始编号,可以这样定义 enum weekdayT Sunday=1,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday;也可以从中间某一个开始重新指定,如 enum weekdayT Sunday,Monday,Tuesday=5,Wednesday,Thursday,Friday,Saturday;,数据类型,整型实型字符型布尔型枚举类型,重新命名类型名定义新的类型变量赋初值了解占用的内存量,用typedef重新命名类型名,格式:typedef 已有类型名 新类型名;如一旦执行了:typedef int INTEGER;那么,要定义一个整型变量a,除了可以用 int a;之外,也可以用 INTEGER a;,数据类型,整型实型字符型布尔型枚举类型,重新命名类型名定义新的类型变量赋初值了解占用的内存量,定义新的类型,C+通过类(class)来定义新的数据类型类定义包括:该类型的对象包含的数据,称为类的数据成员该类型的对象可以执行的操作,称为类的成员函数类的设计接口(interface):类包括那些数据成员和成员函数实现(implementation):成员函数是如何实现的定义新类型是C+和C的质的变化,我们将在下学期详细介绍,数据类型,整型实型字符型布尔型枚举类型,重新命名类型名定义新的类型变量赋初值了解占用的内存量,变量赋初值,在C语言中,变量定义只是给变量分配相应的空间 C语言允许在定义变量的同时给变量赋初值 格式:类型名 变量名=初值;类型名 变量名(初值);如:int count=0;或 int count(0);都是定义整型变量count,并为它赋初值0。可以给被定义的变量中的一部分变量赋初值,如:int sum=0,count=0,num;,定义变量时没有赋初值,然后直接引用该变量是危险的!,数据类型,整型实型字符型布尔型枚举类型,重新命名类型名定义新的类型变量赋初值了解占用的内存量,了解占用的内存量,sizeof 运算符用来了解某一类型或某一表达式占用的内存量。sizeof 运算符的用法:sizeof(类型名)或 sizeof(表达式)如:sizeof(float):float类型的变量占用的内存量 sizeof(a+15):表达式 a+15 的计算结果所占的内存量,第二章 通过例子学习,第一个程序第二个程序变量定义数据类型符号常量算术表达式,赋值表达式自增自减运算符强制类型转换数据的输入输出构思一个程序,符号常量,用#define定义符号常量的问题 所定义的符号常量无法进行类型检查#define的处理只是简单的字符串的替换,可能会引起一些意想不到的错误C+建议用const定义符号常量const=;如:const double PI=3.1415926;,第二章 通过例子学习,第一个程序第二个程序变量定义数据类型符号常量算术表达式,赋值表达式自增自减运算符强制类型转换数据的输入输出构思一个程序,算术表达式,计算是计算机提供的最基本的功能,算术表达式是完成此功能的工具算术表达式由运算符和运算对象组成算术运算符:+-*/%出“-”外,所有的算术运算符都是二元运算符。“-”可为二元运算,也可为一元运算优先级:高*/%,低+-结合性:左结合运算对象可以是整型、浮点型、字符型和布尔型,应用算术表达式的注意事项,乘号不能省略出现除法时注意括号的应用。如 应写为:(a+b)/(c*d)或(a+b)/c/d 但不能写成:(a+b)/c*d 或 a+b/c*d在写算术表达式时,为使表达式更加清晰,一般在运算符前后各插一个空格,各种类型的数据的混合运算,整型与整型数运算,结果为整型,如 5/2=2 整型与浮点数运算,结果为浮点数,如5/2.0=2.5 字符或布尔型与整型数运算,结果为整型。字符或布尔型与浮点数运算,结果为浮点数。浮点数与浮点数运算,结果为浮点数。,各类数值型数据间的混合运算,3.5*2+a-b/4,自动类型转换规则:,数学函数库,在C+语言中,其他的数学运算都是通过函数的形式来实现。所有的数学函数都在cmath中。要使用这些数学函数,必须在程序头上写上编译预处理命令:#include using namespace std;,cmath的主要内容,第二章 通过例子学习,第一个程序第二个程序变量定义数据类型符号常量算术表达式,赋值表达式自增自减运算符强制类型转换数据的输入输出构思一个程序,变量赋值,变量赋值是通过赋值表达式实现,赋值表达式格式=作用:将右边的表达式的值存入左边的变量,整个赋值表达式的值是右边的表达式的结果。注意:x=x+2是正确的表达式赋值运算符是右结合的左值(lvalue):在C+中,能出现在赋值运算符左边的表达式称为左值赋值语句:赋值表达式后面加上分号。,赋值时的自动类型转换,当表达式的结果类型和变量类型不一致时,系统会将右边的表达式的结果转换成左边的变量的类型,再赋给左边的变量。转换规则:实型数-整型:舍弃小数部分。整型数-实型数:数值不变,但以浮点的形式保存在相应的变量中 Double-float:截取前面七位有效数字存放到float变量中Float-double:将有效位扩展到16位字符型-整型变量:将字符型数据放入整型变量的最后一个字节。如果所用系统将字符处理成无符号量,则前面补0。如果所用系统将字符处理成有符号量,则扩展符号。整型-字符类型:直接将整型数据的最低八位赋给字符变量。,赋值的嵌套,将赋值表达式作为更大的表达式的一部分。如:a=(x=6)+(y=7)等价于分别将x 和 y 的值设为6 和 7,并将6和7相加,结果存于变量a 赋值运算符=的优先级比算术运算符低,多重赋值,a=b=c=5,给a,b,c均赋值5,当用到多重赋值时,要保证所有的变量都是同类型的,以避免在自动类型转换时出现与预期不相符的结果的可能性。如变量d定义为double,变量i定义为int,语句 d=i=1.5;的结果是:i等于1,d等于1.0,复合赋值运算,其他运算符与赋值运算符结合的运算符称为复合赋值运算符 常用的复合赋值运算符有:+=,-=,*=,/=,%=变量 op=表达式;等价于:变量=变量 op 表达式;如:balance+=deposit;balance-=surcharge;x/=10;salary*=2;,第二章 通过例子学习,第一个程序第二个程序变量定义数据类型符号常量算术表达式,赋值表达式自增自减运算符强制类型转换数据的输入输出构思一个程序,自增、自减运算符,自增、自减运算符:+,-相当于+=1和-=1,它有前缀和后缀两种用法+k,k+,-k,k-,但含义有所不同。如:i=3,j=i+,i=4 j=3,j=+i,i=4 j=4,j=i-,i=2 j=3,j=-i,i=2 j=2,第二章 通过例子学习,第一个程序第二个程序变量定义数据类型符号常量算术表达式,赋值表达式自增自减运算符强制类型转换数据的输入输出构思一个程序,强制类型转换,赋值和算术运算时会执行自动类型转换如要想使4/5的结果是0.8,而不是0,该怎么办?可以将其中一个写成浮点数。例如:4.0/5或4/5.0int x=4,y=5;要想使x/y的结果为0.8而不是0,该怎么办?答案是:用强制类型转换,强制类型转换,强制类型转换格式:(类型名)(表达式)类型名(表达式)例如,要想使两个整型变量x和y出的结果为double型,可以用下列语句,double z;z=(double)x/y;,考虑:如果写为 z=(double)(x/y)的结果如何?,转换类型,强制类型转换在C+类型系统中引入了一个漏洞为了方便查找这些错误,C+提供了在强制类型转换时指明转换的性质。转换的性质有四种:静态转换(static_cast):用于编译器隐式执行的任何类型转换 重解释转换(reinterpret_cast)常量转换(const_cast)动态转换(dynamic_cast)格式 转换类型(表达式)z=static_cast(x)/y;,第二章 通过例子学习,第一个程序第二个程序变量定义数据类型符号常量算术表达式,赋值表达式自增自减运算符强制类型转换数据的输入输出构思一个程序,输入流对象cin,键盘流入的数据流,将键盘输入的数据存入变量格式:cin 变量cin 变量1 变量2 变量n,用户的响应,当程序执行到这个语句时会停下来等待用户的输入 用户可以输入数据,用回车()结束。当有多个输入数据时,一般用空白字符(空格、制表符和回车)分隔。如:a为整型,d为double,则对应于 cin a d,用户的输入可以为12 13.212(tab键)13.2 1213.2 33,cin.get,作用:从键盘接受一个字符用法:cin.get(ch);或 ch=cin.get(),都是从键盘输入一个字符并存放到变量ch中对应的用户输入:cin.get()可以接收任意的字符,包括空白字符。,如a,b,c为字符型变量,对应语句a=cin.get();b=cin.get();c=cin.get();如果输入a b c,则a的值是a,b的值是空格,c的值是b。如果将这个输入用于语句:cin a b c,那么变量a、b、c的内容分别为a、b、c,因为空格被作为输入值之间的分隔符。,输出流对象cout,将变量或表达式的内容显示在显示器上 格式输出一个变量的值:cout a;输出多个变量的值:cout a b c;输出表达式的结果:cout“Hello world”上述情况的组合:cout a+b=a+b endl;,第二章 通过例子学习,第一个程序第二个程序变量定义数据类型符号常量算术表达式,赋值表达式自增自减运算符强制类型转换数据的输入输出构思一个程序,构思一个程序,在设计一个程序时,除了要考虑如何解决问题外,还要考虑将来维护的方便性主要从两方面实现:程序设计的风格:使程序易读、易理解在设计时,尽量考虑到将来可能的修改,为这些修改提供便利,程序设计的风格,用注释告诉读者他们所需要知道的东西 使用缩进来区别程序不同的控制级别 使用有意义的名字 避免直接使用那些有特殊意义的常量 逐步养成变量和函数的命名习惯 在适当的情况下使用标准习语和习惯 避免不必要的复杂性,设计将来的修改,将需要修改的部分设计的灵活一些,尽量使得只做一个修改,修改效果能传递到程序的所有相关部分,总结,本章介绍了C+程序的总体结构及工作方式。具体包括:如何保存用户的数据读取用户提供的数值数据;在屏幕上显示文本和数据;对现有数据进行算术运算得到新的结果,

    注意事项

    本文(C++程序设计课程介绍-第二章 通过例子学习.ppt)为本站会员(laozhun)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开