收藏 分享(赏)

软件体系结构实验一.doc

上传人:eukav 文档编号:4466280 上传时间:2018-12-29 格式:DOC 页数:5 大小:55.50KB
下载 相关 举报
软件体系结构实验一.doc_第1页
第1页 / 共5页
软件体系结构实验一.doc_第2页
第2页 / 共5页
软件体系结构实验一.doc_第3页
第3页 / 共5页
软件体系结构实验一.doc_第4页
第4页 / 共5页
软件体系结构实验一.doc_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

1、实验一 经典软件体系结构风格实验课程名:软件体系结构理论及应用专业班级: 软件工程 学 号: 姓 名: 实验地点: k4-307 指导教师: 倪波 一、实验目的(1)理解管道-过滤器软件体系结构、面向对象软件体系结构的原理(2)掌握管道-过滤器软件体系结构、面向对象软件体系结构的实例(3)管道-过滤器软件体系结构、面向对象软件体系结构的编程实现二、实验的内容和步骤1管道-过滤器软件体系结构Java I/O 流中的管道流类 PipedInputStream 和 PipedOutputStream 可以方便地实现管道- 过滤器体系结构,这两个类的实例对象要通过 connect 方法连接。下面程序的

2、功能是 sender 发送 “Hello,receiver! Im sender”给 receiver,然后 receiver 接受后显示出来并且在前面加上“the following is from sender”的信息。管道流内部在实现时还有大量的对同步数据的处理,管道输出流和管道输入流执行时不能互相阻塞,所以一般要开启独立线程分别执行,顺便复习了多线程操作。import java.io.*;import java.util.*;public class TestPipedpublic static void main(String args)sender s = new sender()

3、;receiver r = new receiver();PipedOutputStream out = s.getOut();PipedInputStream in = r.getIn();tryin.connect(out);s.start();r.start();catch(Exception e)e.printStackTrace();class sender extends Thread PipedOutputStream out = new PipedOutputStream();public PipedOutputStream getOut()return out;public

4、void run() String str = “Hello,receiver ! Im sendern“;try out.write(str.getBytes();out.close(); catch(Exception e) e.printStackTrace();class receiver extends Thread PipedInputStream in = new PipedInputStream();public PipedInputStream getIn() return in;public void run()byte buf = new byte1024;try int

5、 len = in.read(buf);System.out.println(“the following is from sender:n“+new String(buf,0,len);in.close();catch(Exception e) e.printStackTrace();程序的执行结果:2数据抽象和面向对象软件体系结构有一个已知的二维坐标系,在坐标系中定义了若干种规则的图形:圆、正方形、矩形和椭圆。使用 Java 语言进行面向对象的程序设计:(1)首先考虑数据封装性, (2)考虑继承性, (3)考虑抽象类。abstract class Graphprotected double

6、 x,y; / x,y 是规则图形的中心点坐标public Graph(double x,double y) / 构造函数初始化中心点坐标this.x=x;this.y=y;protected void changeX(double x) / 修改横坐标this.x=x;protected void changeY(double y) / 修改纵坐标this.y=y;public abstract double area(); / 计算面积的抽象方法class MySquare extends Graphprivate double length;public MySquare(double

7、x,double y,double length)super(x,y);this.length=length;protected void changLength(double length) / 修改边长 lengththis.length=length;public double area()return length*length;class MyCircle extends Graphprivate double radius;public MyCircle(double x,double y,double radius)super(x,y);this.radius=radius;pr

8、otected void changRadius(double radius) / 修改半径 radiusthis.radius=radius;public double area()return 3.1416*radius*radius;class MyRectangle extends Graphprivate double a,b;public MyRectangle(double x,double y,double a,double b)super(x,y);this.a=a;this.b=b;protected void changLength(double length) / 修改

9、长 lengtha=length;protected void changWidth(double width) / 修改宽 widthb=width;public double area()return a*b; class MyEllipse extends Graphprivate double a,b;public MyEllipse (double x,double y,double a,double b)super(x,y);this.a=a;this.b=b;protected void changA(double a) / 修改长轴 athis.a=a;protected vo

10、id changB(double b) / 修改短轴 bthis.b=b;public double area()return 3.1416*a*b;public class Areapublic static void main (String arg)MyCircle c=new MyCircle(1,1,3);MySquare s=new MySquare(2,2,4);MyRectangle r=new MyRectangle(12,9,1,2);MyEllipse e=new MyEllipse(2,-1,3,2);System.out.println(“圆 c 的面积是“+c.ar

11、ea();System.out.println(“正方形 s 的面积是“+s.area();System.out.println(“矩形 r 的面积是“+r.area();System.out.println(“椭圆 e 的面积是“+e.area();该程序的运行结果为: 思考与提高1、 管道-过滤器软件体系结构与批处理软件体系结构的区别和联系是什么?答:管道/过滤器结构通常导致进程成为批处理的结构,因为虽然过滤器可增量式地处理数据,但它们是独立的,所以设计者必须将每一个过滤器看成一个完整的从输入到输出的转换。.限定过滤器的数据存储容量,就可以得到有界管道/过滤器。过滤器将所有输入数据作为单个实体进行处理,这就是批处理系统。2、面向对象软件体系结构与主程序-子程序软件体系结构的区别和联系是什么?答:主程序-子程序体系结构在设计上使用层次化的划分方法,通常采用自顶向下的功能化设计方法。面向对象体系结构在设计上使用面向对象的设计方法,可以隐藏对象的内部状态并且要求所有对象之间的交互都通过该方法,即进行了数据封装,这也是面向对象编程的基本原则。3、结论(写本次实验的收获) 。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 中等教育 > 中学实验

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报