java实验策略模式观察者模式和组合模式Word下载.docx

上传人:b****3 文档编号:13529363 上传时间:2022-10-11 格式:DOCX 页数:39 大小:859.19KB
下载 相关 举报
java实验策略模式观察者模式和组合模式Word下载.docx_第1页
第1页 / 共39页
java实验策略模式观察者模式和组合模式Word下载.docx_第2页
第2页 / 共39页
java实验策略模式观察者模式和组合模式Word下载.docx_第3页
第3页 / 共39页
java实验策略模式观察者模式和组合模式Word下载.docx_第4页
第4页 / 共39页
java实验策略模式观察者模式和组合模式Word下载.docx_第5页
第5页 / 共39页
点击查看更多>>
下载资源
资源描述

java实验策略模式观察者模式和组合模式Word下载.docx

《java实验策略模式观察者模式和组合模式Word下载.docx》由会员分享,可在线阅读,更多相关《java实验策略模式观察者模式和组合模式Word下载.docx(39页珍藏版)》请在冰豆网上搜索。

java实验策略模式观察者模式和组合模式Word下载.docx

地图是由每个方块拼合起来。

地图上有墙等障碍物,也有可以通行的基本图元构成。

请使用组合模式,绘制一个游戏地图,地图的内容自行定义,也可以类似图3形式:

    图3游戏地图

4.已知有一个二维数组数据如图1所示,请结合策略模式、观察者模式和组合模式实现一个MVC结构的应用程序。

要求:

如果用户移动滑块,可以修改二维数组的值,并在运行的用户界面中显示出来。

其中,饼状图和柱状图中的区域分布为二位数组每一维的总和。

运行结果如图4和图5所示。

60

50

90

90

40

30

10

20

70

  图4数据模型

图5运行结果

三、实验环境

1、PC微机;

2、DOS操作系统或 Windows操作系统;

3、jdk程序集成环境Eclipse

四、源代码、测试结果及UML图

一:

1.UML图

2.源程序代码:

packagecourse.strategy.shape;

importjava.awt.Graphics;

import java.util.ArrayList;

importjava.util.List;

import javax.swing.JPanel;

//绘制所有图形

@SuppressWarnings("

serial"

publicclass DrawShapeextendsJPanel{ 

 privateList<

MyShape> shapes;

 publicDrawShape(){

shapes=newArrayList<

MyShape>

();

}

 publicvoid addShape(MyShapeshape){    //添加图形

 if(shape!

=null)shapes.add(shape);

 }

 publicvoid paintComponent(Graphics g){ﻩ//依次绘制图形

  for(MyShapems:

shapes){

  ms.draw(g);

  System.out.println(ms);

  }

}

、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、

packagecourse.strategy.shape;

importjava.awt.Graphics;

//形状家族

public abstract class MyShape{

   publicabstractfloatarea();

  public abstractfloatperimeter();

  publicabstractvoiddraw(Graphics g);

package course.strategy.shape;

importjava.awt.Color;

importjava.awt.Graphics;

//圆形

public classMyCircleextendsMyShape{

private staticfinalfloatPI=3.14f;

private intradius;

//定义圆形半径

 privateint x,y;

 //定义起点(x,y)坐标

  

 publicMyCircle(int x,inty,intradius){ //构造函数

ﻩsuper();

this.x=x;

this.y=y;

ﻩﻩthis.radius=radius;

ﻩ}

ﻩ@Override

publicfloatarea(){      //求面积

ﻩﻩ//TODO自动生成的方法存根

ﻩreturn PI*radius*radius;

ﻩ@Override

publicfloatperimeter(){  //求周长

// TODO自动生成的方法存根

ﻩreturn2*PI*radius;

ﻩ@Override

ﻩpublicString toString(){

ﻩreturn"

MyCircle [radius="

 + radius+",x坐标="+x+"

,y坐标="

+y+"

]"

+

   "面积="

+area()+"

周长="+perimeter();

ﻩ@Override

ﻩpublic voiddraw(Graphicsg){  //绘制图形

ﻩﻩ//TODO自动生成的方法存根

ﻩg.setColor(Color.blue);

ﻩg.fillOval(x,y,2*radius,2*radius);

package course.strategy.shape;

import java.awt.Color;

importjava.awt.Graphics;

//矩形

publicclassMyRectangleextends MyShape {

ﻩprivate intx,y;

   //定义起点(x,y)坐标

ﻩprivateintwidth,height;

//定义矩形的宽和高

 publicMyRectangle(int x,inty,intwidth,intheight){

ﻩsuper();

ﻩthis.x=x;

this.y=y;

ﻩthis.width=width;

ﻩthis.height=height;

ﻩ@Override

ﻩpublicfloatarea() {

ﻩ// TODO自动生成的方法存根

ﻩreturnwidth*height;

ﻩ@Override

ﻩpublicfloatperimeter(){

ﻩﻩ//TODO自动生成的方法存根

ﻩreturn2*(width+height);

@Override

ﻩpublic StringtoString() {

ﻩreturn "

MyRectangle[x坐标="

+x+ "

, y坐标="+ y+ "

 矩形宽="

+width

ﻩﻩ+"

矩形高="

+ height +"

]"

+"

面积="+area()+",周长="

+perimeter();

ﻩ@Override

public voiddraw(Graphicsg) {

ﻩ//TODO自动生成的方法存根

ﻩg.setColor(Color.green);

ﻩg.fillRect(x,y,width, height);

packagecourse.strategy.shape;

importjava.awt.Color;

importjava.awt.Graphics;

//椭圆形

publicclass MyEllipseextendsMyShape{

ﻩprivatestaticfinal floatPI=3.14f;

privateintx,y;

        //定义起点(x,y)坐标

ﻩprivate intaLong,bShort;

  //定义椭圆的长轴和短轴

 publicMyEllipse(int x,inty,intaLong,intbShort) {

ﻩsuper();

ﻩthis.x=x;

this.y =y;

ﻩﻩthis.aLong= aLong;

ﻩﻩthis.bShort =bShort;

  

@Override

publicfloatarea() {

ﻩ//TODO自动生成的方法存根

ﻩreturn1.0f/4*PI*aLong*bShort;

@Override

publicfloat perimeter(){

ﻩ//TODO 自动生成的方法存根

ﻩreturnPI*bShort+2*(aLong-bShort);

ﻩpublicString toString(){

ﻩreturn"

MyEllipse[x坐标=" +x+"

, y坐标="

+y+"

,长轴="+aLong

ﻩ+"

,短轴="+ bShort+ "

  面积="

+area()+",周长="

+perimeter();

@Override

publicvoiddraw(Graphicsg) {

//TODO自动生成的方法存根

g.setColor(Color.red);

ﻩﻩg.fillOval(x,y, aLong, bShort);

packagecourse.strategy.shape;

import java.awt.Color;

importjava.awt.Graphics;

//三角形

publicclass MyTriangleextendsMyShape {

ﻩprivate inta,b,c,n;

private int[] xPoints;

 privateint[]yP

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

当前位置:首页 > 工程科技 > 机械仪表

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1