计算总销售额和平均销售额
Calculate total and average sales
赋值如下:
Total Sales
Use the attached file named Sales.txt. Create an application that
- reads the file’s content into an array of double or decimal
- displays the array’s content in a ListBox control,
- calculates the total of the array’s values, average sales, largest sales, smallest sales
- Display the Total Sales, Average sales, Highest Sales and Smallest Sales
- Form should look similar to the following:
如何通过输入相应的代码获取数据以显示图像的 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 :)
using System.Linq;
这里有两种解决方法。第一个使用 array
,第二个使用 List
。在这两个示例中,我假设总销售额、平均销售额、最小销售额和最大销售额的文本框称为 TotalSales
、AverageSales
、MinSales
和 MaxSales
.
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);
}
}
使用 List
和 Linq
:
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 就写了这段代码,所以它可能包含一些拼写错误。
赋值如下:
Total Sales
Use the attached file named Sales.txt. Create an application that
- reads the file’s content into an array of double or decimal
- displays the array’s content in a ListBox control,
- calculates the total of the array’s values, average sales, largest sales, smallest sales
- Display the Total Sales, Average sales, Highest Sales and Smallest Sales
- Form should look similar to the following:
如何通过输入相应的代码获取数据以显示图像的 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 :)
using System.Linq;
这里有两种解决方法。第一个使用 array
,第二个使用 List
。在这两个示例中,我假设总销售额、平均销售额、最小销售额和最大销售额的文本框称为 TotalSales
、AverageSales
、MinSales
和 MaxSales
.
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);
}
}
使用 List
和 Linq
:
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 就写了这段代码,所以它可能包含一些拼写错误。