資源簡介
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\Geometricob
?????文件???????1418??2013-08-08?18:07??V3\bin\Rectangle.class
?????文件???????1684??2013-08-08?18:07??V3\bin\TestGeometricob
?????文件???????2768??2013-08-09?15:32??V3\bin\TestGeometricob
?????文件???????1680??2013-08-09?14:46??V3\bin\TestGeometricob
?????文件???????1320??2013-08-09?14:46??V3\bin\TestGeometricob
?????文件????????747??2013-08-09?14:46??V3\bin\TestGeometricob
?????文件????????875??2013-08-09?14:46??V3\bin\TestGeometricob
?????文件????????874??2013-08-09?14:46??V3\bin\TestGeometricob
?????文件????????875??2013-08-09?14:46??V3\bin\TestGeometricob
?????文件????????873??2013-08-09?14:46??V3\bin\TestGeometricob
?????文件????????876??2013-08-09?14:46??V3\bin\TestGeometricob
?????文件????????854??2013-08-09?14:46??V3\bin\TestGeometricob
?????文件???????1527??2013-08-09?14:46??V3\bin\TestGeometricob
?????文件???????4697??2013-08-09?14:46??V3\bin\TestGeometricob
?????文件???????2344??2013-08-08?17:57??V3\bin\Triangle.class
?????文件???????3368??2013-08-09?15:33??V3\Geometricob
?????文件???????1565??2013-08-08?17:57??V3\src\Circle.java
?????文件????????271??2013-08-08?17:48??V3\src\Geometricob
?????文件???????1439??2013-08-08?18:07??V3\src\Rectangle.java
?????文件???????1204??2013-08-08?18:07??V3\src\TestGeometricob
?????文件???????2631??2013-08-09?15:32??V3\src\TestGeometricob
?????文件???????7003??2013-08-09?14:46??V3\src\TestGeometricob
?????文件???????2114??2013-08-08?17:57??V3\src\Triangle.java
?????目錄??????????0??2013-08-08?15:22??V3\.settings
............此處省略6個文件信息
- 上一篇:非ie內核瀏覽器activex支持插件
- 下一篇:統計字符串-課程設計
評論
共有 條評論