Вычисление средних значений из файла данных о продажах?

#c# #winforms

#c# #winforms

Вопрос:

http://i.stack.imgur.com/COOqs.png

Общий объем продаж

Используйте прикрепленный файл с именем Sales.txt . Создайте приложение, которое

считывает содержимое файла в массив с двойным или десятичным числом, отображает содержимое массива в элементе управления ListBox, вычисляет общее количество значений массива, средние продажи, наибольшие продажи, наименьшие продажи Отображение общих продаж, средних продаж, наибольших продаж и наименьших продаж Форма должна выглядеть следующим образом:

Как мне получить данные для отображения общей / средней / высокой / низкой части изображения для правильного отображения, введя соответствующий код? Я хотел бы сделать это самостоятельно, поэтому, если бы вы могли привести пример, который мог бы относиться к тому, что я делаю, это действительно помогло бы. Вот что я смог ввести до сих пор:

 namespace Total_Sales
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void displayButton_Click(object sender, EventArgs e)
        {
            //declaring array
            const int SIZE = 100;
            decimal[] sales = new decimal[SIZE];

            //varible to hold amount stored in array
            int count = 0;

            decimal additionHolder = 0;

            //declaring streamreader
            StreamReader inputFile;

            //opening the sales file
            inputFile = File.OpenText("../../Sales.txt");

            try
            {
                //pull contents from file into array while there is still items
                //to pull and the array isnt full
                while (!inputFile.EndOfStream amp;amp; count < sales.Length)
                {
                    sales[count] = decimal.Parse(inputFile.ReadLine());
                    count  ;
                }
                //close the file
                inputFile.Close();

                //display contents in listbox
                for (int index = 0; index < count; index  )
                {
                    ListBox.Items.Add(sales[index]);
                }


                //add all the values
                for (int index = 0; index < sales.Length; index  )
                {
                    additionHolder  = sales[index];
                }


            }


            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }

        private void button1_Click(object sender, EventArgs e)
        {
            this.Close();
        }
    }
}
 

Комментарии:

1. Загляните в список <десятичное число> -> вы загружаете все из файла в список. После этого заполните поле списка из списка. Сортировка списка List.Sort(). List.Sum(), List.Sum()/Список. Count()->среднее значение, уже отсортированный список List.First()-> наименьший, List.Last() максимальный элемент. Спрашивайте, если что-то непонятно.

Ответ №1:

Вы можете получить все строки из файла, используя

  var lines = System.IO.File.ReadAllLines("../../Sales.txt");
 

Вы можете использовать Linq Select для проецирования и анализа массива строк в массив десятичных знаков

 decimal[] sales = lines.Select(line =>  decimal.Parse(line)).ToArray();
 

Оттуда вы можете выполнить итерацию массива и добавить их в список.

Чтобы найти общее / среднее / высокое / низкое значение массива десятичных знаков, вы можете снова использовать расширения linq.

 var total = sales.Sum();

var average = sales.Average();

var high = sales.Max();

var low = sales.Min();
 

Это должно предоставить вам данные для отображения. Надеюсь, это поможет.