C-面向对象程序设计-青岛理工大学_第1页
C-面向对象程序设计-青岛理工大学_第2页
C-面向对象程序设计-青岛理工大学_第3页
C-面向对象程序设计-青岛理工大学_第4页
C-面向对象程序设计-青岛理工大学_第5页
已阅读5页,还剩27页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

青岛理工大学C++面向对象程序设计课本:C++面向对象程序设计,李兰,任凤华等,2014,第二次印刷。参考书籍:BruceEckel.ThinkinginC++(2ndEdition).北京:机械工业出版社,2006.10郑莉.C++语言程序设计(第3版).北京:清华大学出版社,2005.7谭浩强.C++面向对象程序设计.北京:清华大学出版社,2006.11课程基本信息有关C++面向对象的编程学习网站/G2S/Template/View.aspx?action=view&courseType=0&courseId=166建立基本的计算机程序设计概念体系和基本的程序设计方法。理解和掌握C++语言的基本语法和语义,初步理解面向对象的思想,初步掌握面向对象程序设计的方法。逐步提高学生的编程能力和调试程序的能力。为后面的学习打好基础。1课程培养目标教学课时安排总学时:48学时理论授课:30学时习题课:2学时实验课:16学时考核出勤:10%实验:20%期末考试:70%1教学课时与考核青岛理工大学第一章概述本章主要内容1.1计算机程序设计语言的发展1.2程序设计方法1.3面向对象程序设计的基本特点1.4简单的C++程序

1.1计算机程序设计语言的发展1、计算机程序计算机的工作是用程序来控制的程序是指令的集合。指令是计算机可以识别的命令。1.1计算机程序设计语言的发展2、机器语言与汇编语言由计算机硬件系统可以识别的二进制指令组成的语言称为机器语言。计算机发展的初期,软件工程师们只能用机器语言来编写程序。这一阶段,在人类的自然语言和计算机编程语言之间存在着巨大的鸿沟。汇编语言将机器指令映射为一些可以被人读懂的助记符,如ADD、SUB等。此时编程语言与人类自然语言间的鸿沟略有缩小,但仍与人类的思维相差甚远。因为它的抽象层次太低,程序员需要考虑大量的机器细节。1.1计算机程序设计语言的发展3、高级语言高级语言屏蔽了机器的细节,提高了语言的抽象层次,程序中可以采用具有一定含义的数据命名和容易理解的执行语句。这使得在书写程序时可以联系到程序所描述的具体事物。1.1计算机程序设计语言的发展4、面向对象语言出发点:更直接地描述客观世界中存在的事物(对象)以及它们之间的关系。特点:是高级语言。将客观事物看作具有属性和行为的对象。通过抽象找出同一类对象的共同属性和行为,形成类通过类的继承与多态实现代码重用1.1计算机程序设计语言的发展4、面向对象语言优点:使程序能够比较直接地反映问题域的本来面目,软件开发人员能够利用人类认识事物所采用的一般思维方法来进行软件开发。1.2程序设计方法1、结构化程序设计方法设计思路自顶向下、逐步求精。采用模块分解与功能抽象,自顶向下、分而治之。程序结构:按功能划分为若干个基本模块,形成一个树状结构。各模块间的关系尽可能简单,功能上相对独立;每一模块内部均是由顺序、选择和循环三种基本结构组成其模块化实现的具体方法是使用子程序。1.2程序设计方法2、结构化程序设计方法优点:有效地将一个较复杂的程序系统设计任务分解成许多易于控制和处理的子任务,便于开发和维护缺点:可重用性差、数据安全性差、难以开发大型软件和图形界面的应用软件1.2程序设计方法3、面向对象程序设计方法设计思路:将数据及对数据的操作方法封装在一起,作为一个相互依存、不可分离的整体——对象。对同类型对象抽象出其共性,形成类。类通过一个简单的外部接口,与外界发生关系。对象与对象之间通过消息进行通信1.2程序设计方法3、面向对象程序设计方法优点:程序模块间的关系更为简单,程序模块的独立性、数据的安全性就有了良好的保障。通过继承与多态性,可以大大提高程序的可重用性,使得软件的开发和维护都更为方便。【例1-1】用结构化程序设计方法计算三角形的面积(已知一个三角形的3个顶点的坐标)

#include<iostream> //包含输入/输出流usingnamespacestd;#include<math.h> //包含数学函数的头文件doubleedge(doublex1,doublex2,doubley1,doubley2){//求三角形的边长

doublelen;

len=sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)); //求边长

returnlen;}intmain(){

doublex1,x2,x3,y1,y2,y3,s,area,ab,ac,bc;//说明变量

cin>>x1>>x2>>x3;//输入坐标值

cin>>y1>>y2>>y3; 【例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’; //输出三角形面积

return0}

【例1-2】用面向对象的程序设计方法计算矩形面积

