C++面向对象程序设计 教学课件 ppt 作者 李兰_第1章

上传人:w****i 文档编号:94518148 上传时间:2019-08-08 格式:PPT 页数:42 大小:201.50KB
返回 下载 相关 举报
C++面向对象程序设计 教学课件 ppt 作者 李兰_第1章_第1页
第1页 / 共42页
C++面向对象程序设计 教学课件 ppt 作者 李兰_第1章_第2页
第2页 / 共42页
C++面向对象程序设计 教学课件 ppt 作者 李兰_第1章_第3页
第3页 / 共42页
C++面向对象程序设计 教学课件 ppt 作者 李兰_第1章_第4页
第4页 / 共42页
C++面向对象程序设计 教学课件 ppt 作者 李兰_第1章_第5页
第5页 / 共42页
点击查看更多>>
资源描述

《C++面向对象程序设计 教学课件 ppt 作者 李兰_第1章》由会员分享,可在线阅读,更多相关《C++面向对象程序设计 教学课件 ppt 作者 李兰_第1章(42页珍藏版)》请在金锄头文库上搜索。

1、1.1 计算机程序设计语言的发展 (Computer Programming Languages Development) 1.2 程序设计方法(Programming Methodology) 1.3 面向对象程序设计的基本特点 (Basic Feature of Object-Oriented Programming) 1.4 简单的C+程序(Simple C+ Programs) 本章小结(Chapter Summary) 习题1(Exercises 1),1.1.1 程序设计语言概述 (Introduction to Programming Languages) 计算机的每一步发展几乎

2、都会在软件设计和程序设计语言中得到充分体现。随着软件开发规模的扩大和开发方式的变化,人们开始将程序设计语言作为一门科学来对待,程序设计方法和技术在各个时期的发展直接导致了一大批风格各异的程序设计语言的诞生。,1.1 计算机程序设计语言的发展,1.1.2 机器语言与汇编语言 (Machine Language and Assemble Language) 1机器语言 最基本的计算机语言是机器语言。 2汇编语言 汇编语言(也称为第二代语言)的出现简化了编程人员的工作。 虽然汇编语言较机器语言已有很大的改进,但仍是低级语言,它有以下两个主要缺点: (1) 涉及细节太多; (2) 与具体的计算机相关。

3、,1.1.3 高级语言(Advanced Language) 20世纪60年代,出现了高级语言。由于高级语言的编写方式更接近人们的思维习惯,因此用高级语言编写的程序易读、易懂、易于维护。高级语言的另一个优点是:编写的程序具有一定的通用性。使用高级语言编程,一般不必了解计算机的指令系统和硬件结构,只需掌握解题方法和高级语言的语法规则,就可以编写程序。,1.1.4 面向对象语言 (Object-Oriented Programming Language) 20世纪80年代,出现了面向对象的编程语言。面向对象语言的出现改变了编程者的思维方式,使程序设计的出发点由问题域中的过程转向问题域中的对象及其相

4、互关系,这种转变更加符合人们对客观事物的认识。 面向对象的语言分为几大类别:一类是纯面向对象的语言,另一类是混合型的面向对象语言,还有一类是与人工智能语言相结合形成的语言。,1.2.1 结构化程序设计方法 (Structured Programming) 结构化程序设计(Structured Programming, SP)方法是由E.W.Dijkstra等人于1972年首先提出的,它建立在Bohm、Jacopini证明的结构定理的基础之上。,1.2 程序设计方法(Programming Methodology),结构化程序设计方法的优点如下: (1) 自顶向下,逐步细化。 (2) 模块化设计

5、。 (3) 结构化编码。 随着程序规模与复杂性的增长,面向过程的结构化程序设计方法存在明显的不足之处: (1) 数据安全性问题。 (2) 可维护性及可重用性差。 (3) 图形用户界面的应用程序很难用过程来描述和实现,开发和维护也都很困难。,1.2.2 面向对象程序设计方法 (Objected-Oriented Programming) 面向对象程序设计方法建立在结构化程序设计方法的基础之上,避免了结构化程序设计方法中所存在的问题。 当然,对象之间存在各种联系,但它们之间只能通过“消息”进行通信。程序可表示为: 程序 = 对象 + 类 + 继承 + 消息通信,【例1-1】 用C+ 语言描述,用结

6、构化程序设计方法计算三角形的面积(已知一个三角形的3个顶点的坐标)。 分析:要想计算三角形的面积,就必须知道三角形的3条边长,而边长可以通过坐标求得。假定3个坐标点分别为a(x1,y1)、b(x2,y2)、c(x3,y3),所以3条边长可用下面的公式求出:,求面积之前先计算边长和的一半:,面积的计算公式为:,根据上述问题分析和算法描述,很容易写出求解问题的C+ 源程序代码。由于求三角形的边长要计算3次,因此可编写一个计算边长的函数。因为在程序中要用到输入/输出流和数学函数,所以在程序的开始处必须包含相关的以 .h为扩展名的头文件。编写其源程序如下: #include /包含输入/输出流 usi

