0
一个朋友最近进行了电话采访,他被问了一个技术问题:2D的计算面积形状
Q)如果我想计算一些2D图形的表面积那么什么是“斗”会我用。他有20分钟的时间写一些代码,面试官给他回电话。他通过电子邮件发送了代码,在面试的其余部分没有讨论代码(没有其他技术问题)。他送我的代码:
Windows窗体应用程序
namespace ShapesApp
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
this.Load += form_load;
}
public void form_load (Object o, EventArgs e)
{
List<Shape> listShape = new List<Shape>();
Shapes.Circle circle = new Shapes.Circle();
Shapes.Rectangle rectangle = new Shapes.Rectangle();
Shapes.Square square = new Shapes.Square();
Shapes.Triangle triangle = new Shapes.Triangle();
listShape.Add(rectangle);
listShape.Add(square);
listShape.Add(triangle);
foreach (Shape shape in listShape)
{
double a = 10;
double b = 10;
double surfaceArea = shape.CalculateSurfaceArea(a,b);
Console.WriteLine("The surface area of a " + shape.GetType() + " is: " + surfaceArea);
}
}
}
}
形状 - 类库
namespace Shapes
{
public abstract class Shape
{
abstract public double CalculateSurfaceArea(double Double1, double Double2);
}
public class Circle : Shape
{
public override double CalculateSurfaceArea(double pi, double radius)
{
return (pi * radius) * (pi * radius);
}
}
public class Triangle : Shape
{
public override double CalculateSurfaceArea(double Base, double Height)
{
return (Base*Height)/2;
}
}
public class Rectangle : Shape
{
public override double CalculateSurfaceArea(double Length, double Width)
{
return Length * Width;
}
}
}
面试官说,他 “挣扎” 与测试。代码有什么问题?
为什么使用Windows形式如果结果将在控制台被打印? – Fabio
pi是一个常量,为什么它作为一个参数传递并且不正确地平方? – jdweng
所以我可以指定'pi = -15.789'? '... CalculateSurfaceArea(double pi,double radius)...';我可以用'长度'!='宽度'来设置*正方形? –