面向过程面向对象优秀课件

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
➢ 系统的状态是一组全局变量。这组全局变量保存系 统的状态值,把状态值从一个过程传送到另一个过 程。
3)面向过程设计程序的实例
【 7.1.1 集合的实现与使用】
设有如下的要求:向整数集合的某一子集添加若干元素,从该集 合中删除某些元素,判断指定元素是否在该集合中。Biblioteka Baidu
1.功能抽象,模块分解:自顶向下,逐步求精构建解决问题的处理流 整数集合操作->(集合的建立->集合的处理->集合的输出) 集合的处理->(添加元素,删除元素,搜索元素) 添加元素->(添加新元素elem到集合pset。若元素elem不在集合pset中, elem加到pset尾部,集合的元素个数count加1;否则,元素elem已在 pset中。) ………….. 2.数据结构设计:根据处理流的要求开发 在程序中用整数数组set表示整数集合:集合(数组)最多含 MAXLENGTH个元素,集合当前有count个元素。数据定义如下:
函数是面向过程的,即它关注如何根据规定的条件完成指 定的任务。
结构化程序使用三种结构:顺序结构、分支结构和循环结 构。
2) 面向过程程序设计的特点
➢ 面向过程的开发侧重于构建解决问题的处理流:
1) 自顶向下,逐步求精。将较复杂任务分解为简单任务。 功能抽象 2)模块化。根据任务需完成的功能,将应用程序划分为相
描述算法的方法有很多: 流程图 自然语言 伪码描述
4.程序设计:用选定的程序设计语言将算法进行代码化。
(1) void Add(int elem, int* pset, unsigned &count)
这个函数的功能是:添加新元素elem到集合pset。若元素elem不在集合 pset中,elem加到pset尾部,集合的元素个数count加1;否则,元素elem已在 pset中,结束。
1.1 从:面向过程的程序设计 到:面向对象的程序设计
程序设计方法的发展
程序设计= 算法+数据结构+程序设计方法+语言工具和环境 随着计算机软、硬件技术的不断发展,出现了许许多多的 程序设计语言,程序设计方法也得到不断发展。程序设计方法 经历了一个由低级到高级,由复杂到简单的过程。 目前,主要有两种程序设计方法:
for(unsigned i=0; i<count && *(pset+i)!=elem; i++); if(i<count)
*(pset + i) = *(pset + (count--) - 1); //集合无顺序,最后一 个移到删除之处
else cout<<"待删除元素"<<elem<<"不在集合中。"<<endl;
对独立的若干模块。模块之间关系简单、相对独立。 模块分解
➢ 数据结构根据处理流的要求开发。数据结构贯穿于 数据抽象 算法过程,提供算法过程所要求操作的信息。
➢ 数据结构的设计就是选择数据存储方式(如确定问题中的 信息是用数组存储还是用普通的变量存储或其他更加复杂 的数据结构)。
➢ 算法设计就是在选定的存储结构上设计一个好的算法。不 同的数据结构的设计将导致差异很大的算法。
➢ 面向过程程序设计
➢ 面向对象程序设计
1.1.1 面向过程程序设计
使用传统程序设计语言(如:C、FORTRAN)进 行程序设计时,必须详细、准确地描述解题过程 。因 为程序设计工作主要围绕设计解题过程来进行的,所 以传统的程序设计方法称为面向过程的程序设计。
1.面向过程程序设计开发思想
采用自顶向下、分而治之的方法进行模块分解与功能抽象 ,从而有效地将一个较复杂的程序系统设计任务分解成许 多易于控制和处理的函数(在此泛指例程、函数、过程) ,解决问题的焦点集中于函数,便于开发和维护。
}
(3)Isin(int elem, int* pset, unsigned count)
这个函数的功能是:判断元素elem是否在集合pset中。从头至尾 检查集合pset中的元素,若有元素elem,返回1;否则,返回0。
函数定义如下:
int Isin(int elem, int* pset, unsigned count) {
int set[MAXLENGTH]; unsigned count;
3.算法设计:在选定的存储结构上对每一个模块设计一个好的算法。
好算法的标准: 正确性; 可读性; 健壮性:当输入非法数据时,算法应做出适当反映或处理; 执行算法所耗费的时间(时间复杂度)好; 执行算法所耗费的存储空间(空间复杂度)好。
这个函数的功能是:从集合pset中删除元素elem。若元素elem在集合 pset中且位于pset[i],则将pset中最后一个元素pset[count-1]替换pset[i],集 合的元素个数count减1;否则,给出元素不在集合中的提示信息。
函数定义如下: void Remove(int elem, int* pset, unsigned &count){
函数定义如下:
void Add(int elem, int* pset, unsigned &count) {
if(count<MAXLENGTH) if(!Isin(elem, pset, count)) *(pset + (count)++) = elem;
}
(2)Remove(int elem, int* pset, unsigned & count)
for(unsigned i=0; i<count && *(pset + i)!=elem; i++); return (i<count); }
2.完整的源程序
#include <iostream>
using namespace std;
#define MAXLENGTH 100
void Add(int elem, int* pset, unsigned &count);
面向过程面向对象优秀课件
第一章 从过程抽象到数据抽象
主要内容
程序设计方法
结构化程序设计方法与面向对象程序设计方法各自特点、区别和 相互联系
面向对象的基本概念
类、对象、封装、消息、继承、 多态
面向对象分析与设计 (OOA、OOD) 面向对象程序设计和C++语言
第一章 从过程抽象到数据抽象
相关文档
最新文档