联系方式

  • QQ:99515681
  • 邮箱:99515681@qq.com
  • 工作时间:8:00-21:00
  • 微信:codinghelp

您当前位置:首页 >> CS作业CS作业

日期:2018-06-20 03:08

程式設計二,HW11

繳交截止時間 6/19 晚上 23:00

(a) 請查詢個人登入之帳號及密碼,作為程式繳交之用

查詢網址為 http://140.138.144.66/1062prog/pc2.htm

(b) 使用查詢所得之帳號密碼,以上課介紹之步驟,使用自動評分系統繳交程式

(c) 切勿作弊抄襲,違反規定者一律以零分計算。

程式碼中請勿有 system(“pause”);

以免造成評分系統無法評分(理由已於上課中說明)

各題輸出結果中,除有規定外,最後一列均不再換行

函數相關訊息則以每一橫列顯示,不同函數請換行顯示

題目未以類別方式完成程式者均不計分

第一題:

定義一名為 GeometricObject 之類別,其中包含

(a) 一名為 color 之 private string 成員

(b) ㄧ名為 filled 之 private boolean 成員

(c) 一建構子,無接受參數,負責將 color 指定為 “white”,將 filled 指定為 flase,並印出

“Constructor1”後換行

(d) 一建構子,接受一個 string color 參照及 bool filled 參數,負責將傳遞進來的參數 color

及 filled 分別指定給 color 及 filled 成員,並印出 “Constructor2”後換行

(e) 一傳回 string 之 public getColor 成員函數,無接受參數,傳回 color 成員之值

(f) 一無回傳值之 public setColor 成員函數,接受一個名為 color 的 string 參數,負責

將傳遞進來的參數 color 指定給 color 成員

(g) 一傳回 boolean 之 public isFilled 成員函數,無接受參數,傳回 filled 成員之值

(h) 一無回傳值之 public setFilled 成員函數,接受一個名為 filled 的 boolean 參數,負

責將傳遞進來的參數 filled 指定給 filled 成員

(i) 一傳回 string 之 public toString 成員函數,無接受參數,傳回如下格式之 string

Color: color 成員值 Filled: filled 成員值

其中 color 成員值為 color 成員字串值(“white”, “red”, ….), filled 成員值為 filled 成員

值(True or False)

亦即印出之格式為 “Color:XXX□Filled:XXXXX

XXX 為 white、red、…

XXXXX 為 True 或 False

以上所有成員函數均為 public

另外包含一名為 Circle 且 public 繼承 GeometricObject 之類別,其中包含

(a) 一名為 radius 之 private double 成員

(b) 一建構子,無接受參數,將 radius 成員之值設定為 1,並印出“CConstructor1”後換行

(c) 一建構子,接受接受一個名為 radius 的 double 參數,負責將傳遞進來的參數 radius 指定

給 radius 成員,並印出“CConstructor2”後換行,若傳遞進來之 radius 值小於 0,則印出

“Wrong”後換行,同時將 radius 成員設成 0。

(d) 一建構子,接受接受一個名為 radius 的 double 參數、一個名為 color 的 string 參照、一

個名為 filled 的 bool 參數,負責將傳遞進來的參數 radius 指定給 radius 成員、將傳遞進

來的參數 color 及 filled 分別指定給 color 及 filled 成員,並印出“CConstructor3”後換行,

若傳遞進來之 radius 值小於 0,則印出“Wrong”後換行,同時將 radius 成員設成 0。

(e) 一傳回 double 之 public getRadius 成員函數,無接受參數,傳回 radius 成員之值

(f) 一無回傳值之 public setRadius 成員函數,接受參數一個名為 radius 的 double 參數,

負責將傳遞進來的參數 radius 指定給 radius 成員,若傳遞進來之 radius 值小於 0,則印

出“Wrong”後換行,同時將 radius 成員設成 0。

(g) 一傳回 double 之 public getArea 成員函數,無接受參數,傳回圓面積

(radius*radius*3.14159)

(h) 一傳回 double 之 public getDiameter 成員函數,無接受參數,傳回圓直徑(2*radius)

(i) 一傳回 double 之 public getPerimeter 成員函數,無接受參數,傳回圓周長

(2*radius*3.14159)

(j) 一無回傳值之 public toString 成員函數,無接受參數,傳回如下格式之 string

CColor: color 成員值 Radius: radius 成員值

其中 color 成員值為 color 成員字串值(“white”, “red”, ….), radius 成員值為 radius 成員

亦即印出之格式為 “CColor:XXX□Radius:XXXXX

XXX 為 white、red、…

XXXXX 為 radius 成員值(小數點後印出六位)

以上所有成員函數均為 public

另外包含一名為 Rectangle 且 public 繼承 GeometricObject 之類別,其中包含

(a) 一名為 width 之 private double 成員

(b) 一名為 height 之 private double 成員

(c) 一建構子,無接受參數,將 width 成員值設為 1、height 成員值設為 1,並印出

“RConstructor2”後換行,

(d) 一建構子,接受名為 width 及 height 的 double 參數,負責將傳遞進來的參數 width 指定

給 width 成員,及傳遞進來的參數 height 指定給 height 成員。並印出“RConstructor2”後

