Presentation is loading. Please wait.

Presentation is loading. Please wait.

C++ 面向对象程序设计 青岛理工大学.

Similar presentations


Presentation on theme: "C++ 面向对象程序设计 青岛理工大学."— Presentation transcript:

1 C++ 面向对象程序设计 青岛理工大学

2 课程基本信息 课本: C++面向对象程序设计,李兰,任凤华等, 2014,第 二次印刷。 参考书籍:
Bruce Eckel.Thinking in C++ (2nd Edition).北京:机械工 业出版社, 郑莉.C++语言程序设计(第3版).北京:清华大学 出版社,2005.7 谭浩强.C++面向对象程序设计.北京:清华大学出 版社,2006.1

3 有关C++面向对象的编程学习网站

4 课程培养目标 建立基本的计算机程序设计概念体系和基本的 程序设计方法。
理解和掌握C++语言的基本语法和语义,初步  理解面向对象的思想,初步掌握面向对象程序  设计的方法。 逐步提高学生的编程能力和调试程序的能力。 为后面的学习打好基础。

5 教学课时与考核 教学课时安排 考核 总学时:48学时 理论授课:30学时 习题课:2学时 实验课:16学时 出勤:10% 实验:20%
期末考试:70%

6 第一章 概述 青岛理工大学

7 本章主要内容 1.1 计算机程序设计语言的发展 1.2 程序设计方法 1.3 面向对象程序设计的基本特点 1.4 简单的C++程序

8 1.1 计算机程序设计语言的发展 1、计算机程序 计算机的工作是用程序来控制的 程序是指令的集合。 指令是计算机可以识别的命令。

9 1.1 计算机程序设计语言的发展 2、机器语言与汇编语言 由计算机硬件系统可以识别的二进制指令组成 的语言称为机器语言。
计算机发展的初期,软件工程师们只能用机器语言来编 写程序。这一阶段,在人类的自然语言和计算机编程 语言之间存在着巨大的鸿沟。 汇编语言将机器指令映射为一些可以被人读懂 的助记符,如ADD、SUB等。 此时编程语言与人类自然语言间的鸿沟略有缩小,但仍 与人类的思维相差甚远。因为它的抽象层次太低,程 序员需要考虑大量的机器细节。

10 1.1 计算机程序设计语言的发展 3、高级语言 高级语言屏蔽了机器的细节,提高了语言的抽 象层次,程序中可以采用具有一定含义的数据 命名和容易理解的执行语句。这使得在书写程 序时可以联系到程序所描述的具体事物。

11 1.1 计算机程序设计语言的发展 4、面向对象语言 出发点: 特点: 更直接地描述客观世界中存在的事物(对象)以及它们 之间的关系。
是高级语言。 将客观事物看作具有属性和行为的对象。 通过抽象找出同一类对象的共同属性和行为,形成类 通过类的继承与多态实现代码重用

12 1.1 计算机程序设计语言的发展 4、面向对象语言 优点:
使程序能够比较直接地反映问题域的本来面目,软件 开发人员能够利用人类认识事物所采用的一般思维方 法来进行软件开发。

13 1.2 程序设计方法 1、结构化程序设计方法 设计思路 程序结构: 自顶向下、逐步求精。采用模块分解与功能抽象,自 顶向下、分而治之。
按功能划分为若干个基本模块,形成一个树状结构。 各模块间的关系尽可能简单,功能上相对独立;每一 模块内部均是由顺序、选择和循环三种基本结构组成 其模块化实现的具体方法是使用子程序。

14 1.2 程序设计方法 2、结构化程序设计方法 优点: 缺点:
有效地将一个较复杂的程序系统设计任务分解成许多 易于控制和处理的子任务,便于开发和维护 缺点: 可重用性差、数据安全性差、难以开发大型软件和图 形界面的应用软件

15 1.2 程序设计方法 3、面向对象程序设计方法 设计思路: 将数据及对数据的操作方法封装在一起,作为一个相 互依存、不可分离的整体——对象。
对同类型对象抽象出其共性,形成类。 类通过一个简单的外部接口,与外界发生关系。 对象与对象之间通过消息进行通信

16 1.2 程序设计方法 3、面向对象程序设计方法 优点: 程序模块间的关系更为简单,程序模块的独立性、数 据的安全性就有了良好的保障。
通过继承与多态性,可以大大提高程序的可重用性, 使得软件的开发和维护都更为方便。

17 【例1-1】用结构化程序设计方法计算三角形的面积(已知一个三角形的3个顶点的坐标)
【例1-1】用结构化程序设计方法计算三角形的面积(已知一个三角形的3个顶点的坐标)   #include<iostream> //包含输入/输出流 using namespace std; #include<math.h> //包含数学函数的头文件 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; //说明变量 cin>>x1>>x2>>x3; //输入坐标值 cin>>y1>>y2>>y3;

18 【例1-1】用结构化程序设计方法计算三角形的面积(已知一个三角形的3个顶点的坐标)
【例1-1】用结构化程序设计方法计算三角形的面积(已知一个三角形的3个顶点的坐标)    ab=edge(x1,x2,y1,y2); //求边长 ac=edge(x1,x3,y1,y3); bc=edge(x2,x3,y2,y3); s=(ab+ac+bc)/2; //求边长和的一半 area=sqrt(s*(s-ab)*(s-ac)*(s-bc)); //计算面积 cout<<“area= ”<<area<<‘\n’; //输出三角形面积 return 0 }

