#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();
Это должно предоставить вам данные для отображения. Надеюсь, это поможет.