2012-10-24 39 views
1

我需要幫助爲我的課程製作分數計算器。分數的輸入不能預先設定,必須將所有以前的輸入相加,同時增加計數。需要幫助使列表接受多個用戶輸入而不刪除前面的輸入

例如說,我輸入23到文本框中,然後按Enter鍵,然後在45中輸入我需要我的程序來保留23並將其添加到45,只要用戶輸入數字,它就需要重複此操作。

我知道它需要一個集合,我有它的基礎,我只需要將保存來自以前的輸入的代碼,並將其添加到新的,並保存該總計將其添加到下一個輸入。

這是我解決這個問題的嘗試:

List<decimal> score = new List<decimal>(); 
     score.Add(scoreInput); 
     decimal scoreTotal = 0; 
     decimal scoreHolder = 0; 
     foreach (decimal d in score) 
     { 

      scoreTotal = scoreHolder + scoreInput; 
      scoreHolder = scoreInput; 
      scoreInput = 0; 
      txtTotal.Text = scoreTotal.ToString(""); 
      txtCount.Text = score.Count.ToString(""); 
      txtScore.Clear(); 
      txtScore.Focus(); 
     } 
+0

你可以聲明一個變量'sum'? –

+2

你到目前爲止有什麼?你可以發佈一些代碼嗎? –

+3

您需要提供更多詳細信息,例如這是Web窗體,Windows窗體,控制檯還是其他類型的應用程序。此外,你應該顯示一些你已經嘗試過的代碼。人們很樂意提供建議,但不想讓他們覺得他們正在爲你做功課。 – JamieSee

回答

0

只需添加一個事件處理KeyDown事件,並使用如下代碼:

private void tbEntry_KeyDown(object sender, KeyEventArgs e) 
{ 
    Decimal entry; 

    if (e.KeyCode == Keys.Enter) 
    { 
     if (Decimal.TryParse(tbEntry.Text, out entry)) 
     { 
      score.Add(entry); 
     } 

     tbResult.Text = score.Sum(s => s).ToString(); 
     tbEntry.Text = string.Empty; 
    } 
} 

這是一種方式做你想做的事。

編輯:

這是假設你有你的變量「分數」聲明爲表中的一員:

private List<decimal> score = new List<decimal>(); 

乾杯