Алгоритмизация и информатизация методов семейства 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

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.