簡體   English   中英

計算總銷售額和平均銷售額

[英]Calculate total and average sales

分配如下:

總銷售額

使用名為Sales.txt的附件。 創建一個應用程序

  • 將文件內容讀入雙精度或十進制數組
  • 在ListBox控件中顯示數組的內容,
  • 計算數組值的總和,平均銷售額,最大銷售額,最小銷售額
  • 顯示總銷售額,平均銷售額,最高銷售額和最低銷售額
  • 表單應類似於以下內容:

圖片

如何通過鍵入相應的代碼獲取數據以正確顯示圖像的“ Total / Average / High / Low銷售額”部分?

我想獨自執行此操作,因此,如果您可以提供一個可能與我正在做的事情有關的示例,那將會很有幫助。

到目前為止,我已經可以輸入以下內容:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;

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 && 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();
        }
    }
}

從文件中讀取值后,只需使用Linq方法並設置TextBox控件的Text屬性即可。

var total = sales.Sum();
var avg = sales.Average();
var min = sales.Min();
var max = sales.Max();

totalTextBox.Text = total.ToString(); //example for TextBox named totalTextBox

記得用添加:)

using System.Linq;

這是兩個解決方案。 第一個使用array ,第二個使用List 在兩個示例中,我都假定總銷售額,平均銷售額,最低銷售額和最高銷售額的文本框分別稱為TotalSalesAverageSalesMinSalesMaxSales

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

    int count = 0;
    decimal totalSales, averageSales, minSales, maxSales;

    StreamReader inputFile;
    inputFile = File.OpenText("../../Sales.txt");

    try
    {
        while (!inputFile.EndOfStream && count < sales.Length)
        {
            sales[count] = decimal.Parse(inputFile.ReadLine());
            minSales = count == 0 ? sales[count] : Math.Min(minSales, sales[count]);
            maxSales = count == 0 ? sales[count] : Math.Max(maxSales, sales[count]);
            totalSales += sales[count];
            ListBox.Items.Add(sales[count]);
            count++;
        }

        inputFile.Close();
        averageSales = totalSales / sales.Length;  

        TotalSales.Text = totalSales;
        AverageSales.Text = averageSale;
        MinSales.Text = minSales;
        MaxSales.Text = maxSales;
    }              
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message);
    }
}

使用ListLinq

private void displayButton_Click(object sender, EventArgs e)
{
    List<decimal> sales = new List<decimal>(); // notice: no size limitation

    StreamReader inputFile;
    inputFile = File.OpenText("../../Sales.txt");

    try
    {
        while (!inputFile.EndOfStream)
        {
            var sale = decimal.Parse(inputFile.ReadLine()); 
            sales.Add(sale);
            ListBox.Items.Add(sale);
        }

        inputFile.Close();

        TotalSales.Text = sales.Sum();
        AverageSales.Text = sales.Average();
        MinSales.Text = sales.Min();
        MaxSales.Text = sales.Max();
    }              
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message);
    }
}

如您所見,此代碼更加簡潔。

順便說一句,我在沒有Visual Studio的情況下編寫了此代碼,因此其中可能包含一些錯字。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM