using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Collections;
namespace Законы_распределения
{
public partial class frmChoice : Form
{
//контроллы для распределений
usrcAll
cnlAll;
usrc05
cnl05;
usrcNorm
cnlNrm;
//главный переключатель
private Распределения.SwitchOn sOn;
private Законы_распределения.Общие.Global Gl;
//
private int idChoice = 10;
private string txtInfo = "";
private string infoFile = "";
//
public frmChoice(Законы_распределения.Распределения.SwitchOn sOn,
Законы_распределения.Общие.Global Gl)
{
InitializeComponent();
//принимаем
параметры
this.Gl = Gl;
this.sOn = sOn;
//создаем
контролл
cnlAll
= new usrcAll();
//добавляем в
групбокс
this.gprAllParams.Controls.Add(cnlAll);
}
private void btStart_Click(object sender,
EventArgs e)
{
Go();
}
private bool test()
{
//функция для
проверки ошибок при заполнении
if (sOn._rdChoice == 0)
{
this.rtxtInfo.Text = "Не указано
распределение.";
return false;
}
try
{
sOn._enVal._N = Convert.ToInt32(cnlAll.txtN.Text);
sOn._enVal._Ntb = Convert.ToInt32(cnlAll.txtNtb.Text);
sOn._enVal._MatO_T = Convert.ToSingle(this.txtMatO_En.Text);
sOn._enVal._Sko_T = Convert.ToSingle(this.txtSko_En.Text);
sOn._enVal._NeedExper = Convert.ToInt32(cnlAll.txtNExpere.Text);
sOn._enVal._Otkl = Convert.ToSingle(cnlAll.txtOtkl.Text);
}
catch(System.Exception errMain)
{
this.rtxtInfo.Text = "Ошибка: " + errMain.Message.ToString() +
"\nПодсказка.
Введены неверно значения: Количество СВ, количесвто интервалов,
математическое ожидание, стандартное квадратическое отклонение.";
return false;
}
//переключатель
для определения характера ошибок
switch (sOn._rdChoice)
{
case 10://Равномерный
{
try
{
sOn._enVal._IntL = Convert.ToSingle(cnl05.txtIntL.Text);
sOn._enVal._IntR = Convert.ToSingle(cnl05.txtIntR.Text);
}
catch(FormatException)
{
this.rtxtInfo.Text="Проверьте
вводимые параметры: Количесвто СВ";
return false;
}
break;
}
case 11://Нормальный
{
try
{
sOn._enVal._MatO_T = Convert.ToSingle(cnlNrm.txtMatO.Text);
sOn._enVal._Sko_T = Convert.ToSingle(cnlNrm.txtSko.Text);
}
catch (FormatException)
{
this.rtxtInfo.Text = "Проверьте
вводимые параметры: Мат. О, СКО.";
return false;
}
break;
}
}
return true;
}
private void btClose_Click(object sender,
EventArgs e)
{
this.Close();
}
private void rb05_CheckedChanged(object sender, EventArgs e)
{
//Равномерное
normText();
cnlAll.txtNtb.Enabled = false;
this.txtMatO_En.Enabled = false;
this.txtSko_En.Enabled = false;
idChoice
= this.ActiveControl.TabIndex;
cnl05
= new usrc05(sOn._enVal);
grpParams.Controls.Clear();
grpParams.Controls.Add(cnl05);
sOn._rdChoice
= idChoice;
//
txtInfo
= "Равномерное";
this.rtxtInfo.Text = txtInfo;
//открываем
описание распределения
infoFile
= Application.StartupPath + @"\info\html\random.html";
webBrowser1.Navigate(infoFile);
//количество
имеющихся записей в базе
Gl._frmA.tsLblTotal.Text = txtRowsInDb();
}
private void rbNorm_CheckedChanged(object sender, EventArgs e)
{
//Нормальное
normText();
this.txtMatO_En.Enabled = false;
this.txtSko_En.Enabled = false;
idChoice
= this.ActiveControl.TabIndex;
cnlNrm
= new usrcNorm(sOn._enVal);
grpParams.Controls.Clear();
grpParams.Controls.Add(cnlNrm);
sOn._rdChoice
= idChoice;
//
txtInfo
= "Нормальное";
this.rtxtInfo.Text = txtInfo;
infoFile
= Application.StartupPath + @"\info\html\norm.html";
webBrowser1.Navigate(infoFile);
//
Gl._frmA.tsLblTotal.Text = txtRowsInDb();
}
private void normText()
{
cnlAll.txtNtb.Enabled = true;
this.txtMatO_En.Enabled = true;
this.txtSko_En.Enabled = true;
}
private void Go()
{
//метод для
запуска расчетов
if (!test())
{
return;
}
sOn._rdGen
= rdStart.Checked;
sOn._cnlAll
= cnlAll;
//передаем
параметры дальше
Gl._frmRes
= new frmResult(sOn, cnlAll,
cnl05, cnlNrm, Gl);
//родитель
Gl._frmRes.MdiParent = this.MdiParent;
Gl._frmRes.Show();
this.Close();
}
private void rdStart_CheckedChanged(object sender, EventArgs e)
{
this.cnlAll.chkAddDb.Enabled = true;
this.cnlAll.txtNExpere.Enabled = true;
this.cnlAll.chkVar.Enabled = true;
}
private void rdSelect_CheckedChanged(object sender, EventArgs e)
{
this.cnlAll.chkAddDb.Enabled = false;
this.cnlAll.txtNExpere.Enabled = false;
this.cnlAll.chkVar.Enabled = false;
}
private void groupBox1_Enter(object sender,
EventArgs e)
{
this.grpStep3.Enabled = true;
this.grpStep4.Enabled = true;
this.grpStep6.Enabled = true;
this.btStart.Enabled = true;
}
private void grpChoice_Enter(object sender,
EventArgs e)
{
this.grpStep2.Enabled = true;
}
private string txtRowsInDb()
{
string strTxt = "В базе " + sOn.CountAllRowsTableDb().ToString() + " записи(ей)";
return strTxt;
}
}
}