C# 图形面积计算
2016-06-23 17:31
357 查看
class Program
{
static void Main(string[] args)
{
Tuxing i;
double a, b, c;
while(true)
{
Console.WriteLine("********************************请选择*****************************************");
Console.WriteLine(" 1.计算三角形面积");
Console.WriteLine(" 2.计算圆的面积");
Console.WriteLine(" 3.计算矩形形面积");
Console.WriteLine(" Q 退出");
Console.WriteLine("*******************************************************************************");
char ch = Convert.ToChar(Console.ReadLine());
switch(ch)
{
case '1': Sjx x = new Sjx(); i = x; Console.WriteLine("请输入第一条边:"); a = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("请输入第二条边:"); b = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("请输入第三条边:"); c = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("三角形的面积为:"); x.input(a, b, c); Console.WriteLine(i.getarea()); break;
case '2': Yuan t = new Yuan(); i = t; Console.WriteLine("请输入圆的半径:"); a = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("圆的面积为:"); t.input(a); Console.WriteLine( t.getarea()); break;
case '3': Jxing y = new Jxing(); i = y; Console.WriteLine("请输入长:"); a = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("请输入宽:"); b = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("矩形的面积为:"); y.input(a, b); Console.WriteLine(
y.getarea()); break;
case 'Q': Jxing n = new Jxing(); n.guanbi(); break;
}
}
}
}
abstract class Tuxing
{
protected double a;
protected double b;
protected double c;
public virtual double getarea()
{ return 0; }
}
class Sjx : Tuxing
{
public void input(double a, double b, double c)
{
this.a = a;
this.b = b;
this.c = c;
}
public override double getarea()
{
if (a + b > c && a + c > b && a - b < c && a - c < b)
{
double q = (a + b + c) / 2;
return (double)Math.Sqrt(q * (q - a) * (q - b) * (q - c));
}
else
return 0;
}
}
class Yuan : Tuxing
{
public void input(double a)
{
this.a = a;
}
public override double getarea()
{
return (double)Math.PI * a * a;
}
}
class Jxing : Tuxing
{
public void input(double a, double b)
{
this.a = a;
this.b = b;
}
public override double getarea()
{
return a * b;
}
public void guanbi()
{
Environment.Exit(0);
}
}
{
static void Main(string[] args)
{
Tuxing i;
double a, b, c;
while(true)
{
Console.WriteLine("********************************请选择*****************************************");
Console.WriteLine(" 1.计算三角形面积");
Console.WriteLine(" 2.计算圆的面积");
Console.WriteLine(" 3.计算矩形形面积");
Console.WriteLine(" Q 退出");
Console.WriteLine("*******************************************************************************");
char ch = Convert.ToChar(Console.ReadLine());
switch(ch)
{
case '1': Sjx x = new Sjx(); i = x; Console.WriteLine("请输入第一条边:"); a = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("请输入第二条边:"); b = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("请输入第三条边:"); c = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("三角形的面积为:"); x.input(a, b, c); Console.WriteLine(i.getarea()); break;
case '2': Yuan t = new Yuan(); i = t; Console.WriteLine("请输入圆的半径:"); a = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("圆的面积为:"); t.input(a); Console.WriteLine( t.getarea()); break;
case '3': Jxing y = new Jxing(); i = y; Console.WriteLine("请输入长:"); a = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("请输入宽:"); b = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("矩形的面积为:"); y.input(a, b); Console.WriteLine(
y.getarea()); break;
case 'Q': Jxing n = new Jxing(); n.guanbi(); break;
}
}
}
}
abstract class Tuxing
{
protected double a;
protected double b;
protected double c;
public virtual double getarea()
{ return 0; }
}
class Sjx : Tuxing
{
public void input(double a, double b, double c)
{
this.a = a;
this.b = b;
this.c = c;
}
public override double getarea()
{
if (a + b > c && a + c > b && a - b < c && a - c < b)
{
double q = (a + b + c) / 2;
return (double)Math.Sqrt(q * (q - a) * (q - b) * (q - c));
}
else
return 0;
}
}
class Yuan : Tuxing
{
public void input(double a)
{
this.a = a;
}
public override double getarea()
{
return (double)Math.PI * a * a;
}
}
class Jxing : Tuxing
{
public void input(double a, double b)
{
this.a = a;
this.b = b;
}
public override double getarea()
{
return a * b;
}
public void guanbi()
{
Environment.Exit(0);
}
}
相关文章推荐
- c#调用COM组件
- C#实现把指定数据写入串口
- C#动态创建button的方法
- C#中抽象方法与虚拟方法的区别
- c#中虚函数的相关使用方法
- C#实现给图片加水印的方法
- C#使用加边法计算行列式的值
- C#实现多线程的同步方法实例分析
- C#中尾递归的使用、优化及编译器优化
- C#中的delegate委托类型基本学习教程
- C#实现子窗体与父窗体通信方法实例总结
- C#通用邮件发送类分享
- 举例讲解C#中自动实现的属性
- C#中this的用法集锦
- C#数据结构之顺序表(SeqList)实例详解
- C#.NET获取拨号连接的宽带连接方法
- C#异步绑定数据实现方法
- C#实现AddRange为数组添加多个元素的方法
- C#中Equality和Identity浅析
- C#比较二个数组并找出相同或不同元素的方法