c#描述一个几何图形的抽象类,包括求面积、求周长两个抽象方法,并派生出长方形类、正方形类、圆形类、三角形类,在主函数中输入图形的类别,并输入相关数据,求其面积和周长
1条回答 默认 最新
- apples_kk 2023-03-28 16:18关注
//抽象类Geometric public abstract class Geometric { //抽象方法,求面积 public abstract double Area(); //抽象方法,求周长 public abstract double Perimeter(); } //长方形类Rectangle: public class Rectangle : Geometric { private double length; private double width; public Rectangle(double l, double w) { this.length = l; this.width = w; } public override double Area() { return length * width; } public override double Perimeter() { return 2 * (length + width); } } //正方形类Square: public class Square : Geometric { private double side; public Square(double side) { this.side = side; } public override double Area() { return side * side; } public override double Perimeter() { return 4 * side; } } //圆形类Circle: public class Circle : Geometric { private double radius; public Circle(double radius) { this.radius = radius; } public override double Area() { return Math.PI * radius * radius; } public override double Perimeter() { return 2 * Math.PI * radius; } } //三角形类Triangle: public class Triangle : Geometric { private double side1; private double side2; private double side3; public Triangle(double side1, double side2, double side3) { this.side1 = side1; this.side2 = side2; this.side3 = side3; } public override double Area() { double p = (side1 + side2 + side3) / 2; return Math.Sqrt(p * (p - side1) * (p - side2) * (p - side3)); } public override double Perimeter() { return side1 + side2 + side3; } } //主函数 class Program { static void Main(string[] args) { Console.WriteLine("请输入图形的类型:"); Console.WriteLine("1.长方形 2.正方形 3.圆形 4.三角形"); int figure = Convert.ToInt32(Console.ReadLine()); double area = 0, perimeter = 0; switch (figure) { case 1: Console.WriteLine("请输入对应的长和宽:"); double l = Convert.ToDouble(Console.ReadLine()); double w = Convert.ToDouble(Console.ReadLine()); Rectangle rect = new Rectangle(l, w); area = rect.Area(); perimeter = rect.Perimeter(); break; case 2: Console.WriteLine("请输入对应的边长:"); double side = Convert.ToDouble(Console.ReadLine()); Square sqaure = new Square(side); area = sqaure.Area(); perimeter = sqaure.Perimeter(); break; case 3: Console.WriteLine("请输入对应的半径:"); double r = Convert.ToDouble(Console.ReadLine()); Circle circle = new Circle(r); area = circle.Area(); perimeter = circle.Perimeter(); break; case 4: Console.WriteLine("请输入对应的三角形三边长:"); double s1 = Convert.ToDouble(Console.ReadLine()); double s2 = Convert.ToDouble(Console.ReadLine()); double s3 = Convert.ToDouble(Console.ReadLine()); Triangle triangle = new Triangle(s1, s2, s3); area = triangle.Area(); perimeter = triangle.Perimeter(); break; } Console.WriteLine("面积 = {0}", area); Console.WriteLine("周长 = {0}", perimeter); Console.ReadKey(); } }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 smptlib使用465端口发送邮件失败
- ¥200 总是报错,能帮助用python实现程序实现高斯正反算吗?有偿
- ¥15 对于squad数据集的基于bert模型的微调
- ¥15 为什么我运行这个网络会出现以下报错?CRNN神经网络
- ¥20 steam下载游戏占用内存
- ¥15 CST保存项目时失败
- ¥15 树莓派5怎么用camera module 3啊
- ¥20 java在应用程序里获取不到扬声器设备
- ¥15 echarts动画效果的问题,请帮我添加一个动画。不要机器人回答。
- ¥15 Attention is all you need 的代码运行