阿摩線上測驗 登入

104年 - 104年第二次程式設計#41545

科目:程式設計 | 年份:104年 | 選擇題數:0 | 申論題數:7

試卷資訊

所屬科目:程式設計

選擇題 (0)

申論題 (7)

三、請以 Java 或 C++撰寫實做一簡單幾何圖形類別系統(class hierarchy),可以表示圓 形、方形與矩形。圓形、方形與矩形之類別名稱分別為 Circle、Square 與 Rectangle。 三者的共同祖先類別 Shape 是一個抽象類別,代表所有可能的幾何圖形。Shape 下的 兩個具體子類別分別為 Circle 及 Square,Square 下則有 Rectangle 類別。 我們希望每一幾何物件均能提供以下方法:1.透過 getX(),getY()可得到幾何中心點的 X 與 Y 座標。2.透過 getArea()可得到圖形面積。  3.透過 getPerimeter()可得到圖形周長。  4.透過 translate(double x, double y):void 可對圖形進行位移。5.透過 scale(double f):void 可對圖形進行放大或縮小。  6.透過 toString():String 可得到該圖形的形狀種類、中心與長寬或半徑的文字 資訊。 其他類別須額外提供以下方法:  7. Circle 物件須提供 getRadius():double,可以取得物件半徑。  8.Square 物件須提供 getSide():double,可以取得邊長。9. Rectangle 物件須提供 getHeight(),getWidth():double,可以取得矩形的高 與寬。 每一類別僅需提供一建構式(constructor),其參數格式要求如下:  10. a. Shape(x,y),b. Rectangle(x,y,w,h),c. Square(x,y,s),d.Circle(x,y,r)。 所有參數的型態(type)均為 double,其中 x 與 y 為幾何圖形中心的 X 與 Y 座 標,r 為圓形半徑,w 與 h 為矩形的寬與高而 s 則是方形的邊長。請根據以上要 求,以 Java 實做此四類別(class)。除須符合上述要求之外,實做時尚須遵循一般 物件導向與軟體設計原則,尚須避免程式碼重複、產生無用欄位,以及資訊隱藏不 全等缺點。(20 分)