我一直在研究Deitel的Visual C#2010。我被困在有關數組章節的練習中。現在已經困擾了我好幾天了,我現在已經寫了好幾遍了,每次都出錯了。我無法解決這個簡單的練習Deitel Visual C#2010
該練習要求爲小型航空公司開發新的預訂系統。一架飛機的容量是10個座位。所以你要求客戶輸入1爲頭等艙,2爲經濟。 1至5個座位爲頭等艙。從6到10的座位是爲了節約。
我必須使用bool類型的一維數組來表示飛機的座位字符。將數組的所有元素初始化爲false以表示空位(幸運的是布爾初始化爲false,因爲我不知道如何初始化數組)。在分配每個座位時,將平面中的相應元素設置爲true。
應用程序不應該分配已經坐下的座位。當經濟艙充滿時,應用程序應詢問客戶是否想要乘坐頭等艙(反之亦然)。如果客戶回答是,請將其分配到經濟艙(如果有空座位)。如果經濟艙裏沒有空座位,或者顧客拒絕乘坐頭等艙,那麼就向他展示「下一班航班是三小時後!」。
我正在自學這本書。不是作業或作業,我真的不希望發佈我寫的代碼,因爲我想要一個全新的方法來解決問題,但我很確定我會被問到代碼,所以這裏是
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Craps_Game
{
class AirlineReservation
{
private static bool[] seats = new bool[10];
private static void FirstClass(ref bool[] seats)
{
for(int i = 0; i < 5; i++)
{
if (seats[i] == false)
{
seats[i] = true;
Console.WriteLine("Your seat number is " + i);
break;
}
else
{
Console.WriteLine("First Class is full. Would you like to fly Economy?");
if (Console.ReadLine().ToLower() == "y")
Economy(ref seats);
else
Console.WriteLine("The next flight is in three hours!. Good bye");
}
}
}
private static void Economy(ref bool[] seats)
{
for (int i = 5; i < 10; i++)
if (seats[i] == false)
seats[i] = true;
else
{
Console.WriteLine("Economy class is full. Would you like to fly First Class");
if (Console.ReadLine().ToLower() == "y")
FirstClass(ref seats);
else
Console.WriteLine("The next flight is in three hours!. Good Bye");
}
}
public static void Reservation()
{
do
{
Console.WriteLine("Enter 1 to fly First Class");
Console.WriteLine("Enter 2 to fly Economy Class");
if (Convert.ToInt32(Console.ReadLine()) == 1)
FirstClass(ref seats);
else
Economy(ref seats);
} while (true);
}
}
}
記住,我寧願解決問題,而不是固定這一個完全不同的方式:)
有問題與此代碼,衆說紛紜。建議:瞭解如何使用調試器。學習如何逐行掃描代碼,並檢查變量和數組的內容。我用你的代碼做了這件事,並且第一次通過時將第一個座位設置爲「座位[0]」的循環看到它已打開並分配給它。第二次,它檢查'座位[0]',看到它已被佔用,然後執行條件的其他部分,即使有四個座位是空閒的。當你一行一行地說,它沒有做你想做的事,這是非常明顯的。 – Steve
請參閱此MSDN頁面進行簡介:http://msdn.microsoft.com/en-us/library/ms173083(v=vs.90).aspx – Steve
@Steve我知道這一點。我確實通過斷點來完成它,我確實知道這是問題所在。但我仍然無法解決這個問題,這只是最新的嘗試。 – Mustafa