- 1、本文档共30页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
一、主程序-子程序调用体系结构
组件:主程序-子程序
连接件:调用返回机制
优点:
有效地将一个较复杂的程序系统设计分解成许多易于控制和处理的子任务,便于开发和维护。
已被证明是成功的设计方法,可以被用于较大程序。
缺点:
(1) 规模:程序超过10万行,表现不好;程序太大,开发太慢,测试越开越困难。
(2) 可重用性差、数据安全性差,难以开发大型软件和图形界面的应用软件。
(3) 把数据和处理数据的过程分离为相互独立的实体,当数据结构改变时,所有相关的处理过程都要进行相应的修改。
(4) 图形用户界面的应用程序,很难用过程来描述和实现,开发和维护也很困难。
我的程序:
#includeiostream.h
using namespace std
int add(int x,int y); //函数声明
int main() //主函数或主程序
{
int a,b;
cinab;
coutadd(a,b)endl;
}
int add(int x,int y) //函数实现,或子函数
{
return x+y;
}
组件:主函数main(),子函数swap()
连接件:add(a,b)是对add(x,y)函数的调用 return(x+y)是加法结果的实现
二、面向对象体系结构
组件:类和对象
连接件:对象之间通过功能与函数调用实现交互
优点:
复用和维护:利用封装和聚合提高生产力.因为对象对其他对象隐藏它的表示,所以可以改变一个对象的表示,而不会影响其他的对象。某一组件的算法与数据结构的修改不会影响其他组件,组件之间的依赖性降低,提高了复用度。
反映现实世界。
容易分解一个系统。
缺点:
管理大量的对象:怎样确立大量对象的结构。
继承引起复杂度,关键系统中慎用。
必须知道对象的身份。
不是特别适合功能的扩展,为了增加新的功能,要么修改已有的模块,要么加入新的模块,从而影响性能。
我的程序:
public class A
{
private int x;
public int XX(int x)
{
return x ;
}
}
public class B
{
public int add(A d, int x)
{
int y = d.XX(4);
int z = y + x;
return z;
}
}
public class Program
{
public static void main(String[] args) {
// TODO Auto-generated method stub
A d = new A();
B a=new B();
double result = a.add(d, 4);
System.out.println(result);
}
}
组件:三个类A B Program
连接件:double result = a.add(d, 4);int y = d.XX(4); 通过第一个语句实现两个数的加,但是add中的两个参数一个是A的对象d,在add函数内部,现调用了d的函数XX实现返回原数运算,运算后的结果再与4相加,把相加的result结果返回。
三、批处理体系结构
组件:独立的应用程序
连接件:某种类型的媒介
优点:
把任务分解成一系列固定顺序的计算单元,组件只通过数据传递交互,每一步必须在前一步结束后才能开始,数据必须是完整的,以整体的方式传递。
缺点:
构件粒度大,延迟高,实时性差。
1.无交互性,用户一旦提交作业就失去了对其运行的控制能力。
2.作业周转时间长,用户使用不方便。
我的程序:
程序1:
将一批数据以二进制形式存放在磁盘文件中。
#include fstream
using namespace std;
struct people
{
char name[20];
int age;
char sex;
};
int main( )
{
people p[3]={Li,18,f,Fun,19,m,Wang,17,f};
ofstream outfile(peo.dat,ios::binary);
if(!outfile)
{
cerropen error!endl;
abort( );//退出程序
}
文档评论(0)