Студенческий сайт КФУ - ex ТНУ » Учебный раздел » Учебные файлы »ПРОГРАММИРОВАНИЕ

Круговая диаграмма принятия решений (паутинная диаграмма)

Тип: контрольная работа
Категория: ПРОГРАММИРОВАНИЕ
Скачать
Купить
Разработка программы, реализующей метод принятия решения на основе паутинной диаграммы, исходя из количества объектов исследования, их весов и критериев оценки. Листинг программного кода и пример работы программы: расчет площади многоугольников-объектов.
Краткое сожержание материала:

Размещено на

Размещено на

Пояснительная записка

по дисциплине «Теория принятия решений»

Тема: «Круговая диаграмма принятия решений (Паутинная диаграмма)»

Оглавление

1. Постановка задачи

2. Краткие теоретические сведения

3. Реализация программного средства

3.1 Проектирование

3.2 Листинг программного кода

4. Пример работы программы

Выводы

Используемые программные средства

1. Постановка задачи

Необходимо разработать программу, реализующую метод принятия решений на основе круговой диаграммы. В данном случае будет разработано программное средство, реализующее метод принятия решения на основе паутинной диаграммы. Входными данными в программе являются: количество объектов исследования, количество критериев, по которым оцениваются объекты, веса, соответствующие критериям. Эти данные могут вводится пользователем, как вручную, так и могут быть загружены из текстового файла. К входным также можно отнести настройки, которые устанавливает пользователь, тем самым регулируя объекты отображаемые на диаграмме.

Выходными данными являются, главным образом, паутинная диаграмма, отображающая веса критериев, отложенные на осях, многоугольники принятия решений и легенду об объектах на диаграмме. К выходным данным относятся также файлы, в которые пользователь сохраняет таблицу весов, диаграмму и результаты расчета площадей многоугольников, и найденной максимальной площади.

2. Краткие теоретические сведения

В теории принятия решений, существует метод, в основе которого лежит графическое отображение весов критериев принятия решений «Круговая диаграмма принятия решений». Суть метода заключается в следующем: имеются n объектов, из которых необходимо по определенным критериям mi выбрать один или несколько объектов удовлетворяющих критериям.

Для каждого объекта указывается, каким весом обладает каждый критерий, т.о. чтобы сумма весов одного критерия у всех объектов равнялась единице. .

Составляется таблица, в строки которой, записываются веса одного критерия для каждого объекта. На основании данных таблица составляется диаграмма. Лучи диаграммы соответствуют критериям. На лучах откладываются веса соответствующие критериям объектов. Затем точки на весах соединяются в многоугольники, представляющие собой объекты.

В зависимости от размеров многоугольников и их формы, принимается решение о выборе необходимого объекта. Кроме того можно наглядно оценить как соотносятся объекты между собой, как в частных критериях, так и по всем критериям в целом.

Подобные диаграммы нередко используются для наглядного отображения сравнительных значений во времени или по категориям.

программа паутинный диаграмма

3. Реализация программного средства

Среда разработки: Visual Studio 2008

Язык программирования: C#

3.1 Проектирование

При проектировании программного средства будем использовать объектно-ориентированный подход.

Список классов с кратким описанием:

1) Form.cs - это главное окно, служит для ввода данных, запуска работы программы, вывода диаграмм, ввода настроек, содержит метод подсчета площади многоугольников.

2) Reader.cs - это класс содержит методы, реализующие сохранение данных в файл.

3) Settings.cs - класс настроек визуализации программы.

4) Writer.cs - класс содержит методы реализующие чтение данных из файла.

3.2 Листинг программного кода

public class Settings

{

private bool legend;

private bool axis;

private bool pipki;

private int pipkiSize;

private bool countSum;

public Settings()

{

legend = false;

axis = false;

pipki = false;

pipkiSize = 0;

countSum = false;

}

public Settings(bool leg, bool ax, bool pip, int pipSize, bool sum)

{

legend = leg;

axis = ax;

pipki = pip;

pipkiSize = pipSize;

countSum = sum;

}

public bool getCountSum()

{

return countSum;

}

public void setCountSum(bool sum)

{

countSum = sum;

}

public int getPipSize()

{

return pipkiSize;

}

public void setPipSize(int size)

{

pipkiSize = size;

}

public bool getPipki()

{

return pipki;

}

public void setPipki(bool pip)

{

pipki = pip;

}

public bool getLegend()

{

return legend;

}

public bool getAxis()

{

return axis;

}

public void setLegend(bool leg)

{

legend = leg;

}

public void setAxis(bool ax)

{

axis = ax;

}

public class Reader

{

private string fileName;

private string[] inputTxt;

private double[,] matrix;

private double[,] table;

private int rows;

private int cols;

private System.Globalization.NumberFormatInfo numberFormat;

public Reader(string name)

{

fileName = name;

}

public void ReadTable(out double[,] table)

{

numberFormat = new System.Globalization.NumberFormatInfo();

numberFormat.CurrencyDecimalSeparator = ".";

//забираем весь текст из файла по строкам

string[] fullText = File.ReadAllLines(fileName);

//забираем первую строку в массив по строкам разделенным пробелом

string[] aloneString = fullText[0].Split(new char[] { ' ' });

//массив куда будут помещены значения файла

table = new double[fullText.Length, aloneString.Length];

//double[,] temp = new double[fullText.Length, aloneString.Length];

for (int i = 0; i < aloneString.Length; i++)

{

table[0, i] = double.Parse(aloneString[i], numberFormat);

}

for (int i = 1; i < fullText.Length; i++)

{

aloneString = fullText[i].Split(new char[] { ' ' });

for (int j = 0; j < aloneString.Length; j++)

{

table[i, j] = double.Parse(aloneString[j], numberFormat);

}

}

}

}

public static class Writer

{

private static string fileName;

private static string[] inputTxt;

private static double[,] matrix;

private static int rows;

private static int cols;

private static System.Globalization.NumberFormatInfo numberFormat;

static Writer()

{

numberFormat = new System.Globalization.NumberFormatInfo();

numberFormat.CurrencyDecimalSeparator = ".";

}

public static void WriteTable(string nameFile, double[,] table)

{

Writer.fileName = nameFile;

Writer.matrix = table;

if (Writer.matrix != null)

{

rows = matrix.GetLength(0);

cols = matrix.GetLength(1);

inputTxt = new string[rows];

for (int i = 0; i < rows; i++)

{

for (int j = 0; j < cols; j++)

{

inputTxt[i] += matrix[i, j].ToString("0.0000", numberFormat);

if (j < cols - 1)

{<...

Другие файлы:

Деловая графика. Построение диаграмм и графиков на основе электронных таблицах Excel
Оформление диаграммы. Размещение и редактирование диаграммы. Построение диаграмм. Круговая диаграмма. Столбчатая диаграмма. Линейная диаграмма. Ярусн...

Разработка ИС учета охраняемых объектов ЧОП "Рубеж-М"
Контекстная диаграмма системы обслуживания и диаграмма декомпозиции. Обоснование необходимости внедрения информационной системы. Обзор существующих пр...

Описание системы поддержки принятия решений Analytica 2.0
Концепция систем поддержки принятия решений. Диапазон применения Analytica 2.0. Программное обеспечение количественного моделирования. Графический инт...

Проектирование базы знаний
Основные модели представления знаний. Системы поддержки принятия решений. Диаграмма UseCase. Разработка базы данных на основе трех моделей: продукцион...

Разработка информационной системы для деятельности склада "Skala"
Характеристика склада "Skala". Организационная диаграмма, формирование физической диаграммы. Описание бизнес-процессов. Создание модели информационной...