日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > C# >内容正文

C#

C#——Ellipse(椭圆)类[继承Ellipse(椭圆)类重构Circle(圆)类]

發(fā)布時(shí)間:2024/10/5 C# 91 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C#——Ellipse(椭圆)类[继承Ellipse(椭圆)类重构Circle(圆)类] 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

問題描述

定義一個(gè)Circle類,其功能有:

1)兩個(gè)double類型屬性X和Y,可讀寫圓心坐標(biāo)

2)一個(gè)double類型屬性Radius,可讀寫圓的半徑

3)一個(gè)構(gòu)造方法,以指定的x,y,radius來構(gòu)造

4)一個(gè)只讀屬性Area,獲取圓面積

5)一個(gè)只讀屬性Perimeter,獲取圓周長(zhǎng)

6)一個(gè)方法bool?Contains(double?x,?double?y),如果指定的點(diǎn)(x,?y)處于本圓內(nèi),返回true

7)一個(gè)方法bool?Contains(Circle?circle),如果指定的圓circle包含在本圓內(nèi),返回true

8)一個(gè)方法bool?Extend(double?range,?out?Circle?newCircle),半徑擴(kuò)大(加上range),輸出擴(kuò)大后的newCircle,返回true。如果Radius+range為負(fù),無法擴(kuò)大,則輸出原來的圓,且返回false。

在一個(gè)Main方法中對(duì)上述功能進(jìn)行測(cè)試?

?

添加一個(gè)Ellipse(橢圓)類:

1)X, Y, MajorRadius, MinorRadius屬性

2)至少兩個(gè)Ellipse構(gòu)造方法,一個(gè)調(diào)用另一個(gè)

3)只讀屬性Area

4)實(shí)例方法bool Contains(double x, double y)

5)實(shí)例方法string ToString()

6)讓Circle類繼承Ellipse類,將其中的重復(fù)代碼刪去

7)在MajorRadius, MinorRadius屬性的set訪問器中,對(duì)value進(jìn)行檢查,如果value<=0,拋出異常(throw new ArgumentException("主軸長(zhǎng)度不能為負(fù)");),并保證MajorRadius>=MinorRadius?

在一個(gè)Main方法中對(duì)上述功能進(jìn)行測(cè)試?

源代碼?