#include<iostream>usingnamespacestd;//类的声明classRectangleArea{public:voidSetData(float

L,floatW); //输入长、宽值floatComputeArea(); //计算面积

voidOutputArea(); //输出面积private:

floatlength,width,area; //定义长、宽、面积};voidRectangleArea::SetData(float

L,floatW){ length=L;

width=W;}【例1-2】用面向对象的程序设计方法计算矩形面积

floatRectangleArea::ComputeArea(){

area=length*width;

returnarea;}voidRectangleArea::OutputArea(){

cout<<"area="<<area<<endl;}intmain(){

RectangleArea

Rectangl; //声明对象

Rectangl.SetData(8,9);

Rectangl.ComputeArea();

Rectangl.OutputArea();

return0;}1.3面向对象程序设计的基本特点1、抽象忽略事物的非本质特征,只注意那些与当前目标有关的本质特征,从而找出事物的共性,把具有共同性质的事物划分为一类,得出一个抽象的概念。矩形面积(RectangleArea);

数据抽象:floatlength,width,area;

代码抽象:voidSetData(float

L,floatW);//输入长、宽值

floatComputeArea();

//计算面积

voidOutputArea();

//输出面积1.3面向对象程序设计的基本特点2、封装把对象的属性和服务结合成一个独立的系统单元。尽可能隐蔽对象的内部细节。对外形成一个边界(或者说一道屏障),只保留有限的对外接口使之与外部发生联系。1.3面向对象程序设计的基本特点3、消息消息是面向对象程序设计中用来描述对象之间通信的机制。一个消息就是一个对象要求另一个对象实施某种操作的一个请求。1.3面向对象程序设计的基本特点4、继承继承对于软件复用有着重要意义,是面向对象技术能够提高软件开发效率的重要原因之一。定义:特殊类的对象拥有其一般类的全部属性与服务,称作特殊类对一般类的继承。例如:将轮船作为一个一般类,客轮便是一个特殊类。1.3面向对象程序设计的基本特点5、多态多态是指在一般类中定义的属性或行为,被特殊类继承之后,可以具有不同的数据类型或表现出不同的行为。这使得同一个属性或行为在一般类及其各个特殊类中具有不同的语义。例如:数的加法->实数的加法

->复数的加法1.4简单的C++程序【例1-3】

编写程序求两个从键盘输入的整型数之和。

//功能为求两个整型之和

#include<iostream>

usingnamespacestd;

//使用名字空间

voidmain()

//主函数

{

int

x,y,z; //int表示定义3个整型变量

cout<<“pleaseinputtwointnumber:”;

cin>>x>>y; //从键盘输入两个数

z=x+y;

cout<<“x+y=”<<z<<endl;

//输出两个数的和

}【例1-3】编写程序求两个从键盘输入的整型数之和。

执行该程序,屏幕上出现如下提示:

pleaseinputtwointnumber:2236↙输入两个用空格分隔的整型数后,按回车键,得输出结果为

x+y=58【例1-4】用子函数和主函数编写程序实现例1-3的编程要求

//利用函数求两整数之和#include<iostream>//C++的预编译命令,其中的iostream是//C++定义的一个头文件,用于设置C++风格的I/O环境usingnamespacestd;

//使用名字空间int

add(inta,intb); //函数原型的声明intmain() //主函数{

int

x,y,sum; //定义三个整型变量

cout<<“Entertwonumber:”; //提示用户输入两个数

cin>>x>>y; //从键盘输入变量x,y的值

sum=add(x,y);

//调用函数add计算x+y的值并将其赋给sum

cout<<“x+y=”<<sum<<“\n”; //输出sum的值

return0;}【例1-4】用子函数和主函数编写程序实现例1-3的编程要求

int

add(inta,intb) //定义add函数,函数值为整型{

intc;

//定义一个整型变量

c=a+b;

//计算两个数的和

returnc;

//将c的值返回,通过add带回调用处}编译运行该程序,屏幕上将出现与例1-3相同的提示,当输入两个整型数(22和36)后,按回车键,同样可得输出结果:

x+y=581.4简单的C++程序1、注释注释是程序员为读者做的说明,是提高程序可读性的一种手段。2、编译预处理程序中每个以符号“#”开头的行称为预处理行,一般都写在程序的最前面几行中。3、使用名字空间过去一直使用后缀“.h”标识头文件,但在前面的两个例子中,没有使用后缀,原因是新的C++标准引入了新的标准类库的头文件载入方式,即省略“.h”。1.4简单的C++程序4、程序主体程序主体由一个名为main()的主函数和若干个子函数构成。子函数可有,也可以没有,但main()函数不能没有,而且只能有一个。函数名main全都由小写字母构成。在C++程序中所有系统给定的关键字必须都用小写字母拼写,程序中其他名字的大小写是要特别注意的。一个函数是由若干条语句组成的。语句是组成程序的基本单元,而语句由单词组成,单词间用空

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论