C#练习题答案: TDD面积计算【难度:2级】--景越C#经典编程题库,1000道C#基础练习题等你来挑战

TDD面积计算【难度:2级】:

答案1:

using System;
using System.Linq;

public class Calculator
{
   
  public double GetTotalArea(params IShape[] shapes)
  {
   
    return Math.Round(shapes.Sum(s => s.GetArea()), 2);
  }
}


public interface IShape
{
   
  double GetArea();
}

public class Triangle : IShape
{
   
  public double TriangleBase {
    get; set; }
  public double TriangleHeight {
    get; set; }
        
  public Triangle(double triangleBase, double triangleHeight)
  {
   
    this.TriangleBase = triangleBase;
    this.TriangleHeight = triangleHeight;
  }
  
  public double GetArea()
  {
   
    return (this.TriangleBase * this.TriangleHeight) / 2;
  }
}

public class Square : IShape
{
   
  public double Side {
    get; set; }
        
  public Square(double side)
  {
   
    this.Side = side;
  }
  
  public double GetArea()
  {
   
    return this.Side * this.Side;
  }
}

public class Rectangle : IShape
{
   
  public double Height {
    get; set; }
  public double Width {
    get; set; }
        
  public Rectangle(double height, double width)
  {
   
    this.Height = height;
    this.Width = width;
  }
  
  public double GetArea()
  {
   
    return this.Width * this.Height;
  }
}

public class Circle : IShape
{
   
  public double Radius {
    get; set; }
        
  public Circle(double radius)
  {
   
    this.Radius = radius;
  }
  
  public double GetArea()
  {
   
    return Math.PI * Math.Pow(this.Radius, 2);
  }
}

答案2:

using System;
using System.Linq;
 
public class Figure
{
   
  public double Area {
   get;set;}
}

public class Triangle : Figure
{
   
  public Triangle(double h, double w)
  {
   
    Area = h*w/2;
  }
}
public class Square : Figure
{
   
  public Square(double h)
  {
   
    Area = h*h;
  }
}
public class Rectangle : Figure
{
   
  public Rectangle(double h, double w)
  {
   
    Area = h*w;
  }
}

public class Circle : Figure
{
   
  public Circle(double r)
  {
   
    Area = r*r*Math.PI;
  }
}
public class Calculator
{
   
  public double GetTotalArea(params Figure[] figures)
  {
   
    return Math.Round(figures.Sum(f=>f.Area), 2);
  }
}

答案3:

// ==SHAPES==
public abstract class Shape {
   
  public abstract double GetArea();
}

public class Triangle: Shape {
   
  private double _base;
  private double _height;
  public Triangle()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值