• 大小: 23KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-01
  • 语言: 其他
  • 标签: 几何图形  jpanel  xhay  

资源简介

3. 几何图形(满分50分) 版本1:满分 10 分 设计抽象类 GeometricObject 及其子类 Triangle 和Circle。 GeometricObject 类设计要求如下: ■ 一个名为 color 的Color类型的私有数据域,表示对象的颜色 ■ 一个名为 filled 的Boolean类型的私有数据域,表示对象是否 ■ 一个名为 dateCreated 的Date 类型的私有数据域,表示对象的 ■ 一个无参构造方法。 ■ 一个能创建特定 color 和filled 的有参构造方法。 ■ 相关数据域的访问器和修改器。 ■ 两个个名为 draw 和erase的抽象方法。 ■ 一个名为 getArea的抽象方法。 ■ 一个名为 getPerimeter的抽象方法。 ■ 重写 toString 方法。 Triangle 类设计要求如下: ■ 三个名为 side1、side2和 side3 的double 类型的私有数据域表 们的默认值是 1.0。要求三个数据域保留 2 位小数。 ■ 一个无参的构造方法创建默认三角形。 ■ 一个能创建带指定 side1、side2和 side3 的有参构造方法。 ■ 所有三个数据域的访问器和修改器方法。 ■ 父类抽象方法的实现。 ■ 重写 toString 方法。 Circle 类设计要求如下: ■ 一个名为 radius 的double 类型的私有数据域,表示圆的半径,数据域保留2 位小数。 ■ 一个名为 PI 的静态常量,其值为 3.14 ■ 一个无参的构造方法创建默认三角形。 ■ 一个能创建带指定 radius 的有参构造方法。 ■ radius 数据域的访问器和修改器方法。 ■ 父类抽象方法的实现。 ■ 重写 toString 方法。 测试类 TestGeometricObject1 设计要求如下: ■ 一个能随机生成 Circle 类和Triangle 类对象的静态方法 GeometricObject[] RandomCreateGeometricObject() ■ 以随机生成的数组为参数,输出数组中每个对象的基本信息、周长和面积。 ■ 类中其它方法的测试 版本2:满分 20 分 将上面的抽象类GeometricObject 改为接口,接口只保留其中四个抽象方法,声明类 Circle、Triangle 实现该接口,类的基本要求如上,同时为每个类增加一个将当前对象序列化 到指定文件的方法 writeToFile(File f)。 测试类 TestGeometricObject2 设计要求如下: ■ 一个能随机生成 Circle 类和Triangle 类对象的静态方法,该方法将随机生成的象序列 化到指定的文件 GeometricObjects.dat 中,序列化成功返回真,否则返回假。 Boolean RandomCreateGeometricObject() ■ 将GeometricObjects.dat 文件中对象全部读出,存储到 GeometricObject 对象数组中, 然后以此数组为参数,输出数组中每个对象的基本信息、周长和面积。 ■ 类中其它方法的测试。 新增一个类Rectangle ,也实现接口 GeometricObject ,同时修改测试类 TestGeometricObject2 ,体会开-闭原则。 版本3:满分 20 分 在第2 步的基础上设计实现一个具有 GUI 界面的几何图形绘制系统系统,要求实现根 据选择的几何图形类型来绘制和删除相应的图形,其中相关参数应通过界面输入,并可计算 图形的周长和面积。

资源截图

代码片段和文件信息

import java.awt.Color;
import java.io.File;
import java.io.Serializable;
import java.text.DecimalFormat;

/**
 * 
 */

/**
 * @class name Circle
 * @author X-Hay
 * @UP.
 */
public class Circle implements Geometricobject Serializable {

/**
 * 
 */
private double radius;
private final double PI = 3.14;
DecimalFormat df=new DecimalFormat(“#.00“);

public Circle() {
// TODO Auto-generated constructor stub
}
public Circle(double radius){
this.radius = Double.parseDouble(df.format(radius));
}

public double getRadius() {
return radius;
}
public void setRadius(double radius) {
this.radius = radius;
}
/* (non-Javadoc)
 * @see Geometricobject#draw()
 */
@Override
public void draw() {
// TODO Auto-generated method stub

}

/* (non-Javadoc)
 * @see Geometricobject#erase()
 */
@Override
public void erase() {
// TODO Auto-generated method stub

}

/* (non-Javadoc)
 * @see Geometricobject#getArea()
 */
@Override
public double getArea() {
// TODO Auto-generated method stub
return Double.parseDouble(df.format(PI*radius*radius));
}

/* (non-Javadoc)
 * @see Geometricobject#getPerimeter()
 */
@Override
public double getPerimeter() {
// TODO Auto-generated method stub
return Double.parseDouble(df.format(2*PI*radius));
}

@Override
public String toString() {
// TODO Auto-generated method stub
return “radius = “+radius+“\nArea = “+getArea()+“ Perimeter = “+getPerimeter();
}
public void writeToFile(File f){

}
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件        301  2013-08-08 15:19  V3\.classpath

     文件        378  2013-08-08 15:19  V3\.project

     文件        629  2013-08-08 15:19  V3\.settings\org.eclipse.jdt.core.prefs

     文件       5235  2013-08-08 15:24  V3\.settings\org.eclipse.jdt.ui.prefs

     文件       1740  2013-08-08 17:57  V3\bin\Circle.class

     文件        195  2013-08-08 17:48  V3\bin\Geometricobject.class

     文件       1418  2013-08-08 18:07  V3\bin\Rectangle.class

     文件       1684  2013-08-08 18:07  V3\bin\TestGeometricobject1.class

     文件       2768  2013-08-09 15:32  V3\bin\TestGeometricobject2.class

     文件       1680  2013-08-09 14:46  V3\bin\TestGeometricobject3$1.class

     文件       1320  2013-08-09 14:46  V3\bin\TestGeometricobject3$2.class

     文件        747  2013-08-09 14:46  V3\bin\TestGeometricobject3$3.class

     文件        875  2013-08-09 14:46  V3\bin\TestGeometricobject3$4.class

     文件        874  2013-08-09 14:46  V3\bin\TestGeometricobject3$5.class

     文件        875  2013-08-09 14:46  V3\bin\TestGeometricobject3$6.class

     文件        873  2013-08-09 14:46  V3\bin\TestGeometricobject3$7.class

     文件        876  2013-08-09 14:46  V3\bin\TestGeometricobject3$8.class

     文件        854  2013-08-09 14:46  V3\bin\TestGeometricobject3$9.class

     文件       1527  2013-08-09 14:46  V3\bin\TestGeometricobject3$DrawGraph.class

     文件       4697  2013-08-09 14:46  V3\bin\TestGeometricobject3.class

     文件       2344  2013-08-08 17:57  V3\bin\Triangle.class

     文件       3368  2013-08-09 15:33  V3\Geometricobject.dat

     文件       1565  2013-08-08 17:57  V3\src\Circle.java

     文件        271  2013-08-08 17:48  V3\src\Geometricobject.java

     文件       1439  2013-08-08 18:07  V3\src\Rectangle.java

     文件       1204  2013-08-08 18:07  V3\src\TestGeometricobject1.java

     文件       2631  2013-08-09 15:32  V3\src\TestGeometricobject2.java

     文件       7003  2013-08-09 14:46  V3\src\TestGeometricobject3.java

     文件       2114  2013-08-08 17:57  V3\src\Triangle.java

     目录          0  2013-08-08 15:22  V3\.settings

............此处省略6个文件信息

评论

共有 条评论