天天看点

判断输入的三个数据是否可以构成一个三角形

using System;

using System.IO;

namespace triangle

{

 /// <summary>

 /// 判断输入的三个数据是否可以构成一个三角形

 /// </summary>

 class triangle

 {

  [STAThread]

  static void Main(string[] args)

  {

   PrintHelp();

   ReceiveSide();

  }

  /// <summary>

  /// 打印软件说明

  /// </summary>

  public static void PrintHelp()

  {

   System.Console.WriteLine("欢迎使用本软件,本软件用于确认输入的三边数据,是否可以组成一个正确的三角形.");

   System.Console.WriteLine("作者: Eli");

   System.Console.WriteLine("说明: 1.输入3个数据,用空格符分隔,按回车键出现结果.");

   System.Console.WriteLine("      2.输入Help,打印本软件说明.");

   System.Console.WriteLine("      3.输入Exit,按回车键,退出程序.");

   System.Console.WriteLine("");

  }

  /// <summary>

  /// 获取可以组成三角形的三个正确的数据

  /// </summary>

  /// <returns></returns>

  public static void ReceiveSide()

  {

   System.Console.WriteLine("请在下面输入3个数据,用一个空格格开,并按下回车键,就可以产生结果.");

   //读取用户输入的数据

   string strTemp = System.Console.ReadLine().Trim();

   //检测输入,如果是Exit命令,则退出程序.

   if (strTemp.ToUpper().Trim() == "EXIT")

    return;

   //检测输入,如果是Help命令,则打印帮助.

   if (strTemp.ToUpper().Trim() == "HELP")

   {

    PrintHelp();

    ReceiveSide();

    return;

   }

   //定义一个对象数组保存用户输入的参数

   object[] obj = strTemp.Split(" ".ToCharArray());

   //检查是否正好输入3个参数

   if (obj.Length != 3)

   {

    System.Console.WriteLine("少于或者超过3个数据,请重新输入!");

    ReceiveSide();

    return;

   }

   //定义一个int数组保存用户输入的参数

   int[] sides = new int[3];

   try

   {

    sides[0] = int.Parse(obj[0].ToString().Trim());

    sides[1] = int.Parse(obj[1].ToString().Trim());

    sides[2] = int.Parse(obj[2].ToString().Trim());

   }

   catch

   {

    System.Console.WriteLine("输入的数据不是合法的数据,请重新输入!");

    ReceiveSide();

    return;

   }

   //检查用户输入的数据是否大于0

   for (int i=0; i<3; i++)

   {

    if (sides[i] < 0)

    {

     System.Console.WriteLine("输入的数据必须大于0,请重新输入!");

     ReceiveSide();

     return;

    }

   }

   //检查是否可以组成三角形,并打印出检测结果

   int sidesSum = sides[0] + sides[1] + sides[2];

   for (int i=0; i<3; i++)

   {

    int sidesTemp = sidesSum - sides[i];

    if (sides[i] > sidesTemp)

    {

     System.Console.WriteLine("边长{0}大于其它两个边长的和,不能组成三角形!",sides[i].ToString());

     ReceiveSide();

     return;

    }

   }

   System.Console.WriteLine("边长分别为: {0}, {1}, {2} 的三条边,可以组成一个三角形!",sides[0].ToString(),sides[1].ToString(),sides[2].ToString());

   ReceiveSide();

  }

 }

}