2015-08-23 12 views
0
private void button1_Click(object sender, EventArgs e) 
{ 
    try 
    { 
     var WriteToFile = new System.IO.StreamWriter("student.txt"); //create textfile in default directory 
     WriteToFile.Write(txtStudNum.Text + ", " + txtStudName.Text + ", " + txtModCode.Text + ", " + txtModMark.Text); 
     WriteToFile.Close(); 
     this.Close(); 
    } 

    catch (System.IO.DirectoryNotFoundException ex) 
    { 
     //add error message 
    } 
} 

private void button3_Click(object sender, EventArgs e) 
{ 
    File.AppendAllText("student.txt", "\r\n" + txtStudNum.Text + ", " + 
    txtStudName.Text + ", " + txtModCode.Text + ", " + txtModMark.Text); 
} 

private void button4_Click(object sender, EventArgs e) 
{ 

} 

Я хочу рассчитать среднее значение для txtModMark из текстового файла, как только все значения были введены. Он будет находиться под кнопкой 4, поэтому, когда я нажму на него, он вычисляет. Мне нужно знать, как пропустить первые несколько столбцов на строку и перейти к последнему столбцу, чтобы выполнить средний расчет.Рассчитать среднее значение из текстового файла C#

+0

Не могли бы вы предоставить образец входного файла? – Mischback

+0

У меня есть работа сейчас, спасибо! –

ответ

0

Что смысла в чтении из файла затем разобрать его, а затем преобразовать в INT, а затем вычислить среднее значение, когда вы можете сделать это непосредственно с помощью s List<int>, как показано ниже:

объявить List<int> в вашем Form

List<int> marks = new List<int>(); 

Храните метки в кнопку мыши события

private void button1_Click(object sender, EventArgs e) 
    { 
     try 
     { 
      var WriteToFile = new System.IO.StreamWriter("student.txt"); //create textfile in default directory 
      WriteToFile.Write(txtStudNum.Text + ", " + txtStudName.Text + ", " + txtModCode.Text + ", " + txtModMark.Text); 
      WriteToFile.Close(); 
      marks.Add(Convert.ToInt32(txtModMark.Text)); //add to list 
     } 

     catch (System.IO.DirectoryNotFoundException ex) 
     { 
      //add error message 
     } 
    } 

В Button4 кЛИК k event рассчитать средние

private void button4_Click(object sender, EventArgs e) 
{ 
    int totalmarks = 0; 
    foreach(int m in marks) 
    totalmarks += m; 

    MessageBox.Show("Average Is: " + totalmarks/marks.Count); 
} 
+0

Спасибо, что ответили. Я редактировал код, но когда я нажимаю кнопку 4, он дает мне ошибку: «Необработанное исключение типа« System.DivideByZeroException »« Как это решить? У меня есть 3 строки в текстовом файле, но в нем говорится, что я не могу разделить на 0? –

+0

@ VegetaZA, это означает, что в списке 'marks' нет элемента, добавленного к нему. Правильно ли вы выполнили ответ и внесите изменения. Если это так, вы не должны получать это исключение. – Rahul

+0

Я нашел ошибку, я не добавил «marks.Add (Convert.ToInt32 (txtModMark.Text)); // добавить в список» к кнопке 3. Спасибо за вашу помощь, очень благодарен! –

Смежные вопросы