using System;namespace HomeWork1 {//定義一個(gè)Circle類,其功能有class Circle{//-兩個(gè)double類型屬性X和Y,可讀寫圓心坐標(biāo)public double X{set;get;}public double Y{set;get;}//-一個(gè)double類型屬性Radius,可讀寫圓的半徑public double Radius {set;get;}//-一個(gè)構(gòu)造方法,以指定的x,y,radius來構(gòu)造public Circle(double X, double Y, double Radius) {this.X = X;this.Y = Y;this.Radius = Radius;}//-一個(gè)只讀屬性Area,獲取圓面積public double Area {get {return Radius * Radius * 3.1415926;}}//-一個(gè)只讀屬性Perimeter,獲取圓周長(zhǎng)public double Perimeter{get { return 2 * Radius * 3.1415926;}}//-如果指定的點(diǎn)(x, y)處于本圓內(nèi),返回truepublic bool Contains(double x, double y) {if ((x - X) * (x - X) + (y - Y)* (y - Y) < Radius * Radius) {return true;}return false;}//-如果指定的圓circle包含在本圓內(nèi),返回truepublic bool Contains(Circle circle) {if (Radius>circle.Radius && (Radius - circle.Radius) * (Radius - circle.Radius) > (circle.X - X) * (circle.X - X) + (circle.Y - Y) * (circle.Y - Y)){return true;}return false;}//-半徑擴(kuò)大(加上range),輸出擴(kuò)大后的newCircle,返回true。如果Radius+range為負(fù),無法擴(kuò)大,則輸出原來的圓,且返回false。public bool Extend(double range, out Circle newCircle) {newCircle = this;if (newCircle.Radius + range > 0) {newCircle.Radius = newCircle.Radius + range;return true;}return false;}}class Program{static void Main(string[] args){Circle circle = new Circle(1,1,3);Console.WriteLine("面積:{0}\t周長(zhǎng):{1}",circle.Area, circle.Perimeter);Console.WriteLine("(2,2)在本圓內(nèi):{0}", circle.Contains(2,2));Console.WriteLine("Circle(1,1,1)在本圓內(nèi):{0}", circle.Contains(new Circle(1,1,1)));circle.Extend(2,out circle);Console.WriteLine("面積:{0}\t周長(zhǎng):{1}", circle.Area, circle.Perimeter);}} } using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;namespace Homework4 {/*** 添加一個(gè)Ellipse(橢圓)類:* 1)X, Y, MajorRadius, MinorRadius屬性* 2)至少兩個(gè)Ellipse構(gòu)造方法,一個(gè)調(diào)用另一個(gè)* 3)只讀屬性Area* 4)實(shí)例方法bool Contains(double x, double y)* 5)實(shí)例方法string ToString()* 6)讓Circle類繼承Ellipse類,將其中的重復(fù)代碼刪去* 7)在MajorRadius, MinorRadius屬性的set訪問器中,* 對(duì)value進(jìn)行檢查,如果value<=0,拋出異常(throw new ArgumentException("主軸長(zhǎng)度不能為負(fù)");),* 并保證MajorRadius>=MinorRadius*/class Ellipse {//-兩個(gè)double類型屬性X和Y,可讀寫圓心坐標(biāo)public double X{set;get;}public double Y{set;get;}private double majorRadius {set;get;}private double minorRadius{set;get;}public double MajorRadius {set {if (value < 0) {throw new ArgumentException("主軸長(zhǎng)度不能為負(fù)");}majorRadius = value;}get {return majorRadius;}}public double MinorRadius{set{if (value > MajorRadius){throw new ArgumentException("主軸長(zhǎng)度不能為負(fù)");}minorRadius = value;}get{return minorRadius;}}//一個(gè)只讀屬性Area,獲取橢圓面積public double Area {get { return X * Y * Math.PI; }}public Ellipse():this(1,2) {}public Ellipse(double x,double y) { }//-如果指定的點(diǎn)(x, y)處于橢圓內(nèi),返回truepublic bool Contains(double x, double y) {if ((x - X) * (x - X) * MinorRadius * MinorRadius + (y - Y) * (y - Y) * MajorRadius * MajorRadius < MajorRadius * MajorRadius * MinorRadius * MinorRadius){return true;}return false;}public string ToString() { return "Ellipse{"+"X: " + X + " " +"Y: " + Y + " " +"MajorRadius: " + MajorRadius + " " +"MinorRadius: " + MinorRadius + " " +"}";}}class Circle:Ellipse{//-一個(gè)double類型屬性Radius,可讀寫圓的半徑public double Radius{set {MinorRadius = MajorRadius = value;}get { return MajorRadius; }}//-一個(gè)構(gòu)造方法,以指定的x,y,radius來構(gòu)造public Circle(double X, double Y, double Radius){this.X = X;this.Y = Y;this.Radius = Radius;}//-//-一個(gè)只讀屬性Perimeter,獲取圓周長(zhǎng)public double Perimeter{get{return 2 * Radius * Math.PI;}}//-如果指定的圓circle包含在本圓內(nèi),返回truepublic bool Contains(Circle circle){if (Radius > circle.Radius&& (Radius - circle.Radius) * (Radius - circle.Radius) > (circle.X - X) * (circle.X - X) + (circle.Y - Y) * (circle.Y - Y)){return true;}return false;}//-半徑擴(kuò)大(加上range),輸出擴(kuò)大后的newCircle,返回true。如果Radius+range為負(fù),無法擴(kuò)大,則輸出原來的圓,且返回false。public bool Extend(double range, out Circle newCircle){newCircle = this;if (newCircle.Radius + range > 0){newCircle.Radius = newCircle.Radius + range;return true;}return false;}public string ToString(){return "Circle{" +"X: " + X + " " +"Y: " + Y + " " +"Radius: " + Radius + " " +"}";}}class Program{static void Main(string[] args){Circle circle = new Circle(1, 1, 3);Console.WriteLine("面積:{0}\t周長(zhǎng):{1}", circle.Area, circle.Perimeter);Console.WriteLine("(2,2)在本圓內(nèi):{0}", circle.Contains(2, 2));Console.WriteLine("Circle(1,1,1)在本圓內(nèi):{0}", circle.Contains(new Circle(1, 1, 1)));circle.Extend(2, out circle);Console.WriteLine(circle.ToString());Console.WriteLine("面積:{0}\t周長(zhǎng):{1}", circle.Area, circle.Perimeter);}} }

運(yùn)行結(jié)果

?

參考文章

https://blog.csdn.net/pengpengblog/article/details/53213454

https://shentuzhigang.blog.csdn.net/article/details/104880342?

與50位技術(shù)專家面對(duì)面20年技術(shù)見證,附贈(zèng)技術(shù)全景圖

總結(jié)

以上是生活随笔為你收集整理的C#——Ellipse(椭圆)类[继承Ellipse(椭圆)类重构Circle(圆)类]的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。