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

Slides:



Advertisements
Similar presentations
数据结构的引入. 通讯录管理 社团机构管理 校园导航管理 通讯录管理 社团机构管理 校园导航管理.
Advertisements

《程序设计实践》 孙辉 理工配楼104A
ASP .NET 程序设计(C#版) 第二版 机械工业出版社同名教材 配套电子教案
——Windows98与Office2000(第二版) 林卓然编著 中山大学出版社
Tool Command Language --11级ACM班 金天行.
第一章 C语言概述 计算机公共教学部.
实用操作系统概念 张惠娟 副教授 1.
课程概况 加入班级QQ群,便于及时沟通和资料共享。 课程教学的组成:
面向对象程序设计 C#.Net 01 C#概述和简单编程 郑捷
Oracle数据库 Oracle 子程序.
C语言实验 第一课 标题:学号+姓名.
C++中的声音处理 在传统Turbo C环境中,如果想用C语言控制电脑发声,可以用Sound函数。在VC6.6环境中如果想控制电脑发声则采用Beep函数。原型为: Beep(频率,持续时间) , 单位毫秒 暂停程序执行使用Sleep函数 Sleep(持续时间), 单位毫秒 引用这两个函数时,必须包含头文件
全国计算机等级考试 二级基础知识 第二章 程序设计基础.
程序、模型与表达 前端工程师的程序设计思考.
计算机基础知识 丁家营镇九年制学校 徐中先.
《数据库原理及应用》课程介绍 信息工程学院 孙俊国
4.3函数 4.3.1函数的概念及定义 1、函数的概念: 可以被其它程序调用具有 特定功能的一段相对独立的 程序(模块),称函数。
函數(一) 自訂函數、遞迴函數 綠園.
C++语言程序设计 C++语言程序设计 第一章 C++语言概述 第十一组 C++语言程序设计.
教材 《C++程序设计》.谭浩强. 清华大学出版社 王雪晶
嵌入式系统课程简介 宋健建 南京大学软件学院 2004/02/10.
第一章 程序的基本结构. 第一章 程序的基本结构 教材及授课结构 本章目标 基本内容 扩展阅读 上机指导 应用举例 习题.
Object-Oriented Programming in C++ 第一章 C++的初步知识
管理信息结构SMI.
走进编程 程序的顺序结构(二).
辅导课程六.
第一单元 初识C程序与C程序开发平台搭建 ---观其大略
第五讲 四则运算计算器(一) 精品教程《C#程序设计与应用(第2版)清华大学出版社 谭恒松 主编
第3讲 C++程序控制结构 3.1 顺序结构 3.2 分支结构 3.3 循环结构 3.4 转向控制 3.5 综合案例分析.
第二章 Java语言基础.
整合思维导图的初中英语教学设计 主讲人:卢璐.
谭浩强 编著 中国高等院校计算机基础教育课程体系规划教材 C++程序设计.
第七章 操作符重载 胡昊 南京大学计算机系软件所.
宁波市高校慕课联盟课程 与 进行交互 Linux 系统管理.
宁波市高校慕课联盟课程 与 进行交互 Linux 系统管理.
第一章 函数与极限.
C++语言程序设计 C++语言程序设计 第七章 类与对象 第十一组 C++语言程序设计.
1.3 C语言的语句和关键字 一、C语言的语句 与其它高级语言一样,C语言也是利用函数体中的可执行 语句,向计算机系统发出操作命令。按照语句功能或构成的不 同,可将C语言的语句分为五类。 goto, return.
C语言程序设计 主讲教师:陆幼利.
简单介绍 用C++实现简单的模板数据结构 ArrayList(数组, 类似std::vector)
C++语言程序设计 C++语言程序设计 第五章 函数 第十一组 C++语言程序设计.
$9 泛型基础.
作业情况 已交作业人数:140人 凡是自己没有交过作业的同学,课后留下,有话要说。 2. 文件名范例: 姓名:王树武 wshw_1.c
C++语言程序设计 C++语言程序设计 第九章 类的特殊成员 第十一组 C++语言程序设计.
第一章 程序设计和C语言 主讲人:高晓娟 计算机学院.
实验七 安全FTP服务器实验 2019/4/28.
计算机网络与网页制作 Chapter 07:Dreamweaver CS5入门
<编程达人入门课程> 本节内容 内存的使用 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群: ,
项目二:HTML语言基础.
第4章 Excel电子表格制作软件 4.4 函数(一).
JSP实用教程 清华大学出版社 第2章 JSP运行环境和开发环境 教学目标 教学重点 教学过程 2019年5月7日.
iSIGHT 基本培训 使用 Excel的栅栏问题
<编程达人入门课程> 本节内容 计算机编程语言 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群: ,
C++语言程序设计教程 第1章 C++编程简介 第1章 C++编程简介 制作人:杨进才 沈显君.
多层循环 Private Sub Command1_Click() Dim i As Integer, j As Integer
C++语言程序设计 C++语言程序设计 第八章 继承 C++语言程序设计.
魏新宇 MATLAB/Simulink 与控制系统仿真 魏新宇
第二章 Java基本语法 讲师:复凡.
第四章 函数 丘志杰 电子科技大学 计算机学院 软件学院.
C++语言程序设计 C++语言程序设计 第八章 继承 C++语言程序设计.
本节内容 C语言的汇编表示 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
第二节 C语言的特点.
实验目的:掌握数据的顺序存储结构及它们在计算机中的操作。 实验内容:
C++语言程序设计 C++语言程序设计 第十章 多态 第十一组 C++语言程序设计.
C++语言程序设计 C++语言程序设计 第一章 C++语言概述 第十一组 C++语言程序设计.
C++语言程序设计 C++语言程序设计 第九章 类的特殊成员 第十一组 C++语言程序设计.
第三章 高级函数特性.
C++语言程序设计 C++语言程序设计 第十章 多态 第十一组 C++语言程序设计.
FVX1100介绍 法视特(上海)图像科技有限公司 施 俊.
C++语言程序设计 C++语言程序设计 第一章 C++语言概述 第十一组 C++语言程序设计.
Presentation transcript:

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

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

有关C++面向对象的编程学习网站 http://kczx.qut.edu.cn/G2S/Template/View.aspx?action=view&courseType=0&courseId=166

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

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

第一章 概述 青岛理工大学

本章主要内容 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个顶点的坐标) 【例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;

【例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 }

【例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; }

【例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;

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

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

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

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

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

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;  //输出两个数的和 }

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

【例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; }

【例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

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

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

随堂练习 给两个整数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; //如程序正常结束,向操作系统返回一个零值 }