Добавление и отображение переменных в списке - PullRequest
0 голосов
/ 28 февраля 2019

Это калькулятор баллов, когда вы вводите балл от 1 до 100, он сохраняет его, показывает количество введенных баллов и среднее значение.Мы должны добавить данные с помощью List и отобразить с помощью foreach в окне сообщения.Я пробовал несколько разных способов добавить и отобразить данные.Когда я делаю очки. Добавляю (что угодно) и пытаюсь вызвать его в действии щелчка для «Показать», оно просто показывает системное сообщение, сколько раз вы в него входили. Кажется, я не могу заставить его работать.

int Count = 0;
decimal Total = 0m;
List<int> scores = new List<int>();

private void btnAdd_Click(object sender, EventArgs e)
{
    int Score = Convert.ToInt32(txtScore.Text);
    scores.Add(1);

    Total += Score;
    Count++;

    decimal Average = Total / Count;

    txtTotal.Text = Total.ToString();
    txtCount.Text = Count.ToString();
    txtAverage.Text = Average.ToString();
    txtScore.Focus();
}

private void btnClear_Click(object sender, EventArgs e)
{
    int Count = 0;
    decimal Total = 0m;
    decimal Average = 0m;
    int Score = 0;

    scores.Clear();
    txtScore.Text = Score.ToString();
    txtAverage.Text = Average.ToString();
    txtTotal.Text = Total.ToString();
    txtCount.Text = Count.ToString();
}

private void btnDisplay_Click(object sender, EventArgs e)
{
    foreach (int scoring in scores)                       
}

Я пытался просмотреть примеры в моей книге и здесь, но они все для строки.Это примерно как мой код, насколько я могу получить.Я так застрял!

1 Ответ

0 голосов
/ 28 февраля 2019

Переменные 'Total' и 'Count' в основном бесполезны.Попробуйте это:

private void btnAdd_Click(object sender, EventArgs e){
    scores.Add(Convert.ToInt32(txtScore.Text));
    txtTotal.Text = scores.Sum()+"";
    txtCount.Text = scores.Count()+"";
    txtAverage.Text = scores.Average()+"";
    txtScore.Focus();
}

А затем в кнопке очистки:

private void btnClear_Click(object sender, EventArgs e){
    scores.Clear();
    txtScore.Text = 0+"";
    txtAverage.Text = 0+"";
    txtTotal.Text = 0+"";
    txtCount.Text = 0+"";
}

В кнопке дисплея:

private void btnDisplay_Click(object sender, EventArgs e){
    string message = "";
    int index = 0;
    foreach (var score in scores)  {
         message += $"[{index++}]: {score}\n";
    }
    MessageBox.Show(message);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...