7、ng namespace std; #include /包含数学函数的头文件 double edge(double x1,double x2,double y1,double y2) /求三角形的边长,double len; len=sqrt(x1-x2)*(x1-x2)+(y1-y2)*(y1-y2); /求边长 return len; int main() double x1,x2,x3,y1,y2,y3,s,area,ab,ac,bc; /说明变量 cinx1x2x3; ciny1y2y3; /输入坐标值,ab=edge(x1,x2,y1,y2); /求边长 ac=edge(x1,x3,

8、y1,y3); bc=edge(x2,x3,y2,y3); s=(ab+ac+bc)/2; /求边长和的一半 area=sqrt(s*(s-ab)*(s-ac)*(s-bc); /计算面积 cout“area= “arean; /输出三角形面积 return 0 ,【例1-2】 用面向对象的程序设计方法计算矩形面积。 例1-1是采用传统的“面向过程”的程序设计方法实现的,而本例要求用“面向对象”方法实现。源程序如下: #include using namespace std; /类的声明 class RectangleArea public:,void SetData(float L,floa

9、t W); /输入长、宽值 float ComputeArea(); /计算面积 void OutputArea(); /输出面积 private: float length,width,area; /定义长、宽、面积 ; void RectangleArea:SetData(float L,float W) ,length=L; width=W; float RectangleArea:ComputeArea() area=length*width; return area; void RectangleArea:OutputArea() ,cout“area=“areaendl; int

10、main() RectangleArea Rectangl; /声明对象 Rectangl.SetData(8,9); Rectangl.ComputeArea(); Rectangl.OutputArea(); return 0; ,1.3.1 抽象(Abstract) 抽象是人类认识客观世界的最基本的思维方法。,1.3 面向对象程序设计的基本特点 (Basic Feature of Object-Oriented Programming),用C+ 语言可以描述如下: 矩形面积(RectangleArea); 数据抽象:float length,width,area; 代码抽象:void S

11、etData(float L,float W); /输入长、宽值 float ComputeArea(); /计算面积 void OutputArea(); /输出面积,1.3.2 封装(Encapsulation) 封装就是把对象的属性和操作结合成一个独立的系统单位,并尽可能隐蔽对象的内部细节。通过对抽象结果进行封装,将一部分行为作为外部访问的接口与外部发生联系,而将数据和其他行为进行有效隐藏,就可以达到对数据访问权限的合理控制。 在类中,封装是通过存取权限实现的。例如,将每个类的属性和操作分为私有的和公有的两种类型,对象在类的外部,只能访问对象的公有部分,不能直接访问对象的私有 部分。,1

12、.3.3 消息(Message) 消息是面向对象程序设计中用来描述对象之间通信的机制。一个消息就是一个对象要求另一个对象实施某种操作的一个请求。 例如,外界与RectangleArea类进行通信,可以通过下面的C+ 语句来描述: /创建一个Rectangle对象 RectangleArea Rectangle; /通过对象调用ComputeArea()函数 Rectangle.ComputeArea();,1.3.4 继承(Inheritance) 在面向对象程序设计中,继承性是指从已有的对象类型出发建立一种新的对象类型,使这种新对象类型继承原对象的特点和功能,同时又拥有自己特殊的特点和功能。

13、这种思想是面向对象设计对程序设计方法的主要贡献之一。抽象和封装是面向对象程序设计的初步工作。继承是一个对象可以获得另一个对象的特性的机制,它支持层次类这一概念。,1.3.5 多态(Polymorphism) 继承讨论的是类与类间的层次关系;多态则考虑的是这种层次关系以及类自身成员函数之间的关系问题,用于解决功能与行为的再抽象问题。 一个消息可以产生不同的响应效果,这种现象叫做多态。多态即“多种形态”。具体到程序语言,多态则有以下两个含义: (1) 相同的语言结构可以代表不同类型的实体,即一名多用或重载(Overloading)。 (2) 相同的语言结构可以对不同类型的实体进行操作。,下面是两个

14、简单的C+程序的例子。 【例1-3】 编写程序求两个从键盘输入的整型数之和。 程序如下: /功能为求两个整型之和 #include using namespace std; /使用名字空间 void main() /主函数 ,1.4 简单的C+程序(Simple C+ Programs),int x,y,z; / int表示定义3个整型变量 coutxy; /从键盘输入两个数 z=x+y; cout“x+y=”zendl; /输出两个数的和 执行该程序,屏幕上出现如下提示: please input two int number:22 36 输入两个用空格分隔的整型数后,按回车键,得输出结果为

15、 x+y=58,【例1-4】 用一个子函数和一个主函数编写程序实现例1-3的编程要求。 程序如下: /利用函数求两整数之和 #include /C+的预编译命令,其中的 /iostream是C+定义的一个头 /文件,用于设置C+风格的I/O环境 using namespace std; /使用名字空间 int add(int a, int b); /函数原型的声明 int main() /主函数 ,int x,y,sum; /定义三个整型变量 coutxy; /从键盘输入变量x,y的值 sum=add(x,y); /调用函数add计算x+y的值并将 /其赋给sum cout“x+y=“sum“n“; /输出sum的值 return 0; ,int add(int a, int b) /定义add函数,函数值为整型 int c; /定义一个整型变量 c=a+b; /计算两个数的和 return c; /将c的

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号