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 matlab(相关搜索:紧聚焦)
- ¥15 基于51单片机的厨房煤气泄露检测报警系统设计
- ¥15 路易威登官网 里边的参数逆向
- ¥15 Arduino无法同时连接多个hx711模块,如何解决?
- ¥50 需求一个up主付费课程
- ¥20 模型在y分布之外的数据上预测能力不好如何解决
- ¥15 processing提取音乐节奏
- ¥15 gg加速器加速游戏时,提示不是x86架构
- ¥15 python按要求编写程序
- ¥15 Python输入字符串转化为列表排序具体见图,严格按照输入