Алгоритм класса Calcer.
Чтобы вызвать класс из другого класса необходимо создать объект этого класса. Фрагмент кода, выполняющий это действие, представлен ниже.
Создание объекта класса Calcer и подсчет статистических данных:
private void статистикаToolStripMenuItem_Click(object sender, EventArgs e)
{
double Disperce=0;
double Srx = 0;
string Colname = "Money";
DataTable TableToCalc=new DataTable();
TableToCalc=floversShopDataSet1.Trades;
CalcStatistic.Calcer a = new CalcStatistic.Calcer(ref TableToCalc, ref Disperce, ref Srx, Colname);
MessageBox.Show("Среднее значение суммы покупки = " + Convert.ToString(Srx) + "\n"
+"Дисперсия = " + Convert.ToString(Disperce), "Статистика");
}
Результатом выполнения этого кода будет вывод в MessageBox таких статистических данных как среднее значение суммы покупки и дисперсия. Дисперсия случайной величины — мера разброса данной случайной величины, то есть её отклонения от математического ожидания.
Form1:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace FloversShop
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
// TODO: данная строка кода позволяет загрузить данные в таблицу "floversShopDataSet1.FloverPurchase". При необходимости она может быть перемещена или удалена.
this.floverPurchaseTableAdapter.Fill(this.floversShopDataSet1.FloverPurchase);
// TODO: данная строка кода позволяет загрузить данные в таблицу "floversShopDataSet1.PlantPurchase". При необходимости она может быть перемещена или удалена.
this.plantPurchaseTableAdapter.Fill(this.floversShopDataSet1.PlantPurchase);
// TODO: данная строка кода позволяет загрузить данные в таблицу "floversShopDataSet1.Trades". При необходимости она может быть перемещена или удалена.
this.tradesTableAdapter.Fill(this.floversShopDataSet1.Trades);
}
//Вызов формы
private void растенияToolStripMenuItem_Click(object sender, EventArgs e)
{
Form2 a = new Form2();
a.ShowDialog();
}
//Вызов формы
private void цветыToolStripMenuItem_Click(object sender, EventArgs e)
{
Form3 a = new Form3();
a.ShowDialog();
}
//Вызов формы
private void button5_Click(object sender, EventArgs e)
{
InsertTrade();
Form5 a = new Form5(getTradeId());
a.ShowDialog();
tradesTableAdapter.DeleteQuery(0);
tradesTableAdapter.Fill(floversShopDataSet1.Trades);
floverPurchaseTableAdapter.Fill(floversShopDataSet1.FloverPurchase);
plantPurchaseTableAdapter.Fill(floversShopDataSet1.PlantPurchase);
}
private int getTradeId()//получаем Id последнего trade
{
tradesBindingSource.MoveLast();
DataRowView dataRow=(DataRowView)tradesBindingSource.Current;
int TradeId = Convert.ToInt32(dataRow["TradeId"]);
return TradeId;
}
private void InsertTrade()//добавляем новую запись
{
string DtTm=Convert.ToString(DateTime.Now);
tradesTableAdapter.InsertQuery(DtTm, 0);
tradesTableAdapter.Fill(floversShopDataSet1.Trades);
}
private void статистикаToolStripMenuItem_Click(object sender, EventArgs e)
{
//Объявление переменных
double Disperce=0;
double Srx = 0;
string Colname = "Money";
DataTable TableToCalc=new DataTable();
TableToCalc=floversShopDataSet1.Trades;
//Передача значений классу CalcStatistic
CalcStatistic.Calcer a = new CalcStatistic.Calcer(ref TableToCalc, ref Disperce, ref Srx, Colname);
//Вывод статистики
MessageBox.Show("Среднее значение суммы покупки = " + Convert.ToString(Srx) + "\n"
+"Дисперсия = " + Convert.ToString(Disperce), "Статистика");
}
//Навигация по строкам таблицы
private void button1_Click(object sender, EventArgs e)
{
tradesBindingSource.MoveFirst();
}
private void button2_Click(object sender, EventArgs e)
{
tradesBindingSource.MovePrevious();
}
private void button3_Click(object sender, EventArgs e)
{
tradesBindingSource.MoveNext();
}
private void button4_Click(object sender, EventArgs e)
{
tradesBindingSource.MoveLast();
}
}
}
Form2:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace FloversShop
{
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
private void Form2_Load(object sender, EventArgs e)
{
// TODO: данная строка кода позволяет загрузить данные в таблицу "floversShopDataSet1.Plants". При необходимости она может быть перемещена или удалена.
this.plantsTableAdapter.Fill(this.floversShopDataSet1.Plants);
}
private void button5_Click(object sender, EventArgs e)
{
Form4 a = new Form4(true);
a.ShowDialog();
this.plantsTableAdapter.Fill(this.floversShopDataSet1.Plants);
}
//Навигация по строкам таблицы
private void button1_Click(object sender, EventArgs e)
{
plantsBindingSource.MoveFirst();
}
private void button2_Click(object sender, EventArgs e)
{
plantsBindingSource.MovePrevious();
}
private void button3_Click(object sender, EventArgs e)
{
plantsBindingSource.MoveNext();
}
private void button4_Click(object sender, EventArgs e)
{
plantsBindingSource.MoveLast();
}
private void button6_Click(object sender, EventArgs e)
{
Close();
}
}
}
Form3:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace FloversShop
{
public partial class Form3 : Form
{
public Form3()
{
InitializeComponent();
}
private void Form3_Load(object sender, EventArgs e)
{
// TODO: данная строка кода позволяет загрузить данные в таблицу "floversShopDataSet1.Flovers". При необходимости она может быть перемещена или удалена.
this.floversTableAdapter.Fill(this.floversShopDataSet1.Flovers);
}
private void button5_Click(object sender, EventArgs e)
{
//Открытие формы
Form4 a = new Form4(false);
a.ShowDialog();
this.floversTableAdapter.Fill(this.floversShopDataSet1.Flovers);
}
//Навигация по строкам таблицы
private void button1_Click(object sender, EventArgs e)
{
floversBindingSource.MoveFirst();
}
private void button2_Click(object sender, EventArgs e)
{
floversBindingSource.MovePrevious();
}
private void button3_Click(object sender, EventArgs e)
{
floversBindingSource.MoveNext();
}
private void button4_Click(object sender, EventArgs e)
{
floversBindingSource.MoveLast();
}
private void button6_Click(object sender, EventArgs e)
{
Close();
}
}
}
Form4:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace FloversShop
{
public partial class Form4 : Form
{
bool Mode;
public Form4(bool a)
{
Mode = a;
InitializeComponent();
label1.Text = "Название";
label3.Text = "Стоимость";
if (Mode == true)
{
label2.Text = "Инфо";
}
else
{
label2.Text = "Цвет";
}
}
private void button1_Click(object sender, EventArgs e)
{
add();
Close();
}
private void add()
{
int Cost=Convert.ToInt32(textBox3.Text);
if (Mode == true)
{
plantsTableAdapter.InsertQuery(textBox1.Text, textBox2.Text, Cost);
plantsTableAdapter.Fill(floversShopDataSet1.Plants);
}
else
{
floversTableAdapter.InsertQuery(textBox1.Text, textBox2.Text, Cost);
floversTableAdapter.Fill(floversShopDataSet1.Flovers);
} } }}
Form5:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace FloversShop
{
public partial class Form5 : Form
{
int TradeId;
int AllSumm;
public Form5(int Id)
{
InitializeComponent();
TradeId = Id;
AllSumm = 0;
}
private void Form5_Load(object sender, EventArgs e)
{
// TODO: данная строка кода позволяет загрузить данные в таблицу "floversShopDataSet1.FloverPurchase". При необходимости она может быть перемещена или удалена.
this.floverPurchaseTableAdapter.FillBy(this.floversShopDataSet1.FloverPurchase,TradeId);
// TODO: данная строка кода позволяет загрузить данные в таблицу "floversShopDataSet1.PlantPurchase". При необходимости она может быть перемещена или удалена.
this.plantPurchaseTableAdapter.FillBy(this.floversShopDataSet1.PlantPurchase,TradeId);
// TODO: данная строка кода позволяет загрузить данные в таблицу "floversShopDataSet1.Plants". При необходимости она может быть перемещена или удалена.
this.plantsTableAdapter.Fill(this.floversShopDataSet1.Plants);
// TODO: данная строка кода позволяет загрузить данные в таблицу "floversShopDataSet1.Flovers". При необходимости она может быть перемещена или удалена.
this.floversTableAdapter.Fill(this.floversShopDataSet1.Flovers);
}
private void button1_Click(object sender, EventArgs e)
{
addPP();
}
private void addPP()
{
DataRowView dataRow = (DataRowView)plantsBindingSource.Current;
int PlId = Convert.ToInt32(dataRow["PlantId"]);
string Name = Convert.ToString(dataRow["Name"]);
int Count = Convert.ToInt32(textBox1.Text);
int Cost=Convert.ToInt32(dataRow["Cost"]);
plantPurchaseTableAdapter.InsertQuery(PlId, Count, TradeId, Name);
plantPurchaseTableAdapter.FillBy(floversShopDataSet1.PlantPurchase, TradeId);
updateSumm(Cost, Count);
}
private void updateSumm(int Cost, int Count)
{
AllSumm = AllSumm + Cost * Count;
tradesTableAdapter.UpdateQuery(AllSumm, TradeId);
tradesTableAdapter.Fill(floversShopDataSet1.Trades);
label5.Text = "Общая сумма покупки = " + Convert.ToString(AllSumm) + "р";
}
private void button3_Click(object sender, EventArgs e)
{
addFP();
}
private void addFP()
{
DataRowView dataRow = (DataRowView)floversBindingSource.Current;
int FlId = Convert.ToInt32(dataRow["FloverId"]);
string Name = Convert.ToString(dataRow["Name"]);
int Count = Convert.ToInt32(textBox2.Text);
int Cost = Convert.ToInt32(dataRow["Cost"]);
floverPurchaseTableAdapter.InsertQuery(FlId, Count, TradeId, Name);
floverPurchaseTableAdapter.FillBy(floversShopDataSet1.FloverPurchase, TradeId);
updateSumm(Cost, Count);
}
private void button2_Click(object sender, EventArgs e)
{
checkSumm();
Close();
}
private int checkSumm()
{
if (AllSumm > 1000)
{
AllSumm = AllSumm - AllSumm / 10;
}
tradesTableAdapter.UpdateQuery(AllSumm, TradeId);
tradesTableAdapter.Fill(floversShopDataSet1.Trades);
return AllSumm;
} }}