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