天天看點

判斷輸入的三個資料是否可以構成一個三角形

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個資料,用空格符分隔,按Enter鍵出現結果.");

   System.Console.WriteLine("      2.輸入Help,列印本軟體說明.");

   System.Console.WriteLine("      3.輸入Exit,按Enter鍵,退出程式.");

   System.Console.WriteLine("");

  }

  /// <summary>

  /// 擷取可以組成三角形的三個正确的資料

  /// </summary>

  /// <returns></returns>

  public static void ReceiveSide()

  {

   System.Console.WriteLine("請在下面輸入3個資料,用一個空格格開,并按下Enter鍵,就可以産生結果.");

   //讀取使用者輸入的資料

   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();

  }

 }

}