Алгоритмизация и информатизация методов семейства ELECTRE для внедрения их в ЭСППР
Анализ подходов к организации управления субъектом экономики. Характеристика системы поддержки принятия решений как специализированной компьютерной информационной системы, предназначенной для поддержки нескольких или всех этапов процесса принятия решений.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 31.08.2016 |
Размер файла | 1,3 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
elements = new OneElement[dataGridView1.Columns.Count - 2];
// dataGridView1.Columns[dataGridView1.Columns.Count - 1].
DataGridViewCheckBoxColumn chk = new DataGridViewCheckBoxColumn();
chk.HeaderText = "Максимизация";
dataGridView1.Columns.Add(chk);
}
private void button2_Click(object sender, EventArgs e)
{
int gridColumnsCount = dataGridView1.Columns.Count;
double indexOfAgree = double.Parse(textBox3.Text);
for (int i = 0; i < dataGridView1.Columns.Count - 3; i++)
{
elements[i] = new OneElement(elements.Length, i);
for (int j = 0; j < dataGridView1.Columns.Count - 3; j++)
{
if (i == j)
{
elements[i].ThisIsMyRelation(j);
}
else
{
for (int k = 0; k < dataGridView1.Rows.Count; k++)
{
double indexOfDisagree = double.Parse(dataGridView1.Rows[k].Cells[gridColumnsCount - 2].Value.ToString());
if (dataGridView1.Rows[k].Cells[gridColumnsCount - 1].Value != null)
{
if ((bool)dataGridView1.Rows[k].Cells[gridColumnsCount - 1].Value == true)
{
if (double.Parse(dataGridView1.Rows[k].Cells[i].Value.ToString()) >= double.Parse(dataGridView1.Rows[k].Cells[j].Value.ToString()))
{
elements[i].AddToIndexOfAgree(j, double.Parse(dataGridView1.Rows[k].Cells[gridColumnsCount - 3].Value.ToString()));
}
else
{
if (double.Parse(dataGridView1.Rows[k].Cells[j].Value.ToString()) - double.Parse(dataGridView1.Rows[k].Cells[i].Value.ToString()) >= indexOfDisagree)
{
elements[i].SetIndexOfDisagree(j, 1);
}
}
}
else
{
if (double.Parse(dataGridView1.Rows[k].Cells[i].Value.ToString()) <= double.Parse(dataGridView1.Rows[k].Cells[j].Value.ToString()))
{
elements[i].AddToIndexOfAgree(j, double.Parse(dataGridView1.Rows[k].Cells[gridColumnsCount - 3].Value.ToString()));
}
else
{
if (double.Parse(dataGridView1.Rows[k].Cells[i].Value.ToString()) - double.Parse(dataGridView1.Rows[k].Cells[j].Value.ToString()) >= indexOfDisagree)
{
elements[i].SetIndexOfDisagree(j, 1);
}
}
}
}
else
{
if (double.Parse(dataGridView1.Rows[k].Cells[i].Value.ToString()) <= double.Parse(dataGridView1.Rows[k].Cells[j].Value.ToString()))
{
elements[i].AddToIndexOfAgree(j, double.Parse(dataGridView1.Rows[k].Cells[gridColumnsCount - 3].Value.ToString()));
}
else
{
if (double.Parse(dataGridView1.Rows[k].Cells[i].Value.ToString()) - double.Parse(dataGridView1.Rows[k].Cells[j].Value.ToString()) >= indexOfDisagree)
{
elements[i].SetIndexOfDisagree(j, 1);
}
}
}
}
}
}
}
ResultForElectreII myForm = new ResultForElectreII();
myForm.indexOfAgree = indexOfAgree;
myForm.secondIndexOfAgree = double.Parse(textBox4.Text);
myForm.elements = elements;
myForm.indexOfDisagree = 0.5d;
myForm.ShowDialog();
}
private void button3_Click(object sender, EventArgs e)
{
beginningForm.Show();
this.Close();
}
private void Form6_FormClosing(object sender, FormClosingEventArgs e)
{
beginningForm.Show();
}
private void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
TextBox tb = (TextBox)e.Control;
tb.KeyPress += new KeyPressEventHandler(tb_KeyPress);
}
void tb_KeyPress(object sender, KeyPressEventArgs e)
{
string vlCell = ((TextBox)sender).Text;
bool temp = (vlCell.IndexOf(".") == -1);
//проверка ввода фио
if (dataGridView1.Rows[dataGridView1.CurrentRow.Index].Cells[0].IsInEditMode == true)
if (Char.IsLetter(e.KeyChar) || Char.IsWhiteSpace(e.KeyChar) || e.KeyChar == '.')
e.Handled = true;
}
}
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace ELECTRE
{
public partial class ELECTRE_III : Form
{
public ELECTRE_III()
{
InitializeComponent();
}
public ChooseMethodClass beginningForm;
OneElement[] elements;
private void button1_Click(object sender, EventArgs e)
{
dataGridView1.RowCount = 1;
dataGridView1.ColumnCount = 1;
dataGridView1.RowCount = Int16.Parse(textBox1.Text);
dataGridView1.ColumnCount = Int16.Parse(textBox2.Text) + 4;
for (int i = 0; i < dataGridView1.Columns.Count - 4; i++)
{
dataGridView1.Columns[i].HeaderText = "X" + (i + 1).ToString();
}
for (int i = 0; i < dataGridView1.Rows.Count; i++)
{
dataGridView1.Rows[i].HeaderCell.Value = "K" + (i + 1).ToString();
}
dataGridView1.Columns[dataGridView1.Columns.Count - 4].HeaderText = "Вес критерия";
dataGridView1.Columns[dataGridView1.Columns.Count - 3].HeaderText = "Вето порог";
dataGridView1.Columns[dataGridView1.Columns.Count - 2].HeaderText = "Граница безразличия";
dataGridView1.Columns[dataGridView1.Columns.Count - 1].HeaderText = "Граница предпочтения";
elements = new OneElement[dataGridView1.Columns.Count - 4];
DataGridViewCheckBoxColumn chk = new DataGridViewCheckBoxColumn();
chk.HeaderText = "Максимизация";
dataGridView1.Columns.Add(chk);
}
private void button2_Click(object sender, EventArgs e)
{
int gridColumnsCount = dataGridView1.Columns.Count;
double indexOfAgree = double.Parse(textBox3.Text);
for (int i = 0; i < dataGridView1.Columns.Count - 5; i++)
{
elements[i] = new OneElement(elements.Length, i,dataGridView1.RowCount);
for (int j = 0; j < dataGridView1.Columns.Count - 5; j++)
{
if (i == j)
{
elements[i].ThisIsMyRelation(j);
}
else
{
for (int k = 0; k < dataGridView1.Rows.Count; k++)
{
double indexOfDisagree = double.Parse(dataGridView1.Rows[k].Cells[gridColumnsCount - 4].Value.ToString());
double indexOfDislike = double.Parse(dataGridView1.Rows[k].Cells[gridColumnsCount - 3].Value.ToString());
double indexOfLike = double.Parse(dataGridView1.Rows[k].Cells[gridColumnsCount - 2].Value.ToString());
elements[i].criterionWeight[k] = double.Parse(dataGridView1.Rows[k].Cells[gridColumnsCount - 5].Value.ToString());
if (dataGridView1.Rows[k].Cells[gridColumnsCount - 1].Value != null)
{
if ((bool)dataGridView1.Rows[k].Cells[gridColumnsCount - 1].Value == true)
{
double difference = double.Parse(dataGridView1.Rows[k].Cells[i].Value.ToString()) - double.Parse(dataGridView1.Rows[k].Cells[j].Value.ToString());
if (difference > 0)
{
if (difference <= indexOfDislike)
{
}
if (difference >= indexOfLike)
{
elements[i].AddToIndexOfAgreeOfEachCriterion(j,k, 1);
}
if (difference < indexOfLike && difference > indexOfDislike)
{
double coef = (difference) / (indexOfLike);
elements[i].AddToIndexOfAgreeOfEachCriterion(j, k, coef);
}
}
else
{
difference = -difference;
if (difference <= indexOfDislike)
{
}
if (difference >= indexOfDisagree)
{
elements[i].AddToIndexOfDisagreeOfEachCriterion(j, k, 1);
}
if (difference < indexOfDisagree && difference > indexOfDislike)
{
double coef = (difference) / (indexOfDisagree);
elements[i].AddToIndexOfDisagreeOfEachCriterion(j, k, coef);
}
}
}
else
{
double difference = double.Parse(dataGridView1.Rows[k].Cells[j].Value.ToString()) - double.Parse(dataGridView1.Rows[k].Cells[i].Value.ToString());
if (difference > 0)
{
if (difference <= indexOfDislike)
{
}
if (difference >= indexOfLike)
{
elements[i].AddToIndexOfAgreeOfEachCriterion(j, k, 1);
}
if (difference < indexOfLike && difference > indexOfDislike)
{
double coef = (difference) / (indexOfLike);
elements[i].AddToIndexOfAgreeOfEachCriterion(j, k, coef);
}
}
else
{
difference = -difference;
if (difference <= indexOfDislike)
{
}
if (difference >= indexOfDisagree)
{
elements[i].AddToIndexOfDisagreeOfEachCriterion(j, k, 1);
}
if (difference < indexOfDisagree && difference > indexOfDislike)
{
double coef = (difference) / (indexOfDisagree);
elements[i].AddToIndexOfDisagreeOfEachCriterion(j, k, coef);
}
}
}
}
else
{
double difference = double.Parse(dataGridView1.Rows[k].Cells[j].Value.ToString()) - double.Parse(dataGridView1.Rows[k].Cells[i].Value.ToString());
if (difference > 0)
{
if (difference <= indexOfDislike)
{
}
if (difference >= indexOfLike)
{
elements[i].AddToIndexOfAgreeOfEachCriterion(j, k, 1);
}
if (difference < indexOfLike && difference > indexOfDislike)
{
double coef = (difference) / (indexOfLike);
elements[i].AddToIndexOfAgreeOfEachCriterion(j, k, coef);
}
}
else
{
difference = -difference;
if (difference <= indexOfDislike)
{
}
if (difference >= indexOfDisagree)
{
elements[i].AddToIndexOfDisagreeOfEachCriterion(j, k, 1);
}
if (difference < indexOfDisagree && difference > indexOfDislike)
{
double coef = (difference) / (indexOfDisagree);
elements[i].AddToIndexOfDisagreeOfEachCriterion(j, k, coef);
}
}
}
}
}
}
}
for (int i = 0; i < elements.Length; i++)
{
elements[i].CountMyTotalIndexOfAgree();
elements[i].CountMyTotalIndexOfDisagree();
elements[i].CountPR();
}
ResultForElectreIII myForm = new ResultForElectreIII();
myForm.indexOfAgree = indexOfAgree;
myForm.elements = elements;
myForm.ShowDialog();
}
private void button3_Click(object sender, EventArgs e)
{
// beginningForm.Show();
this.Close();
}
private void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
TextBox tb = (TextBox)e.Control;
tb.KeyPress += new KeyPressEventHandler(tb_KeyPress);
}
void tb_KeyPress(object sender, KeyPressEventArgs e)
{
string vlCell = ((TextBox)sender).Text;
bool temp = (vlCell.IndexOf(".") == -1);
if (dataGridView1.Rows[dataGridView1.CurrentRow.Index].Cells[0].IsInEditMode == true)
if (Char.IsLetter(e.KeyChar) || Char.IsWhiteSpace(e.KeyChar) || e.KeyChar == '.')
e.Handled = true;
}
}
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace ELECTRE
{
public partial class ELECTRE_IS : Form
{
public ELECTRE_IS()
{
InitializeComponent();
}
public ChooseMethodClass beginningForm;
private void Form5_Load(object sender, EventArgs e)
{
}
OneElement[] elements;
private void button1_Click(object sender, EventArgs e)
{
dataGridView1.RowCount = 1;
dataGridView1.ColumnCount = 1;
dataGridView1.RowCount = Int16.Parse(textBox1.Text);
dataGridView1.ColumnCount = Int16.Parse(textBox2.Text) + 4;
for (int i = 0; i < dataGridView1.Columns.Count - 4; i++)
{
dataGridView1.Columns[i].HeaderText = "X" + (i + 1).ToString();
}
for (int i = 0; i < dataGridView1.Rows.Count; i++)
{
dataGridView1.Rows[i].HeaderCell.Value = "K" + (i + 1).ToString();
}
dataGridView1.Columns[dataGridView1.Columns.Count - 4].HeaderText = "Вес критерия";
dataGridView1.Columns[dataGridView1.Columns.Count - 3].HeaderText = "Вето порог";
dataGridView1.Columns[dataGridView1.Columns.Count - 2].HeaderText = "Граница безразличия";
dataGridView1.Columns[dataGridView1.Columns.Count - 1].HeaderText = "Граница предпочтения";
elements = new OneElement[dataGridView1.Columns.Count - 4];
// dataGridView1.Columns[dataGridView1.Columns.Count - 1].
DataGridViewCheckBoxColumn chk = new DataGridViewCheckBoxColumn();
chk.HeaderText = "Максимизация";
dataGridView1.Columns.Add(chk);
}
private void button2_Click(object sender, EventArgs e)
{
int gridColumnsCount = dataGridView1.Columns.Count;
double indexOfAgree = double.Parse(textBox3.Text);
for (int i = 0; i < dataGridView1.Columns.Count - 5; i++)
{
elements[i] = new OneElement(elements.Length, i);
for (int j = 0; j < dataGridView1.Columns.Count - 5; j++)
{
if (i == j)
{
elements[i].ThisIsMyRelation(j);
}
else
{
for (int k = 0; k < dataGridView1.Rows.Count; k++)
{
double indexOfDisagree = double.Parse(dataGridView1.Rows[k].Cells[gridColumnsCount - 4].Value.ToString());
double indexOfDislike=double.Parse(dataGridView1.Rows[k].Cells[gridColumnsCount - 3].Value.ToString());
double indexOfLike=double.Parse(dataGridView1.Rows[k].Cells[gridColumnsCount - 2].Value.ToString());
if (dataGridView1.Rows[k].Cells[gridColumnsCount - 1].Value != null)
{
if ((bool)dataGridView1.Rows[k].Cells[gridColumnsCount - 1].Value == true)
{
if (double.Parse(dataGridView1.Rows[k].Cells[i].Value.ToString()) >= double.Parse(dataGridView1.Rows[k].Cells[j].Value.ToString()))
{
double difference = double.Parse(dataGridView1.Rows[k].Cells[i].Value.ToString()) - double.Parse(dataGridView1.Rows[k].Cells[j].Value.ToString());
if (difference < indexOfDislike)
{
}
if (difference >= indexOfLike)
{
elements[i].AddToIndexOfAgree(j, double.Parse(dataGridView1.Rows[k].Cells[gridColumnsCount - 5].Value.ToString()));
}
if (difference < indexOfLike && difference >= indexOfDislike)
{
double coef = (difference - indexOfDislike) / (indexOfLike - indexOfDislike);
elements[i].AddToIndexOfAgree(j, coef * double.Parse(dataGridView1.Rows[k].Cells[gridColumnsCount - 5].Value.ToString()));
}
}
}
else
{
if (double.Parse(dataGridView1.Rows[k].Cells[i].Value.ToString()) <= double.Parse(dataGridView1.Rows[k].Cells[j].Value.ToString()))
{
double difference = double.Parse(dataGridView1.Rows[k].Cells[j].Value.ToString()) - double.Parse(dataGridView1.Rows[k].Cells[i].Value.ToString());
if (difference < indexOfDislike)
{
}
if (difference >= indexOfLike)
{
elements[i].AddToIndexOfAgree(j, double.Parse(dataGridView1.Rows[k].Cells[gridColumnsCount - 5].Value.ToString()));
}
if (difference < indexOfLike && difference >= indexOfDislike)
{
double coef = (difference - indexOfDislike) / (indexOfLike - indexOfDislike);
elements[i].AddToIndexOfAgree(j, coef * double.Parse(dataGridView1.Rows[k].Cells[gridColumnsCount - 5].Value.ToString()));
}
}
}
}
else
{
if (double.Parse(dataGridView1.Rows[k].Cells[i].Value.ToString()) <= double.Parse(dataGridView1.Rows[k].Cells[j].Value.ToString()))
{
double difference = double.Parse(dataGridView1.Rows[k].Cells[j].Value.ToString()) - double.Parse(dataGridView1.Rows[k].Cells[i].Value.ToString());
if (difference < indexOfDislike)
{
}
if (difference >= indexOfLike)
{
elements[i].AddToIndexOfAgree(j, double.Parse(dataGridView1.Rows[k].Cells[gridColumnsCount - 5].Value.ToString()));
}
if (difference < indexOfLike && difference >= indexOfDislike)
{
double coef = (difference - indexOfDislike) / (indexOfLike - indexOfDislike);
elements[i].AddToIndexOfAgree(j, coef * double.Parse(dataGridView1.Rows[k].Cells[gridColumnsCount - 5].Value.ToString()));
}
}
}
}
}
}
}
for (int i = 0; i < dataGridView1.Columns.Count - 5; i++)
{
for (int j = 0; j < dataGridView1.Columns.Count - 5; j++)
{
if (i == j)
{
elements[i].ThisIsMyRelation(j);
}
else
{
if (!elements[i].relations[j].thisIsMyRelation)
{
for (int k = 0; k < dataGridView1.Rows.Count; k++)
{
double indexOfDisagree = double.Parse(dataGridView1.Rows[k].Cells[gridColumnsCount - 4].Value.ToString());
double indexOfDislike = double.Parse(dataGridView1.Rows[k].Cells[gridColumnsCount - 3].Value.ToString());
double indexOfLike = double.Parse(dataGridView1.Rows[k].Cells[gridColumnsCount - 2].Value.ToString());
double coef = (1d - elements[i].relations[j].indexOfAgree) / (1 - indexOfAgree);
coef = indexOfDisagree - indexOfDislike * coef;
if (dataGridView1.Rows[k].Cells[gridColumnsCount - 1].Value != null)
{
if ((bool)dataGridView1.Rows[k].Cells[gridColumnsCount - 1].Value == true)
{
double difference = double.Parse(dataGridView1.Rows[k].Cells[j].Value.ToString()) - double.Parse(dataGridView1.Rows[k].Cells[i].Value.ToString());
if (difference >= coef)
{
elements[i].SetIndexOfDisagree(j, 1);
}
}
else
{
double difference = double.Parse(dataGridView1.Rows[k].Cells[i].Value.ToString()) - double.Parse(dataGridView1.Rows[k].Cells[j].Value.ToString());
if (difference >= coef)
{
elements[i].SetIndexOfDisagree(j, 1);
}
}
}
else
{
double difference = double.Parse(dataGridView1.Rows[k].Cells[i].Value.ToString()) - double.Parse(dataGridView1.Rows[k].Cells[j].Value.ToString());
if (difference >= coef)
{
}
}
}
}
}
}
}
ResultForElectre_I_IS myForm = new ResultForElectre_I_IS();
myForm.indexOfAgree = indexOfAgree;
myForm.elements = elements;
myForm.indexOfDisagree = 0.5d;
myForm.ShowDialog();
}
private void button3_Click(object sender, EventArgs e)
{
beginningForm.Show();
this.Close();
}
private void Form5_FormClosing(object sender, FormClosingEventArgs e)
{
beginningForm.Show();
}
private void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
TextBox tb = (TextBox)e.Control;
tb.KeyPress += new KeyPressEventHandler(tb_KeyPress);
}
void tb_KeyPress(object sender, KeyPressEventArgs e)
{
string vlCell = ((TextBox)sender).Text;
bool temp = (vlCell.IndexOf(".") == -1);
//проверка ввода фио
if (dataGridView1.Rows[dataGridView1.CurrentRow.Index].Cells[0].IsInEditMode == true)
if (Char.IsLetter(e.KeyChar) || Char.IsWhiteSpace(e.KeyChar) || e.KeyChar == '.')
e.Handled = true;
}
}
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace ELECTRE
{
public partial class ELECTRE_Iv : Form
{
public ELECTRE_Iv()
{
InitializeComponent();
}
public ChooseMethodClass beginningForm;
OneElement[] elements;
private void button1_Click(object sender, EventArgs e)
{
dataGridView1.RowCount = 1;
dataGridView1.ColumnCount = 1;
dataGridView1.RowCount = Int16.Parse(textBox1.Text);
dataGridView1.ColumnCount = Int16.Parse(textBox2.Text) + 2;
for (int i = 0; i < dataGridView1.Columns.Count - 2; i++)
{
dataGridView1.Columns[i].HeaderText = "X" + (i + 1).ToString();
}
for (int i = 0; i < dataGridView1.Rows.Count; i++)
{
dataGridView1.Rows[i].HeaderCell.Value = "K" + (i + 1).ToString();
}
dataGridView1.Columns[dataGridView1.Columns.Count - 2].HeaderText = "Вес критерия";
dataGridView1.Columns[dataGridView1.Columns.Count - 1].HeaderText = "Вето порог";
elements = new OneElement[dataGridView1.Columns.Count - 2];
// dataGridView1.Columns[dataGridView1.Columns.Count - 1].
DataGridViewCheckBoxColumn chk = new DataGridViewCheckBoxColumn();
chk.HeaderText = "Максимизация";
dataGridView1.Columns.Add(chk);
}
private void button2_Click(object sender, EventArgs e)
{
int gridColumnsCount = dataGridView1.Columns.Count;
double indexOfAgree = double.Parse(textBox3.Text);
for (int i = 0; i < dataGridView1.Columns.Count - 3; i++)
{
elements[i] = new OneElement(elements.Length, i);
for (int j = 0; j < dataGridView1.Columns.Count - 3; j++)
{
if (i == j)
{
elements[i].ThisIsMyRelation(j);
}
else
{
for (int k = 0; k < dataGridView1.Rows.Count; k++)
{
double indexOfDisagree = double.Parse(dataGridView1.Rows[k].Cells[gridColumnsCount - 2].Value.ToString());
if (dataGridView1.Rows[k].Cells[gridColumnsCount - 1].Value != null)
{
if ((bool)dataGridView1.Rows[k].Cells[gridColumnsCount - 1].Value == true)
{
if (double.Parse(dataGridView1.Rows[k].Cells[i].Value.ToString()) >= double.Parse(dataGridView1.Rows[k].Cells[j].Value.ToString()))
{
elements[i].AddToIndexOfAgree(j, double.Parse(dataGridView1.Rows[k].Cells[gridColumnsCount - 3].Value.ToString()));
}
else
{
if (double.Parse(dataGridView1.Rows[k].Cells[j].Value.ToString()) - double.Parse(dataGridView1.Rows[k].Cells[i].Value.ToString()) >= indexOfDisagree)
{
elements[i].SetIndexOfDisagree(j, 1);
}
}
}
else
{
if (double.Parse(dataGridView1.Rows[k].Cells[i].Value.ToString()) <= double.Parse(dataGridView1.Rows[k].Cells[j].Value.ToString()))
{
elements[i].AddToIndexOfAgree(j, double.Parse(dataGridView1.Rows[k].Cells[gridColumnsCount - 3].Value.ToString()));
}
else
{
if (double.Parse(dataGridView1.Rows[k].Cells[i].Value.ToString()) - double.Parse(dataGridView1.Rows[k].Cells[j].Value.ToString()) >= indexOfDisagree)
{
elements[i].SetIndexOfDisagree(j, 1);
}
}
}
}
else
{
if (double.Parse(dataGridView1.Rows[k].Cells[i].Value.ToString()) <= double.Parse(dataGridView1.Rows[k].Cells[j].Value.ToString()))
{
elements[i].AddToIndexOfAgree(j, double.Parse(dataGridView1.Rows[k].Cells[gridColumnsCount - 3].Value.ToString()));
}
else
{
if (double.Parse(dataGridView1.Rows[k].Cells[i].Value.ToString()) - double.Parse(dataGridView1.Rows[k].Cells[j].Value.ToString()) >= indexOfDisagree)
{
elements[i].SetIndexOfDisagree(j, 1);
}
}
}
}
}
}
}
ResultForElectre_I_IS myForm = new ResultForElectre_I_IS();
myForm.indexOfAgree = indexOfAgree;
myForm.elements = elements;
myForm.indexOfDisagree = 0.5d;
myForm.ShowDialog();
}
private void button3_Click(object sender, EventArgs e)
{
beginningForm.Show();
this.Close();
}
private void Form4_FormClosing(object sender, FormClosingEventArgs e)
{
beginningForm.Show();
}
private void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
TextBox tb = (TextBox)e.Control;
tb.KeyPress += new KeyPressEventHandler(tb_KeyPress);
}
void tb_KeyPress(object sender, KeyPressEventArgs e)
{
string vlCell = ((TextBox)sender).Text;
bool temp = (vlCell.IndexOf(".") == -1);
//проверка ввода фио
if (dataGridView1.Rows[dataGridView1.CurrentRow.Index].Cells[0].IsInEditMode == true)
if (Char.IsLetter(e.KeyChar) || Char.IsWhiteSpace(e.KeyChar) || e.KeyChar == '.')
e.Handled = true;
}
}
}
using System;
using System.Collections.Generic;
using System.Text;
namespace ELECTRE
{
public class OneElement
{
public RelationWithOtherElement[] relations;
public int index;
public int countIAmBetter;
public int myPlace;
public int criterionCount;
public double[] criterionWeight;
public OneElement(int length, int index)
{
this.index = index;
relations = new RelationWithOtherElement[length];
for (int i = 0; i < relations.Length; i++)
{
relations[i] = new RelationWithOtherElement();
}
}
public OneElement(int length, int index,int rowCount)
{
this.index = index;
relations = new RelationWithOtherElement[length];
criterionCount = rowCount;
criterionWeight = new double[criterionCount];
for (int i = 0; i < relations.Length; i++)
{
relations[i] = new RelationWithOtherElement(criterionCount);
}
}
public void CountMyTotalIndexOfAgree()
{
for (int i = 0; i < relations.Length; i++)
{
for (int j = 0; j < relations[i].indexesOfAgreeOfEachCriterion.Length; j++)
{
AddToIndexOfAgree(i, criterionWeight[j]* relations[i].indexesOfAgreeOfEachCriterion[j]);
}
}
}
public void CountMyTotalIndexOfDisagree()
{
for (int i = 0; i < relations.Length; i++)
{
relations[i].indexOfDisagree = 1d;
for (int j = 0; j < relations[i].indexesOfDisagreeOfEachCriterion.Length; j++)
{
if(relations[i].indexesOfDisagreeOfEachCriterion[j]>relations[i].indexOfAgree)
MultiplyToIndexOfDisagree(i, (1d- relations[i].indexesOfDisagreeOfEachCriterion[j])/(1d-relations[i].indexOfAgree));
}
}
}
public void CountPR()
{
for (int i = 0; i < relations.Length; i++)
{
relations[i].pr = relations[i].indexOfAgree * relations[i].indexOfDisagree;
}
}
public void AddToIndexOfDisagreeOfEachCriterion(int index, int indexOfCriterion, double value)
{
relations[index].indexesOfDisagreeOfEachCriterion[indexOfCriterion] += value;
}
public void AddToIndexOfAgreeOfEachCriterion(int index,int indexOfCriterion, double value)
{
relations[index].indexesOfAgreeOfEachCriterion[indexOfCriterion] += value;
}
public void ThisIsMyRelation(int index)
{
relations[index].thisIsMyRelation = true;
}
public void AddToIndexOfAgree(int index, double value)
{
relations[index].indexOfAgree += value;
}
public void MultiplyToIndexOfDisagree(int index, double value)
{
relations[index].indexOfDisagree *= value;
}
public void AddToIndexOfDisagree(int index, double value)
{
relations[index].indexOfDisagree += value;
}
public void SetIndexOfDisagree(int index, double value)
{
if(relations[index].indexOfDisagree<value)
relations[index].indexOfDisagree= value;
}
}
}
using System;
using System.Collections.Generic;
using System.Windows.Forms;
namespace ELECTRE
{
static class Program
{
/// <summary>
/// Главная точка входа для приложения.
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new ChooseMethodClass());
}
}
}
using System;
using System.Collections.Generic;
using System.Text;
namespace ELECTRE
{
public class RelationWithOtherElement
{
public bool thisIsMyRelation;
public double indexOfAgree;
public double indexOfDisagree;
public double[] indexesOfAgreeOfEachCriterion;
public double pr;
public double[] indexesOfDisagreeOfEachCriterion;
public RelationWithOtherElement()
{
}
public RelationWithOtherElement(int criterionCount)
{
indexesOfAgreeOfEachCriterion = new double[criterionCount];
indexesOfDisagreeOfEachCriterion = new double[criterionCount];
}
}
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace ELECTRE
{
public partial class ResultForElectre_I_IS : Form
{
public ResultForElectre_I_IS()
{
InitializeComponent();
}
public OneElement[] elements;
public double indexOfAgree;
public double indexOfDisagree;
public void CountPlaces(double indexOfAgree)
{
List<OneElement> elementsToCount = new List<OneElement>();
for (int k = 0; k < elements.Length; k++)
{
elements[k].countIAmBetter = 0;
for (int i = 0; i < elements.Length; i++)
{
if (elements[k].relations[i].indexOfDisagree <= indexOfDisagree)
{
if (elements[k].relations[i].indexOfAgree >= indexOfAgree) elements[k].countIAmBetter++;
}
}
elementsToCount.Add(elements[k]);
}
int place = 1;
while (elementsToCount.Count > 0)
{
int count = 0;
for (int i = 0; i < elementsToCount.Count; i++)
{
if (elementsToCount[i].countIAmBetter >= count)
{
count = elementsToCount[i].countIAmBetter;
elementsToCount[i].myPlace = place;
}
}
List<OneElement> elementsToRemove = new List<OneElement>();
for (int i = 0; i < elementsToCount.Count; i++)
{
if (elementsToCount[i].countIAmBetter == count) elementsToRemove.Add(elementsToCount[i]);
}
for (int i = 0; i < elementsToRemove.Count; i++)
{
elementsToCount.Remove(elementsToRemove[i]);
}
place++;
}
}
private void Form2_Load(object sender, EventArgs e)
{
dataGridView1.RowCount = elements.Length;
dataGridView1.ColumnCount = elements.Length;
for (int i = 0; i < dataGridView1.Rows.Count; i++)
{
dataGridView1.Rows[i].HeaderCell.Value = "X" + (i + 1).ToString();
}
for (int i = 0; i < dataGridView1.Columns.Count; i++)
{
dataGridView1.Columns[i].HeaderText = "X" + (i + 1).ToString();
for (int k = 0; k < dataGridView1.Rows.Count; k++)
{
// dataGridView1.Rows[k].Cells[i].Value = myMatrix[k, i];
dataGridView1.Rows[k].Cells[i].Value = elements[k].relations[i].indexOfAgree;
if (elements[k].relations[i].thisIsMyRelation)
{
dataGridView1.Rows[k].Cells[i].Style.BackColor = Color.Gray;
}
}
}
dataGridView3.RowCount = elements.Length;
dataGridView3.ColumnCount = elements.Length;
for (int i = 0; i < dataGridView3.Rows.Count; i++)
{
dataGridView3.Rows[i].HeaderCell.Value = "X" + (i + 1).ToString();
}
for (int i = 0; i < dataGridView3.Columns.Count; i++)
{
dataGridView3.Columns[i].HeaderText = "X" + (i + 1).ToString();
for (int k = 0; k < dataGridView3.Rows.Count; k++)
{
// dataGridView1.Rows[k].Cells[i].Value = myMatrix[k, i];
dataGridView3.Rows[k].Cells[i].Value = elements[k].relations[i].indexOfDisagree;
if (elements[k].relations[i].thisIsMyRelation)
{
dataGridView3.Rows[k].Cells[i].Style.BackColor = Color.Gray;
}
}
}
CountPlaces(indexOfAgree);
dataGridView2.RowCount = elements.Length;
dataGridView2.ColumnCount = elements.Length+1;
for (int i = 0; i < dataGridView1.Rows.Count; i++)
{
dataGridView2.Rows[i].Cells[dataGridView2.ColumnCount - 1].Value = elements[i].myPlace;
dataGridView2.Rows[i].HeaderCell.Value = "X" + (i + 1).ToString();
}
for (int i = 0; i < dataGridView2.Columns.Count-1; i++)
{
dataGridView2.Columns[i].HeaderText = "X" + (i + 1).ToString();
for (int k = 0; k < dataGridView2.Rows.Count; k++)
{
string s="";
if (elements[k].relations[i].thisIsMyRelation)
{
s = "";
dataGridView2.Rows[k].Cells[i].Style.BackColor = Color.Gray;
}
if (elements[k].relations[i].indexOfDisagree > indexOfDisagree && !elements[k].relations[i].thisIsMyRelation) s = "-";
if (elements[k].relations[i].indexOfDisagree <= indexOfDisagree)
{
if (elements[k].relations[i].indexOfAgree >= indexOfAgree) s = "S";
else s = "-";
}
dataGridView2.Rows[k].Cells[i].Value = s;
}
}
}
}
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace ELECTRE
{
public partial class ResultForElectreII : Form
{
public ResultForElectreII()
{
InitializeComponent();
}
public OneElement[] elements;
public double indexOfAgree;
public double indexOfDisagree;
public double secondIndexOfAgree;
public void CountPlaces(double indexOfAgree)
{
List<OneElement> elementsToCount = new List<OneElement>();
for (int k = 0; k < elements.Length; k++)
{
elements[k].countIAmBetter = 0;
for (int i = 0; i < elements.Length; i++)
{
if (elements[k].relations[i].indexOfDisagree <= indexOfDisagree)
{
if (elements[k].relations[i].indexOfAgree >= indexOfAgree) elements[k].countIAmBetter++;
}
}
elementsToCount.Add(elements[k]);
}
int place = 1;
while (elementsToCount.Count > 0)
{
int count = 0;
for (int i = 0; i < elementsToCount.Count; i++)
{
if (elementsToCount[i].countIAmBetter >= count)
{
count = elementsToCount[i].countIAmBetter;
elementsToCount[i].myPlace = place;
}
}
List<OneElement> elementsToRemove = new List<OneElement>();
for (int i = 0; i < elementsToCount.Count; i++)
{
if (elementsToCount[i].countIAmBetter == count) elementsToRemove.Add(elementsToCount[i]);
}
for (int i = 0; i < elementsToRemove.Count; i++)
{
elementsToCount.Remove(elementsToRemove[i]);
}
place++;
}
}
private void ResultForElectreII_Load(object sender, EventArgs e)
{
dataGridView1.RowCount = elements.Length;
dataGridView1.ColumnCount = elements.Length;
for (int i = 0; i < dataGridView1.Rows.Count; i++)
{
dataGridView1.Rows[i].HeaderCell.Value = "X" + (i + 1).ToString();
}
for (int i = 0; i < dataGridView1.Columns.Count; i++)
{
dataGridView1.Columns[i].HeaderText = "X" + (i + 1).ToString();
for (int k = 0; k < dataGridView1.Rows.Count; k++)
{
// dataGridView1.Rows[k].Cells[i].Value = myMatrix[k, i];
dataGridView1.Rows[k].Cells[i].Value = elements[k].relations[i].indexOfAgree;
if (elements[k].relations[i].thisIsMyRelation)
{
dataGridView1.Rows[k].Cells[i].Style.BackColor = Color.Gray;
}
}
}
dataGridView3.RowCount = elements.Length;
dataGridView3.ColumnCount = elements.Length;
for (int i = 0; i < dataGridView3.Rows.Count; i++)
{
dataGridView3.Rows[i].HeaderCell.Value = "X" + (i + 1).ToString();
}
for (int i = 0; i < dataGridView3.Columns.Count; i++)
{
dataGridView3.Columns[i].HeaderText = "X" + (i + 1).ToString();
for (int k = 0; k < dataGridView3.Rows.Count; k++)
{
// dataGridView1.Rows[k].Cells[i].Value = myMatrix[k, i];
dataGridView3.Rows[k].Cells[i].Value = elements[k].relations[i].indexOfDisagree;
if (elements[k].relations[i].thisIsMyRelation)
{
dataGridView3.Rows[k].Cells[i].Style.BackColor = Color.Gray;
}
}
}
CountPlaces(indexOfAgree);
dataGridView2.RowCount = elements.Length;
dataGridView2.ColumnCount = elements.Length+1;
for (int i = 0; i < dataGridView1.Rows.Count; i++)
{
dataGridView2.Rows[i].Cells[dataGridView2.ColumnCount - 1].Value = elements[i].myPlace;
dataGridView2.Rows[i].HeaderCell.Value = "X" + (i + 1).ToString();
}
for (int i = 0; i < dataGridView2.Columns.Count-1; i++)
{
dataGridView2.Columns[i].HeaderText = "X" + (i + 1).ToString();
for (int k = 0; k < dataGridView2.Rows.Count; k++)
{
string s = "";
...Подобные документы
Классификация систем поддержки принятия решений. Сравнительный анализ методик для оценки рисков розничного кредитования. Структура системы поддержки принятия решений, формирование начальной базы знаний. Проектирование базы данных информационной системы.
дипломная работа [1,9 M], добавлен 10.07.2017Методы решения проблем, возникающих на стадиях и этапах процесса принятия решений, их реализация в информационных системах поддержки принятия решений (СППР). Назначение СППР, история их эволюции и характеристика. Основные типы СППР, области их применения.
реферат [389,3 K], добавлен 22.11.2016Теоретические аспекты функционирования Business intelligence - систем в сфере логистики. Анализ условий для разработки системы поддержки принятия решений. Характеристика процесса создания программного продукта, применение аналитической платформы QlikView.
курсовая работа [2,5 M], добавлен 09.09.2017Обслуживание двух встречных потоков информации. Структура информационных систем. Разработка структуры базы данных. Режимы работы с базами данных. Четыре основных компонента системы поддержки принятия решений. Выбор системы управления баз данных.
курсовая работа [772,0 K], добавлен 21.04.2016Знакомство с процессом управления транспортировкой газа по магистралям газопроводов, анализ возможных подходов и методов проектирования информационной системы, разработанные и реализованные алгоритмы, а также оценка стоимости разработанной подсистемы.
дипломная работа [1,2 M], добавлен 22.11.2015Разработка и внедрение программного модуля поддержки принятия управленческих решений для информационной системы медицинского предприятия ООО "Центр эндохирургических технологий". Эффективность применения модуля, полученные с его помощью результаты.
дипломная работа [1,9 M], добавлен 11.04.2013Анализ существующих решений системы поддержки принятия решений для корпоративной сети. Многоагентная система. Разработка концептуальной модели. Структура базы знаний. Разработка модели многоагентной системы на базе сетей Петри. Методика тестирования.
дипломная работа [5,1 M], добавлен 19.01.2017Типы административных информационных систем: системы генерации отчетов, системы поддержки принятия решений, системы поддержки принятия стратегических решений. Сортировка и фильтрация списков в Microsoft Excel. Работа с базами данных в Microsoft Access.
контрольная работа [6,0 M], добавлен 19.11.2009Концепция систем поддержки принятия решений. Диапазон применения Analytica 2.0. Программное обеспечение количественного моделирования. Графический интерфейс для разработки модели. Основные способы моделирования. Диаграмма влияния и дерево решений.
контрольная работа [1,1 M], добавлен 08.09.2011Классификация задач системы поддержки принятия решений, их типы и принципы реализации при помощи программы "Выбор". Обзор современных систем автоматизированного проектирования "Компас", "AutoCad", "SolidWorks", оценка преимуществ и недостатков программ.
курсовая работа [1,4 M], добавлен 22.07.2014Исследование технологического процесса по производству газобетона. Модель "как будет" процесса диагностирования состояния технологического процесса производства газобетона с учетом системы поддержки принятия решений. Прототипирование интерфейса СППР.
дипломная работа [4,8 M], добавлен 17.06.2017Разработка алгоритмического и программного обеспечения для решения задачи поддержки принятия решений о выпуске новой продукции. Математическое обеспечение задачи поддержки принятия решений о выпуске новой продукции, основные входные и выходные данные.
дипломная работа [943,0 K], добавлен 08.03.2011Классификация информационных систем управления деятельностью предприятия. Анализ рынка и характеристика систем класса Business Intelligence. Классификация методов принятия решений, применяемых в СППР. Выбор платформы бизнес-интеллекта, критерии сравнения.
дипломная работа [1,7 M], добавлен 27.09.2016Система поддержки принятия решений "Мыслитель" и метод, заложенный в её основу. Порядок работы в программе: новая задача, составление списка альтернатив, списка критериев их оценки, сравнение критериев по степени важности, попарное сравнение альтернатив.
отчет по практике [719,2 K], добавлен 08.03.2016Схема организационной структуры отдела маркетинга предприятия, его основные задачи и функции. Разработка специализированной системы автоматизации маркетинговой деятельности, ее характеристика и оценка эффективности. Информационное обеспечение системы.
дипломная работа [3,7 M], добавлен 30.07.2009Рассмотрение понятия и истории возникновения систем поддержки принятия решения. Приспособленность информационных систем к задачам повседневной управленческой деятельности. Понятие термина "интеллектуальный анализ данных". Методика извлечения знаний.
реферат [79,8 K], добавлен 14.04.2015Основные модели представления знаний. Системы поддержки принятия решений. Диаграмма UseCase. Разработка базы данных на основе трех моделей: продукционные правила, семантическая сеть, фреймовая модель. Программная реализация системы принятия решений.
курсовая работа [715,1 K], добавлен 14.05.2014Человеко-машинные комплексы, специально предназначенные для принятия решений. Процесс принятия решений и его этапы. Методы поиска новых вариантов решений: дерево решений, морфологические таблицы, конференции идей. Принцип математической оценки тенденций.
курсовая работа [272,1 K], добавлен 30.07.2009Экономические и социальные цели информатизации. Классификация задач по степени их формализованности и задания, решаемые разными группами работников. Этапы развития информационных технологий. Стратегии внедрения системы поддержки и принятия решений.
реферат [22,5 K], добавлен 02.12.2010Изучение назначения и основных задач, которые решает Project Expert - система поддержки принятия решений (СППР), предназначенная для менеджеров, проектирующих финансовую модель нового или действующего предприятия. Программные приложения, этапы работы.
реферат [30,7 K], добавлен 19.05.2010