请采用面向对象的程序设计方法编写一个计算图形面积的类,程序应当能够计算并输出圆、矩形和三角形的面积。构造三个重载方法,对每一种图形类型使用不同的输入参数来计算面积:圆形的计算方法用半径作输入参数,矩形的计算方法用长和宽作输入参数,三角形的计算方法用三条边的长度作输入参数。可以将这些方法定义为静态类型。最后编写主控程序类来对该类进行使用。
//本程序由王赟 计算机092编写 2011,11,6 编写,仅供交流
//做完C#作业,便把东西传了上来。
///<summary>
///wangyun 2011,11,06 10:57 at The Second ClassRoom Building
///</summary>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace S3_4
{
class AreaCalculate
{
AreaCalculate() { }
/// <summary>
/// 求圆的面积
/// </summary>
/// <param name="radius">半径</param>
/// <returns></returns>
public static double GetArea(double radius)
{
return Math.PI * radius * radius;
}
/// <summary>
/// 求矩形的面积
/// </summary>
/// <param name="width">长</param>
/// <param name="height">宽</param>
/// <returns></returns>
public static double GetArea(double width,double height)
{
return width * height;
}
/// <summary>
/// 求三角形的面积,依据海伦公式
/// </summary>
/// <param name="side1">边长1</param>
/// <param name="side2">边长2</param>
/// <param name="side3">边长3</param>
/// <returns></returns>
public static double GetArea(double side1,double side2,double side3)
{
//仅当两边之和及两边之差大于第三边即边长为正数才能构成三角形
if ((side1 + side2 > side3 && side1 + side3 > side2 && side2 + side3 > side1) && (side1 - side2< side3 &&side1 - side3< side2 && side2 - side3 < side1) && (side1 > 0 && side2 > 0 && side3 > 0))
{
double p=0.5*(side1+side2+side3);
return Math.Sqrt(p * (p - side1) * (p - side2) * (p - side3));
}
else
{
Console.WriteLine("数据错误!请检查输入的三条边的数据");
return 0;
}
}
static void Main(string[] args)
{
AreaCalculate ac = new AreaCalculate();
double radius=2.0;//半径
double width=2.3;//长
double height=4.5;//宽
double side1=2;//三角形三边长
double side2=2;
double side3=2;
Console.WriteLine("半径为{0}的圆的面积为{1:f4}",radius,AreaCalculate.GetArea(radius));//f4表示保留4位小数
Console.WriteLine("长为{0},宽为{1}的矩形的面积为{2:f4}", width, height, AreaCalculate.GetArea(width, height));
Console.WriteLine("三边长分别为{0},{1},{2}的三角形的面积为{3:f4}", side1, side2, side3, AreaCalculate.GetArea(side1, side2, side3));
}
}
}