您的位置:首页 > 其它

作业3

2016-10-22 16:39 134 查看


作业3


(15分)

目的

这任务是学习了一下有关Java Swing包,并探讨一些涉及周围模型和视图结构程序设计问题的机会。这也是获得一些经验,设计类,并找出如何在类层次结构分配代码的机会。在这个任务中,您将构建一个图形绘图程序的模型和视图的一部分。接下来的时间,我们将扩展程序添加一个控制器。
没有首发码这个时候,但你会发现贴在班级日历,并在实验#3一些有用的例子。
我们的目标是,当程序运行时,框架将与一些上绘制的形状的显示。(请参见下面的形状)。

一流的组织

使用一个类似于在课上所做的例子解释了一个模型 - 视图模式组织代码。主要的区别是,你必须包括一个抽象类来表示一般的形状,并通过扩展类来创建特定的形状。抽象类让你把代码,通用于所有的形状,而不必重复它在每一个具体类的地方。
您的代码应使用下面的类和接口来安排:
接口形状。形状的最小接口。这应该包括至少一个方法来绘制形状一个Java的图形对象。作为该计划的发展,你可能需要额外的方法添加到该接口,但保持尽可能小的现在。(在这一点上,不应该有任何的代码来处理事件。事件处理将被包含在这个任务的下一篇文章。)

类AbstractShape。这应该是一个抽象实现接口Shape类。添加实例变量,额外的方法和默认实现在这里,一旦它变得清晰,所有的形状需要有这样的字段和方法。

特定的具体形状类扩展AbstractShape:
FibonacciSquare 

  

斐波那契广场的构造应采取5个参数:INT X,INT Y,颜色为c,诠释象限和intñ。

(X,Y)是方形的坐标位置(可以选择该点的坐标(的x,y)表示,例如,正方形的左上角,或正方形的中心)。

c是正方形和弧的颜色。

象限是弧(=四分之一圆的对应象限)。有四种方法绘制正方形内的弧线。我们将通过象限标记四种可能的弧他们将在如果弧是在原点为中心的全圆,也就是部分:


 是在象限1的电弧


 在象限2的电弧 


 在象限电弧3 


 是在象限4的电弧 

最后,正指第n斐波纳契数F ñ在斐波纳契序列,我们取为正方形的边的长度。斐波纳契数是由序列定义˚F 1 = 1,F 2 = 1,F 3 = 2,F 4 = 3,F 5 = 5,F 6 = 8等。该第n个斐波纳契数F Ñ序列的定义作为n-1和n-2斐波纳契数f的总和n-1个和F n-2个,IE
F ñ = F n-1个 + F n-2个。例如,女4 = 3 = F 3 + F 2 = 2 + 1,斐波那契数具有迷人的属性,您可以在阅读维基百科

在HW4,您将创建斐波那契广场铺砖画出斐波纳契螺旋。 

HShape:   

。  

在H形的构造应采取4个参数:INT X,INT Y,颜色c和INT的大小

(X,Y)的形状的位置的坐标(作为斐波那契广场,精确与坐标(x,y)处的点的位置是选择)。

c是色彩的H形

大小是包含H形的正方形的边的长度。

为了绘制H,除以包含该平方轰成9相同的小广场和他们的颜色7如下图所示。



在HW4中,H将被划分成更小的H公司创造了分形的图案。

这两个类FibonacciSquare和HShape也应该有一个返回的深层复制的方法,其调用对象(这是使模型可以返回形状其列出的深层副本。请参阅下文)。这样做通过实施方法如公共式样deepcopy的(),其声明可以写在Shape接口。当然,确保该副本是深拷贝。

您也可以选择做一些其他类如果你喜欢,如钻石,椭圆形,矩形,复合形状等等。

类DrawingModel。这是保存在图的状态下,并且将可能是最复杂的类模型。它应保持形状的集合。该模型应该看所有的形状具有只是一个形状类型。它不应该有(如果你有他们和其他类型的形状),三角形和正方形区别开来。当一个视图要求,模型应该做一个深度复制其形状的集合(使用三角和Square类实现Shape接口的深拷贝方法)。它应该支持的其他行为都是
客户端应该能够将图形添加到模型
一位观众应该能够与模型注册
它应该通知所有观众的东西时,在模型中的变化。(目前,唯一的变化将是当一个新的形状添加到绘图)。

接口视图。这个接口应该说明有关所需DrawingModel与它交互(可能只是一个更新的方法),观众的最少信息。
一位观众类扩展JPanel并实现视图。当在DrawingModel变化的通知,应将其从面板中的模型绘制各种形状。
MainClass程序。创建与创建DrawingModel和浏览器,并设置起来,使DrawingModel的状态一个JFrame内显示的main方法的类。创建一些斐波纳契广场和H(和您有任何其他形状),用不同的颜色,大小和位置,让他们显示给用户(通过将其添加到模型)。对于斐波那契广场,确保所有四个可能的弧线显示

不要忘了...

确保你已经记录了您的公共接口良好。记住,你是从头开始构建这些类。没有人,除了你,他们做的任何想法。您需要将这些想法传达给读者。

书面报告(类型为pdf文件):

您必须打开在很短的类型化,讨论你的程序,描述了一流的设计,并讨论了它的工作,而你遇到的问题报告。您的报告应包括
规划:你是如何计划和组织你的程序?它有什么作用?
实施:你的程序是如何组织的?有什么主要课程?如何交互的对象?绘制的图。
测试:你是如何测试你的代码?你遇到什么样的错误呢?是否有代码中的任何尚未解决的问题?
评价这个项目。那你从中学到了?是值得努力吗?这可能包括的东西,你了解了规范和接口,设计问题,Java语言的问题,调试等。
打开你与导通在页面上你的java文件一起PDF文件报告。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: