C++程序设计(4737)刘振安.ppt
《C++程序设计(4737)刘振安.ppt》由会员分享,可在线阅读,更多相关《C++程序设计(4737)刘振安.ppt(360页珍藏版)》请在课桌文档上搜索。
1、1,4737 C+程序设计,2,需要了解的C语言知识,C语言基本语法If else 语句 For语句While语句,数组定义函数定义指针结构体运算符,3,第一章认识C+的对象,本节要点:,C与C+的关系(领会)掌握函数原型和命名空间的使用方法(综合应用)对象和预处理基本概念(领会)掌握C+程序的基本结构(综合应用),1.1初识C+的函数和对象,4,第一章认识C+的对象,1.1初识C+的函数和对象,C语言回顾,int x;,该语句在C语言和C+中均可使用,x在C语言中称为变量,在C+中称为对象。C语言与C+的不同点:称呼不同,5,第一章认识C+的对象,1.1初识C+的函数和对象,C语言回顾,结构
2、体的定义,struct point float x;float y;,表示定义一种点数据类型,包含坐标x,y.定义完成后,point成为一种类型,使用方式类似int类型,如:定义p1变量为点类型,写作:struct point p1;或point p1;,定义x变量为整型:int x;,6,第一章认识C+的对象,1.1初识C+的函数和对象,C语言回顾,结构体的定义,struct student int num;char name10;float grade;;,若定义一种结构体记录学生信息包含学号,姓名,成绩,如何定义?,定义s1变量为学生类型,写作:struct student s1;,7,
3、第一章认识C+的对象,1.1初识C+的函数和对象,例1.1输入一个点的信息,求该点到原点的距离,预处理命令,使用命名空间,声明函数,声明常量,定义结构体,,主函数main,求距离函数result,8,例1.1,9,例1.1主函数,10,例1.1,11,第一章认识C+的对象,1.1初识C+的函数和对象,对程序的说明:1,混合型语言C语言程序包含main函数面向对象语言没有main函数C+是混合型语言,12,第一章认识C+的对象,1.1初识C+的函数和对象,对程序的说明:2,注释方式/*。*/。,13,第一章认识C+的对象,1.1初识C+的函数和对象,对程序的说明:3,输入输出流cin和cout是
4、C+语言中进行输入输出操作的函数。其定义在isstream头文件中。类似:C语言中printf函数scanf函数putchar函数getchar函数,使用时要包含“stdio.h”,14,第一章认识C+的对象,1.1初识C+的函数和对象,对程序的说明:3,输入输出流cin和cout函数的简单使用cout后加要输出的内容,可以是对象或字符串,行末加分号,可用多个来分隔多个输出对象,endl;表示输出后换行。coutendl;等价于 cout“n”;,15,第一章认识C+的对象,1.1初识C+的函数和对象,对程序的说明:3,输入输出流cin和cout函数的简单使用cin后加存放数据的对象,即变量,
5、行末加分号,可用多个来分隔多个输入对象。cinxy;等价于 cinx;ciny;,16,第一章认识C+的对象,1.1初识C+的函数和对象,对程序的说明:4,使用命名空间是C+语言中封装程序库名称的一种机制记忆:C+标准类库中的对象和函数都属于std命名空间使用这些对象和函数时要using namespace std,17,第一章认识C+的对象,1.1初识C+的函数和对象,对程序的说明:4,使用命名空间使用std命名空间时注意:使用C语言中的头文件时,要写成“xxx.h”形式使用C+中的头文件则不能加上“.h”,18,第一章认识C+的对象,1.1初识C+的函数和对象,对程序的说明:5,对象定义及
6、初始化int x;x=0;等价于 int x=0;C语言int x(0);C+语言等价于上两条语句。此种初始化语法在C+中称为构造函数语法,19,第一章认识C+的对象,1.1初识C+的函数和对象,对程序的说明:6,函数原型及其返回值函数要有类型,若要得到处理结果则要使用return语句。,20,第一章认识C+的对象,1.1初识C+的函数和对象,对程序的说明:6,函数原型及其返回值函数原型声明函数调用在函数定义之前时要对函数进行声明,21,22,第一章认识C+的对象,1.1初识C+的函数和对象,对程序的说明:7,const修饰符和预处理程序常量定义:#define PI 3.1415(c语言)在
7、变量定义之前加上const关键字,表示定义的变量值不可改变。const int PI=3.1415;const int PI(3.1415);,23,第一章认识C+的对象,1.1初识C+的函数和对象,对程序的说明:7,const修饰符和预处理程序常量定义:#define PI 3.1415#define命令的特点:原样替换掉程序中出现的预定义宏名符号如:#define BUFFER 100若程序出现:x=BUFFER/3;x=?尽量选择const定义常量,24,第一章认识C+的对象,1.1初识C+的函数和对象,对程序的说明:7,const修饰符和预处理程序const关键字的特点:利用const
8、定义常量时必须给出常量的值,除非该常量是extern的。如:const int d;extern const;,作业:1,extern变量是什么样的变量?,25,第一章认识C+的对象,1.1初识C+的函数和对象,对程序的说明:7,const修饰符和预处理程序C+预处理命令以#开始,分为宏定义,文件包含和条件编译,作业:2,写出C语言中预处理命令有哪些,举例说明每个命令含义及作用。3,写出C语言和C+语言中#include命令的不同处,26,第一章认识C+的对象,1.1初识C+的函数和对象,对程序的说明:8,程序运行结果,27,第一章认识C+的对象,1.1初识C+的函数和对象,对程序的说明:9,
9、程序书写规则注意缩进对齐,使程序清晰明了,28,1.2认识C+语言面向过程编程的特点,本节要点:,函数重载(领会)掌握C+的新数据类型(简单应用)动态分配内存(综合应用)熟练掌握引用的使用方法(综合应用)了解对指针使用const限定符的目的,方法(识记)了解泛型算法应用于普通数组的方法(识记)掌握数据的简单输入输出(简单应用),29,第一章认识C+的对象,1.2认识C+语言面向过程编程的特点,本节要点:,1.2.1函数重载(领会)C+允许一个函数定义多个版本。使得一个函数完成多种功能。即:同一个函数名定义多次。,30,1.2.1函数重载(领会)重载函数max的调用形式:,31,1.2.1函数重
10、载(领会)重载函数max的定义形式:,32,1.2.1函数重载(领会)重载函数max的声明形式:,可否不声明?,重载函数的要点:函数名相同,参数个数不同,参数类型不同,33,1.2.2 C+的新数据类型(简单应用),1,void类型void表示无类型,或空类型。不能声明变量,只能声明函数返回值。表示函数无返回值。,34,2,bool型(逻辑型,布尔型)占1个字节。表示逻辑运算中的”真”假”3,整型(int long short)int、short 至少16位long 至少32位short 不得比int 长int 不得比long 长,35,4,char型(字符型)占1个字节。5,实型(float
11、/double/long double),36,5,,37,6,常量表示整型:0前缀表示8进制数,0 x前缀表示16进制加L、l后缀表示长整型常量实型:F、f后缀表示浮点型常量(float)实数加L、l后缀表示long double型无前缀,无后缀的为double型,38,6,常量表示,0L123l0550 x50 xaf01,7,转义字符,101trn0 x41,39,1.2.3 动态分配内存(综合应用)new 动态分配内存一般格式:指针变量=new 类型size;new 运算符得到新分配空间的首地址,赋值给指针变量后,可根据指针变量的加减运算来使用这些空间。delete 释放内存 使用完毕
12、后要释放内存delete p;,40,1.2.4 引用的使用方法(综合应用)C+中新的表示形式。引用即使用变量的别名。定义形式:数据类型 表示a是变量x的别名。一旦定义别名后则a和x完全等价。,41,1.2.4 引用的使用方法(综合应用)C+中新的表示形式。引用即使用变量的别名。定义形式:数据类型 表示a是变量x的别名。一旦定义别名后则a和x完全等价。,42,1.2.4 引用的使用方法(综合应用)C+中新的表示形式。引用即使用变量的别名。定义形式:数据类型&别名=对象名;,43,使用引用时注意:1,不能定义引用的引用 int 2,不能直接定义数据组的引用,44,1.2.4 引用的使用方法(综合
13、应用),一般格式:typedef 类型 类型别名使用typedef定义某类型别名后,可使用该别名来定义相关对象。例如:typedef long int lint;则 long int i;等价于 lint i;,用法总结:建立一个类型别名的方法很简单,在传统的变量声明表达式里用类型名替代变量名,然后把关键字typedef加在该语句的开头,45,引用数组名作参数,一般格式:typedef 类型 类型别名使用typedef定义某类型别名后,可使用该别名来定义相关对象。例如:typedef long int lint;则 long int i;等价于 lint i;,46,Typedef使用说明,t
14、ypedef用法总结:建立一个类型别名的方法很简单,在传统的变量声明表达式里用类型名替代变量名,然后把关键字typedef加在该语句的开头,等价于,47,1.2.5 对指针使用const限定符(识记),1,左值和右值表达式:E1=E2E1是左值,是可被修改的int*p,x=1;*p=2;&p表示什么?,48,1.2.5 对指针使用const限定符(识记),2,指向常量的指针const常量定义,表示const后的表达式不可改变,定义时必须给出表达式的值。int x=11;const int*P;const int*P=表示*P是不可改变的。*P不能在=左侧。P=&y;x=12;,49,1.2.5
15、 对指针使用const限定符(识记),3,常量指针const常量定义,表示const后的表达式不可改变,定义时必须给出表达式的值。int x=11;int*const P;错!必须初始化int*const P=&x;表示P是不可改变的。P不能在=左侧。*p可改变。,50,1.2.5 对指针使用const限定符(识记),4,指向常量的常量指针const常量定义,表示const后的表达式不可改变,定义时必须给出表达式的值。int x=11;const int*const P=&x;表示P是不可改变的。*p不可改变。,51,1.2.6 泛型算法应用于普通数组(识记)掌握数据的简单输入输出(简单应用)
16、泛型算法是C+标准模板库(Standard Template Library)提供的一组操作。利用这些操作可以简化数组操作。要使用这些操作必须包含头文件,52,1.2.6 泛型算法应用于普通数组(识记)假定a,b是两个数组名,其长度为len操作示例:1,reverse(a,a+len)将数组a中的元素顺序反转。(逆向)2,copy(a,a+len,b)将a数组的内容原样复制给b数组reverse_copy(a,a+len,b)将a数组的内容反转后复制给b数组,53,1.2.6 泛型算法应用于普通数组(识记)假定a,b是两个数组名,其长度为len操作示例:3,sort(a,a+len)将数组a中
17、的元素按升序排序4,sort(a,a+len,greater()将数组a中的元素按降序排序,54,1.2.6 泛型算法应用于普通数组(识记)假定a,b是两个数组名,其长度为len操作示例:5,find(a,a+len,value)在数组a中查找值为value的元素,并返回位置指针,55,1.2.6 泛型算法应用于普通数组(识记)假定a,b是两个数组名,其长度为len操作示例:6,输出数组中的内容Copy(a,a+len,Ostream_iterator(cout,”字符串”))Ostream_iterator表示输出流操作符:表示要输出的数组类型Cout表示流输出操作“字符串”:表示分隔字符串
18、,56,第一章认识C+的对象,1.2认识C+语言面向过程编程的特点,本节要点:,1.2.7 数据的简单输入输出(简单应用),57,第一章认识C+的对象,1.3程序的编辑、编译、运行,58,第一章认识C+的对象,课后题:P26 三、改错题 写作业本上,59,第二章从结构到类的演变,2.1结构的演化.结构发生质的演变1.函数与数据共存,C+允许结构中定义函数,成为成员函数在结构中同时定义成员变量与成员函数使用格式:结构对象.成员变量结构对象.成员函数,60,第二章从结构到类的演变,1.函数与数据共存结构的定义,struct point double x,y;void Setxy(double a,
19、double b)x=a;y=b;void Display()cout xtyendl;,61,第二章从结构到类的演变,1.函数与数据共存结构的定义,struct point double x,y;void Setxy(double a,double b)x=a;y=b;void Display()cout xtyendl;,数据成员,成员函数,62,第二章从结构到类的演变,1.函数与数据共存结构的定义,63,第二章从结构到类的演变,运行结果,64,第二章从结构到类的演变,主函数,65,完整程序,66,修改后的程序,67,第二章从结构到类的演变,2 封装若定义结构体时,使用了private关键
20、字,则产生封装性,68,使用了private关键字,则产生封装性,69,第二章从结构到类的演变,2 封装在定义结构时,若使用了private则产生封装性,表示成员为私有的,只能在结构体内部通过公有成员函数使用。若未添加private则表示默认为public。类定义时默认为private。,70,第二章从结构到类的演变,2.1.2 使用构造函数初始化结构的对象在定义结构时,与结构同名的函数称为构造函数。若定义的函数与某个已定义函数重名而参数类型或个数不同,则称为函数重载。,71,2.1.2 使用构造函数初始化结构的对象,问题:那个函数是构造函数?那个函数被重载了?,结构体的定义,72,2.1.2
21、 使用构造函数初始化结构的对象,注:构造函数在定义结构体对象时自动执行,并根据是否初始化来自动选择所调用的构造函数,73,2.1.2 使用构造函数初始化结构的对象,74,2.1.2 使用构造函数初始化结构的对象,75,第二章从结构到类的演变,2.2从结构演化成一个简单的类,将程序中struct替换为class即变为类的标准定义形式,76,第二章从结构到类的演变,2.2从结构演化成一个简单的类,产生类对象p1,p2,为对象的属性赋值,显示对象属性值,77,第二章从结构到类的演变,2.2从结构演化成一个简单的类,类图的表示,类名,类属性/成员变量,类操作/成员函数,78,第二章从结构到类的演变,2
22、.3面向过程和面向对象,简单了解对象的含义,79,第二章从结构到类的演变,2.3面向过程和面向对象,简单了解对象的含义,80,第二章从结构到类的演变,2.3面向过程和面向对象,简单了解对象的含义,81,第二章从结构到类的演变,面向过程 的求解步骤给出三角形三个顶点坐标,计算三边长,并输出步骤:输入x1,y1,x2,y2,x3,y3 六个数据 计算(x1,y1)和(x2,y2)距离 计算(x1,y1)和(x3,y3)距离 计算(x2,y2)和(x3,y3)距离 输出三个距离,82,第二章从结构到类的演变,面向对象 的求解步骤给出三角形三个顶点坐标,计算三边长,并输出,设计类将点设计为一个类,并提
23、供相关的属性和操作,83,第二章从结构到类的演变,面向对象 的求解步骤给出三角形三个顶点坐标,计算三边长,并输出,定义对象同时给出坐标point A(x1,y1)point B(x2,y2)point C(x3,y3),84,第二章从结构到类的演变,面向对象 的求解步骤给出三角形三个顶点坐标,计算三边长,并输出,定义对象,然后获取坐标point A;point B;point C;A.Getx();A.Gety();B.Getx();B.Gety();C.Getx();C.Gety();,85,第二章从结构到类的演变,面向对象 的求解步骤给出三角形三个顶点坐标,计算三边长,并输出,计算距离并输
24、出AB=A.GetLength(B);AC=A.GetLength(C);BC=B.GetLength(C);,86,第二章从结构到类的演变,2.4C+面向对象程序设计特点,2.4.1 对象三要素:对象名,属性,操作,87,第二章从结构到类的演变,2.4C+面向对象程序设计特点,2.4.1 对象三要素:对象名,属性,操作,88,第二章从结构到类的演变,2.5使用类和对象,2.5.1使用string对象,类名,类的属性用于存放字符串,类的操作/方法/成员函数,89,第二章从结构到类的演变,2.5使用类和对象,2.5.1使用string对象,该类是C+语言中的内部预定义类,要在程序中使用该类时必须
25、添加头文件#inculude,90,第二章从结构到类的演变,2.5使用类和对象,2.5.1使用string对象,类的初始化:string str1=“A”;string str1=A;string str1=AB;string str1=“AB”;可以以数组的形式使用str1对象中的字符串str10的值是?str11的值是?,91,2.5.1使用string对象,类的初始化:string str1(“hello,”);string str2=“world”;可以以数组的形式使用str1对象中的字符串str10的值是?str20的值是?,92,2.5.1使用string对象,93,2.5.1使用
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 程序设计 4737 刘振安
链接地址:https://www.desk33.com/p-236179.html