程式設計二,HW11
繳交截止時間 6/19 晚上 23:00
程式碼中請勿有 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%) 未依規定要求項目完成者不計分
代写CS&Finance|建模|代码|系统|报告|考试
编程类:C++,JAVA ,数据库,WEB,Linux,Nodejs,JSP,Html,Prolog,Python,Haskell,hadoop算法,系统 机器学习
金融类:统计,计量,风险投资,金融工程,R语言,Python语言,Matlab,建立模型,数据分析,数据处理
服务类:Lab/Assignment/Project/Course/Qzui/Midterm/Final/Exam/Test帮助代写代考辅导
E-mail:850190831@qq.com 微信:BadGeniuscs 工作时间:无休息工作日-早上8点到凌晨3点
如果您用的手机请先保存二维码到手机里面,识别图中二维码。如果用电脑,直接掏出手机果断扫描。