換行,若傳遞進來之 width 或 height 之值小於 0,則印出“Wrong”後換行,並將傳遞進來

之值為 0 者相對應之 width 或 height 成員設成 0。

(e) 一建構子,接受接受名為 width 及 height 的 double 參數、一個名為 color 的 string 參照、

一個名為 filled 的 bool 參數,負責將傳遞進來的參數 width 指定給 width 成員、傳遞進

來的參數 height 指定給 height 成員、傳遞進來的參數 color 及 filled 分別指定給 color 及

filled 成員。並印出“RConstructor3”後換行,若傳遞進來之 width 或 height 之值小於 0,

則印出“Wrong”後換行,並將傳遞進來之值為 0 者相對應之 width 或 height 成員設成 0。

(f) 一傳回 double 之 public getWidth 成員函數,無接受參數,傳回 width 成員之值

(g) 一傳回 double 之 public getHeight 成員函數,無接受參數,傳回 height 成員之值

(h) 一無回傳值之 public setWidth 成員函數,接受參數一個名為 width 的 double 參數,

負責將傳遞進來的參數 width 指定給 width 成員。若傳遞進來之 width 小於 0,則印出

“Wrong”後換行,並將 width 成員設成 0。

(i) 一無回傳值之 public setHeight 成員函數,接受參數一個名為 height 的 double 參數,

負責將傳遞進來的參數 height 指定給 height 成員。若傳遞進來之 height 值小於 0,則印

出“Wrong”後換行,並將 height 成員設成 0。

(j) 一傳回 double 之 public getArea 成員函數,無接受參數,傳回矩形面積(width*height)

(k) 一傳回 double 之 public getPerimeter 成員函數,無接受參數,傳回矩形周長

(2*(width+height))

(l) 一無回傳值之 public toString 成員函數,無接受參數,傳回如下格式之 string

The Rheight: height 成員值 Rwidth: width 成員值

亦即印出之格式為 “Rheight:XXX□Rwidth:XXXXX

XXX 為 heigth 成員之值,XXXXX 為 width 成員之值 (小數點後印出六位)

以上所有成員函數均為 public

前述定義中,均需檢查所使用的 width、height、radius 等是否合理(因代表長、寬、半徑等,故均

需>=0)

主程式 main 中則須依序包含下列功能程式碼作測試用。

為表示空白,程式中□表示英文空白

實際程式輸入時請把□換成英文空白

int main()

{

GeometricObject shape;

shape.setColor("red");

shape.setFilled(true);

cout << shape.toString() << endl

<< "color:□" << shape.getColor()

<< " filled:□" << (shape.isFilled() ? "true" : "false") << endl;

Circle circle(5);

circle.setColor("black");

circle.setFilled(false);

cout << circle.toString()<< endl

<< "color:□" << circle.getColor()

<< " filled:□" << (circle.isFilled() ? "true" : "false")

<< " radius:□" << circle.getRadius()

<< " area:□" << circle.getArea()

<< " perimeter:□" << circle.getPerimeter() << endl;

Circle circle1(-5);

circle1.setColor("black");

circle1.setFilled(false);

cout << circle1.toString()<< endl

<< "color:□" << circle1.getColor()

<< " filled:□" << (circle1.isFilled() ? "true" : "false")

<< " radius:□" << circle1.getRadius()

<< " area:□" << circle1.getArea()

<< " perimeter:□" << circle1.getPerimeter() << endl;

string strc("red");

Circle circle2(2.5, strc, false);

circle2.setColor("black");

circle2.setFilled(false);

cout << circle2.toString()<< endl

<< "color:□" << circle2.getColor()

<< " filled:□" << (circle2.isFilled() ? "true" : "false")

<< " radius:□" << circle2.getRadius()

<< " area:□" << circle2.getArea()

<< " perimeter:□" << circle2.getPerimeter() << endl;

Rectangle rectangle(2, 3);

rectangle.setColor("orange");

rectangle.setFilled(true);

cout << rectangle.toString()<< endl

<< "color:□" << rectangle.getColor()

<< " filled:□" << (rectangle.isFilled() ? "true" : "false")

<< " width:□" << rectangle.getWidth()

<< " height:□" << rectangle.getHeight()

<< " area:□" << rectangle.getArea()

<< " perimeter:□" << rectangle.getPerimeter() << endl;

Rectangle rectangle1(2, 0);

rectangle.setColor("orange");

rectangle.setFilled(true);

cout << rectangle1.toString()<< endl

<< "color:□" << rectangle1.getColor()

<< " filled:□" << (rectangle1.isFilled() ? "true" : "false")

<< " width:□" << rectangle1.getWidth()

<< " height:□" << rectangle1.getHeight()

<< " area:□" << rectangle1.getArea()

<< " perimeter:□" << rectangle1.getPerimeter() << endl;

return 0;

}

(100%) 未依規定要求項目完成者不計分


版权所有:编程辅导网 2021 All Rights Reserved 联系方式:QQ:99515681 微信:codinghelp 电子信箱:99515681@qq.com
免责声明:本站部分内容从网络整理而来,只供参考!如有版权问题可联系本站删除。 站长地图

python代写
微信客服:codinghelp