2010年5月14日 星期五

C98010:作業十:銀行櫃台(解題)

首先將參數帶入函數中,可得到到達時間以及兩名服務員的服務時間的ArrayList使用上可照一般陣列使用只需在前加個強制轉換符號 (int)
得到參數後可以開始解題了,
step1:設一個迴圈讓其可以不斷的執行,直到總服務時間超過480分鐘

step2:首先第一塊判斷式是判斷由p1服務員服務的狀態
需要由p1服務員服務的情況有 當兩人工作時間相同時、p2還在工作的時候以及兩人同時都沒有在工作的情況下,需要由p1服務員服務

if (p1work == p2work || p1work < p2work|| cometotal - p1work >= 0)
{
if (cometotal >= p1work)
{
finish = cometotal + (int)person1[p1];
start = cometotal;
wait = 0;
p1++;
p1work = finish;
}
else
{
finish = p1work + (int)person1[p1];
start = p1work;
wait = p1work - cometotal;
p1++;
p1work = finish;
}
Console.WriteLine(cometotal + " " + start + " " + "p1" + " " + finish + " " + wait);
}

step3:判斷由p2服務,其實這邊上面p1條件寫好,這邊只需要寫else就好

else
{
if (cometotal >= p2work)
{
finish = cometotal + (int)person2[p2];
start = cometotal;
wait = 0;
p2++;
p2work = finish;
}
else
{
finish = p2work + (int)person2[p2];
start = p2work;
wait = p2work - cometotal;
p2++;
p2work = finish;
}
Console.WriteLine(cometotal + " " + start + " " + "p2" + " " + finish + " " + wait);
}

step4:最後統計一下題目要求的數據再列印出來即可完成本提

by Alent

題目連結
回C#語言教學目錄
回首頁

沒有留言: