1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
| using System;
namespace Triangle_IO {
public interface ITriangle { float area(float baseSide, float height); float area(float a, float b, float c); float area(float a, float b, double angleC); float area(float r, double angleA, double angleB, double angleC); }
public class Triangle : ITriangle {
public float area(float baseSide, float height) { return baseSide * height / 2; }
public float area(float a, float b, float c) { float p = (a + b + c) / 2; return (float)Math.Sqrt(p * (p - a) * (p - b) * (p - c)); }
public float area(float a, float b, double angleC) { return a * b * (float)Math.Sin(angleC) / 2; }
public float area(float r, double angleA, double angleB, double angleC) { return (float)(2 * Math.Pow(r, 2) * Math.Sin(angleA) * Math.Sin(angleB) * Math.Sin(angleC)); } class Test { static void Main() { Console.WriteLine("请输入三角形的第一条边:"); float a = float.Parse(Console.ReadLine()); Console.WriteLine("请输入三角形的第二条边:"); float b = float.Parse(Console.ReadLine()); Console.WriteLine("请输入三角形的第三条边:"); float c = float.Parse(Console.ReadLine()); double angleA = Math.Acos((Math.Pow(b, 2) + Math.Pow(c, 2) - Math.Pow(a, 2)) / (2 * b * c)); double angleB = Math.Acos((Math.Pow(a, 2) + Math.Pow(c, 2) - Math.Pow(b, 2)) / (2 * a * c)); double angleC = Math.PI - angleA - angleB; float height = a * (float)Math.Sin(angleC); float baseSide = b; float r = a / (2 * (float)Math.Sin(angleA));
Triangle triangle = new Triangle();
Console.WriteLine("三角形面积为:{0:f3}", triangle.area(baseSide, height)); Console.WriteLine("三角形面积为:{0:f3}", triangle.area(a, b, angleC)); Console.WriteLine("三角形面积为:{0:f3}", triangle.area(a, b, c)); Console.WriteLine("三角形面积为:{0:f3}", triangle.area(r, angleA, angleB, angleC)); } } } }
|