
用C#设计一个能计算等边三角形、圆、正方形面积的类,
输入一个值(该值作为边或圆的半径)和图形的类型,计算该图形的面积。利用委托类型及switch语句实现。RT,求解啊,速度了写的好追加。。...
输入一个值(该值作为边或圆的半径)和图形的类型,计算该图形的面积。利用委托类型及switch语句实现。
RT,求解啊,速度了
写的好追加。。 展开
RT,求解啊,速度了
写的好追加。。 展开
1个回答
2013-11-08
展开全部
/// <summary>
/// 几何图形的枚举
/// </summary>
public enum GeometryGraphic
{
/// <summary>
/// 圆形
/// </summary>
Round,
/// <summary>
/// 正方形
/// </summary>
Square
}
/// <summary>
/// 计算面积
/// </summary>
class CalculateArea
{
/// <summary>
/// 计算面积的委托
/// </summary>
/// <param name="inputValue"></param>
/// <returns></returns>
delegate double AreaEventHandler(double inputValue);
/// <summary>
/// 计算圆形的面积
/// </summary>
/// <param name="inputValue">半径</param>
/// <returns></returns>
public double GetRoundArea(double inputValue)
{
return Math.PI * inputValue * inputValue;
}
/// <summary>
/// 计算正方形的面积
/// </summary>
/// <param name="inputValue">边长</param>
/// <returns></returns>
public double GetSquareArea(double inputValue)
{
return inputValue * inputValue;
}
/// <summary>
/// 执行计算
/// </summary>
/// <param name="inputValue">输入的值</param>
/// <param name="type">图形的类型</param>
/// <returns></returns>
public double ExecuteCalculate(double inputValue, GeometryGraphic type)
{
AreaEventHandler areaEventHandler = null;
switch (type)
{
case GeometryGraphic.Round:
areaEventHandler = new AreaEventHandler(GetRoundArea);
break;
case GeometryGraphic.Square:
areaEventHandler = new AreaEventHandler(GetSquareArea);
break;
}
return areaEventHandler(inputValue);
}
}
进行测试:
static void Main(string[] args)
{
CalculateArea area = new CalculateArea();
double result = area.ExecuteCalculate(4d, GeometryGraphic.Square);
Console.WriteLine(result);
}
输出结果是:16 完全符合要求
例子已经给出来了,但对于计算三角形或者梯形、圆柱形、圆锥形,输入一个值是肯定不够的,只要稍加改动即可
/// 几何图形的枚举
/// </summary>
public enum GeometryGraphic
{
/// <summary>
/// 圆形
/// </summary>
Round,
/// <summary>
/// 正方形
/// </summary>
Square
}
/// <summary>
/// 计算面积
/// </summary>
class CalculateArea
{
/// <summary>
/// 计算面积的委托
/// </summary>
/// <param name="inputValue"></param>
/// <returns></returns>
delegate double AreaEventHandler(double inputValue);
/// <summary>
/// 计算圆形的面积
/// </summary>
/// <param name="inputValue">半径</param>
/// <returns></returns>
public double GetRoundArea(double inputValue)
{
return Math.PI * inputValue * inputValue;
}
/// <summary>
/// 计算正方形的面积
/// </summary>
/// <param name="inputValue">边长</param>
/// <returns></returns>
public double GetSquareArea(double inputValue)
{
return inputValue * inputValue;
}
/// <summary>
/// 执行计算
/// </summary>
/// <param name="inputValue">输入的值</param>
/// <param name="type">图形的类型</param>
/// <returns></returns>
public double ExecuteCalculate(double inputValue, GeometryGraphic type)
{
AreaEventHandler areaEventHandler = null;
switch (type)
{
case GeometryGraphic.Round:
areaEventHandler = new AreaEventHandler(GetRoundArea);
break;
case GeometryGraphic.Square:
areaEventHandler = new AreaEventHandler(GetSquareArea);
break;
}
return areaEventHandler(inputValue);
}
}
进行测试:
static void Main(string[] args)
{
CalculateArea area = new CalculateArea();
double result = area.ExecuteCalculate(4d, GeometryGraphic.Square);
Console.WriteLine(result);
}
输出结果是:16 完全符合要求
例子已经给出来了,但对于计算三角形或者梯形、圆柱形、圆锥形,输入一个值是肯定不够的,只要稍加改动即可
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询