19 【例1-2】用面向对象的程序设计方法计算矩形面积
【例1-2】用面向对象的程序设计方法计算矩形面积  #include <iostream> using namespace std; //类的声明 class RectangleArea { public: void SetData(float L,float W); //输入长、宽值 float ComputeArea(); //计算面积 void OutputArea(); //输出面积 private: float length,width,area; //定义长、宽、面积 }; void RectangleArea::SetData(float L,float W) length=L; width=W; }

20 【例1-2】用面向对象的程序设计方法计算矩形面积
【例1-2】用面向对象的程序设计方法计算矩形面积  float RectangleArea::ComputeArea() { area=length*width; return area; } void RectangleArea::OutputArea() { cout<<"area="<<area<<endl; int main() { RectangleArea Rectangl; //声明对象 Rectangl.SetData(8,9); Rectangl.ComputeArea(); Rectangl.OutputArea(); return 0;

21 1.3 面向对象程序设计的基本特点 1、抽象 忽略事物的非本质特征,只注意那些与当前目 标有关的本质特征,从而找出事物的共性,把 具有共同性质的事物划分为一类,得出一个抽 象的概念。 矩形面积(RectangleArea); 数据抽象:float length,width,area; 代码抽象:void SetData(float L,float W); //输入长、宽值    float ComputeArea();   //计算面积    void OutputArea();   //输出面积

22 1.3 面向对象程序设计的基本特点 2、封装 把对象的属性和服务结合成一个独立的系统单 元。
尽可能隐蔽对象的内部细节。对外形成一个边 界(或者说一道屏障),只保留有限的对外接 口使之与外部发生联系。

23 1.3 面向对象程序设计的基本特点 3、消息 消息是面向对象程序设计中用来描述对象之间 通信的机制。
一个消息就是一个对象要求另一个对象实施某 种操作的一个请求。

24 1.3 面向对象程序设计的基本特点 4、继承 继承对于软件复用有着重要意义,是面向对象 技术能够提高软件开发效率的重要原因之一。
定义:特殊类的对象拥有其一般类的全部属性 与服务,称作特殊类对一般类的继承。 例如:将轮船作为一个一般类,客轮便是一个 特殊类。

25 1.3 面向对象程序设计的基本特点 5、多态 多态是指在一般类中定义的属性或行为,被特 殊类继承之后,可以具有不同的数据类型或表 现出不同的行为。这使得同一个属性或行为在 一般类及其各个特殊类中具有不同的语义。 例如: 数的加法->实数的加法 >复数的加法

26 1.4 简单的C++程序 【例1-3】 编写程序求两个从键盘输入的整型数之和。   //功能为求两个整型之和   #include <iostream>   using namespace std;   //使用名字空间   void main()       //主函数   {    int x,y,z; // int表示定义3个整型变量   cout<<“please input two int number:”;   cin>>x>>y; //从键盘输入两个数    z=x+y;   cout<<“x+y=”<<z<<endl;  //输出两个数的和 }

27 【例1-3】 编写程序求两个从键盘输入的整型数之和。
【例1-3】 编写程序求两个从键盘输入的整型数之和。   执行该程序,屏幕上出现如下提示: please input two int number:22 36↙ 输入两个用空格分隔的整型数后,按回车键,得输出结果为 x+y=58

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

29 【例1-4】用子函数和主函数编写程序实现例1-3的编程要求
【例1-4】用子函数和主函数编写程序实现例1-3的编程要求   int add(int a, int b) //定义add函数,函数值为整型 { int c;     //定义一个整型变量 c=a+b;    //计算两个数的和 return c;   //将c的值返回,通过add带回调用处 } 编译运行该程序,屏幕上将出现与例1-3相同的提示, 当输入两个整型数(22和36)后,按回车键,同样可得 输出结果:    x+y=58

30 1.4 简单的C++程序 1、注释 注释是程序员为读者做的说明,是提高程序可 读性的一种手段。 2、编译预处理
程序中每个以符号“#”开头的行称为预处理行, 一般都写在程序的最前面几行中。 3、使用名字空间 过去一直使用后缀“.h”标识头文件,但在前面 的两个例子中,没有使用后缀,原因是新的C++ 标准引入了新的标准类库的头文件载入方式, 即省略“.h”。

31 1.4 简单的C++程序 4、程序主体 程序主体由一个名为main()的主函数和若干个 子函数构成。子函数可有,也可以没有,但 main()函数不能没有,而且只能有一个。函数 名main全都由小写字母构成。在C++程序中所 有系统给定的关键字必须都用小写字母拼写, 程序中其他名字的大小写是要特别注意的。 一个函数是由若干条语句组成的。语句是组成 程序的基本单元,而语句由单词组成,单词间 用空格分隔,单词又由C++的字符所组成。C++ 程序中的语句必须以分号结束。

32 随堂练习 给两个整数x和y,求两数中的大者。(用函数调用) #include <iostream> //预处理命令
using namespace std; int max(int x,int y) //定义max函数,函数值为整型,形式参数x,y为整型 { //max函数体开始 int z; //变量声明,定义本函数中用到的变量z为整型 if(x>y) z=x; //if语句,如果x>y,则将x的值赋给z else z=y; //否则,将y的值赋给z return(z); //将z的值返回,通过max带回调用处 } //max函数结束 int main( ) //主函数 {//主函数体开始 int a,b,m; //变量声明 cin>>a>>b; //输入变量a和b的值 m=max(a,b); //调用max函数,将得到的值赋给m cout<<"max="<<m<<'\\n'; //输出大数m的值 return 0; //如程序正常结束,向操作系统返回一个零值 }


Download ppt "C++ 面向对象程序设计 青岛理工大学."

Similar presentations


Ads by Google