Программирование методов принятия решений

Основные этапы процесса принятия решений, методы поддержки, классификация задач принятия решений. Анализ этапов создания программных продуктов с использованием государственных стандартов и International Standards Organization. Описание фреймворка ASP.NET.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 01.10.2016
Размер файла 1,3 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Как выше писалось, код на C# компилируется в приложения или сборки с расширениями exe или dll на языке CIL. Далее при запуске на выполнение подобного приложения происходит JIT-компиляция (Just-In-Time) в машинный код, который затем выполняется. При этом, поскольку наше приложение может быть большим и содержать кучу инструкций, в текущий момент времени будет компилироваться лишь та часть приложения, к которой непосредственно идет обращение. Если мы обратимся к другой части кода, то она будет скомпилирована из CIL в машинный код. При том уже скомпилированная часть приложения сохраняется до завершения работы программы. В итоге это повышает производительность.

в C#, как и в других языках платформы Microsoft .NET не нужно следить за освобождением памяти, занимаемой объектами вашей программы - за этим следит сборщик “мусора” Garbage Collector (глобальный объект GC)

По сравнению с другими языками C# достаточно молодой, но в то же время он уже прошел большой путь. Первая версия языка вышла вместе с релизом Microsoft Visual Studio .NET в феврале 2002 года. Текущей версией языка является версия C# 6.0, которая вышла в 20 июля 2015 года вместе с Visual Studio 2015.

C# является объектно-ориентированным и в этом плане много перенял у Java и С++. Например, C# поддерживает полиморфизм, наследование, перегрузку операторов, статическую типизацию. Объектно-ориентированный подход позволяет решить задачи по построению крупных, но в тоже время гибких, масштабируемых и расширяемых приложений. И C# продолжает активно развиваться, и с каждой новой версией появляется все больше интересных функциональностей, как, например, лямбды, динамическое связывание, асинхронные методы и т.д.

6.2Роль платформы .NET

Когда говорят C#, нередко имеют в виду технологии платформы .NET (WPF, ASP.NET). И, наоборот, когда говорят .NET, нередко имеют в виду C#. Однако, хотя эти понятия связаны, отождествлять их неверно. Язык C# был создан специально для работы с фреймворком .NET, однако само понятие .NET несколько шире.

Как-то Билл Гейтс сказал, что платформа .NET - это лучшее, что создала компания Microsoft. Возможно, он был прав. Фреймворк .NET представляет мощную платформу для создания приложений. Можно выделить следующие ее основные черты:

· Поддержка нескольких языков. Основой платформы является общеязыковая среда исполнения Common Language Runtime (CLR), благодаря чему .NET поддерживает несколько языков: наряду с C# это также VB.NET, C++, F#, а также различные диалекты других языков, привязанные к .NET, например, Delphi.NET. При компиляции код на любом из этих языков компилируется в сборку на общем языке CIL (Common Intermediate Language) - своего рода ассемблер платформы .NET. Поэтому мы можем сделать отдельные модули одного приложения на отдельных языках.

· Кроссплатформенность. .NET является переносимой платформой (с некоторыми ограничениями). Например, последняя версия платформы на данный момент .NET Framework поддерживается на большинстве современных ОС Windows (Windows 10/8.1/8/7/Vista). А благодаря проекту Mono можно создавать приложения, которые будут работать и на других ОС семейства Linux, в том числе на мобильных платформах Android и iOS.

· Мощная библиотека классов. .NET представляет единую для всех поддерживаемых языков библиотеку классов. И какое бы приложение мы не собирались писать на C# - текстовый редактор, чат или сложный веб-сайт - так или иначе мы задействуем библиотеку классов .NET.

· Разнообразие технологий. Общеязыковая среда исполнения CLR и базовая библиотека классов являются основой для целого стека технологий, которые разработчики могут задействовать при построении тех или иных приложений. Например, для работы с базами данных в этом стеке технологий предназначена технология ADO.NET. Для построения графических приложений с богатым насыщенным интерфейсом - технология WPF. Для создания веб-сайтов - ASP.NET и т.д.

Также еще следует отметить такую особенность языка C# и фреймворка .NET, как автоматическая сборка мусора. А это значит, что нам в большинстве случаев не придется, в отличие от С++, заботиться об освобождении памяти. Вышеупомянутая общеязыковая среда CLR сама вызовет сборщик мусора и очистит память.

Управляемый и неуправляемый код

Нередко приложение, созданное на C#, называют управляемым кодом (managed code). Что это значит? А это значит, что данное приложение создано на основе платформы .NET и поэтому управляется общеязыковой средой CLR, которая загружает приложение и при необходимости очищает память. Но есть также приложения, например, созданные на языке С++, которые компилируются не в общий язык CIL, как C# или VB.NET, а в обычный машинный код. В этом случае .NET не управляет приложением.

В то же время платформа .NET предоставляет возможности для взаимодействия с неуправляемым кодом. Мы наряду со стандартными классами библиотеки .NET можем также использовать сборки COM.

На сегодняшний момент язык программирования C# одни из самых мощных, быстро развивающихся и востребованных языков в ИТ-отрасли. В настоящий момент на нем пишутся самые различные приложения: от небольших десктопных программок до крупных веб-порталов и веб-сервисов, обслуживающих ежедневно миллионы пользователей.

Вывод В этой главе были рассмотрены языки программирования и сделан выбор в пользу С# и дано обоснование выбора. Были описаны язык программирования и платформа .Net

6. Описание программных средств для решения задач ВКР

Как уже было отмечено выше мой выбор остановился на фреймворке ASP.NET.

6.1Описание фреймворка ASP.NET

ASP.NET это фреймворк веб-приложений, разрабатываемый Microsoft.Он необходим разработчикам в целях создания динамических веб-сайтов.Так же он позволяет использовать полнофункциональные языки программирования. Коды приложения ASP.NET могут быть записаны на любом из следующих языков: C#, Visual Basic.Net , Jscript, J#

В ASP.NET входит:

Ш Платформа для разработки страницы и элементов управления

Ш Компилятор ASP.NET

Ш Инфраструктура защиты данных

Ш Возможности по управлению состоянием

Ш Конфигурация приложения

Ш Наблюдение и настройка производительности

Ш Поддержка отладки

Ш Платформа веб-служб XML

Ш Расширяемая среда размещения и управление жизненным циклом приложения

Ш Расширяемая среда конструктора

Платформа для разработки страницы и элементов управления

Веб-страницы ASP.NET являются полностью объектно-ориентированными. На страницах ASP.NET с элементами HTML можно работать, используя свойства, методы и события. Структура страниц ASP.NET предоставляет единую модель отклика на клиентские события в коде, выполняемом на сервере, поэтому реализация разделения клиента и сервера, используемая в веб-приложениях, не нужна. Она также автоматически обрабатывает состояния страницы и ее элементов управления во время цикла обработки страницы.

Структура страниц и элементов управления ASP.NET также инкапсулирует общие функциональные возможности пользовательского интерфейса в удобные повторно используемые элементы управления. Элементы управления, написанные однажды, можно использовать во многих страницах. Они встраиваются в веб-страницу ASP.NET, на которой они размещаются во время обработки.

Структура страниц и элементов управления ASP.NET также предоставляет возможности управления отображением и поведением веб-узла с помощью тем и обложек. Можно определить темы и обложки и затем применить их на уровне страницы или элемента управления.

Компилятор ASP.NET

Весь код ASP.NET компилируется, что позволяет использовать строгий контроль типов, оптимизации производительности и другие преимущества. После компиляции кода среда CLR компилирует код ASP.NET в машинный код, тем самым обеспечивая повышение производительности.

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

Инфраструктура защиты данных

Помимо возможностей защиты данных, .NET, ASP.NET предоставляет дополнительную инфраструктуру для проверки подлинности и авторизации доступа пользователей, а также других задач безопасности. Можно выполнять проверку подлинности с помощью проверки подлинности Windows, предоставляемой службами IIS, или с помощью собственной базы данных пользователя, используя проверку подлинности форм ASP.NET. Также можно управлять проверкой подлинности веб-приложения с помощью групп Windows или собственной базы данных ролей, используя роли ASP.NET. Эти схемы легко добавить, удалить или заменить в зависимости от требований к приложению.

Возможности по управлению состоянием

ASP.NET обеспечивает встроенную функциональность для управления состоянием, что позволяет хранить данные между запросами страниц. ASP.NET предоставляет распределенные средства управления состоянием, позволяющие управлять сведениями о состоянии в нескольких экземплярах одного приложения на одном или нескольких компьютерах.

Конфигурация ASP.NET

Приложения ASP.NET используют систему конфигурации, позволяющую определять параметры конфигурации для веб-сервера, веб-узла и отдельных приложений. Параметры конфигурации можно применять в момент первого развертывания приложений ASP.NET, а также в любой момент добавлять или пересматривать параметры конфигурации с минимальным воздействием на работающие веб-приложения и серверы. Параметры конфигурации ASP.NET сохраняются в файлах XML. Так как эти файлы XML являются текстовыми ASCII-файлами, которые можно читать и изменять, вносить изменения в конфигурацию веб-приложения несложно. Можно расширить схему конфигурации в соответствии со своими предпочтениями.

Наблюдение и настройка производительности

ASP.NET содержит средства обеспечения безопасности, позволяющие вести наблюдение и настраивать производительность приложения ASP.NET. Наблюдение за состоянием системы ASP.NET позволяет уведомлять пользователя о ключевых событиях, предоставляющих сведения о состоянии приложения и условиях возникновения ошибок. Эти события отображают сочетания характеристик диагностики и мониторинга и обеспечивают большую степень гибкости в вопросах, касающихся протоколирования.

Поддержка отладки

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

Платформа веб-служб XML

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

Расширяемая среда размещения и управление жизненным циклом приложения

В ASP.NET включена расширяемая среда размещения, управляющая жизненным циклом приложения с момента первого обращения пользователя к ресурсу (например, странице) в приложении до того момента, когда работа с приложением закончена.Не смотря на то, что ASP.NET использует веб-сервер (IIS) в качестве ведущего приложения, ASP.NET сама предоставляет функциональность размещения. Архитектура ASP.NET позволяет реагировать на события приложения и строить пользовательские обработчики и модули HTTP

Расширяемая среда конструктора

ASP.NET включает расширенную поддержку создания конструкторов для серверных веб-элементов управления, которые можно использовать со средствами визуальной разработки, такими как Visual Studio.

ASP.NET предлагает три платформы для создания веб-приложений: Веб-страницы, Веб-формы и ASP.NET MVC. Все платформы надежны, удобны и позволяют создать мощные веб-приложения.

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

Простая веб-страница HTML статична; Её содержание определено фиксированной разметкой HTML. Динамические страницы позволяют создать содержание страницы на лету, при помощи кода.

6.2 Общие сведения о веб-страницах ASP.NET

Веб-страницы ASP.NET и синтаксис Razor обеспечивают быстрый, доступный, и легкий способ объединить серверный код с HTML, чтобы создать динамический веб-контент. Он обеспечивает работу с базами данных, видео, с сайтами социальных сетей и включает еще много функций, которые помогают создать красивый сайт, соответствующий последним веб-стандартам.

Веб-страницы ASP.NET используются в качестве программируемого пользовательского интерфейса веб-приложения. Веб-страницы ASP.NET предоставляет пользователю сведения в любом обозревателе или клиентском устройстве и реализует логику приложения с помощью серверного кода. Веб-страницы ASP.NET:

· Основаны на технологии Microsoft ASP.NET, согласно которой код, выполняемый на сервере, динамически создает выходные данные веб-страниц для обозревателя или клиентского устройства.

· Совместимы с любым веб-обозревателем или мобильным устройством. Веб-страница ASP.NET автоматически отображает HTML с такими возможностями, как стили, расположение и т. д. в соответствии с типом обозревателя. Кроме того, можно разработать веб-страницы ASP.NET для запуска на определенных обозревателях, например Microsoft Internet Explorer 9 и воспользоваться преимуществами функций, специфических для данного обозревателя.

· Совместимы с любым языком, который поддерживается средой CLR в .NET, включая Microsoft Visual Basic, Microsoft Visual C#, Microsoft J# и Microsoft JScript .NET.

· Построены на основе Microsoft .NET Framework. Это позволяет использовать все преимущества платформы, включая управляемую среду, строгую типизацию и наследование.

· Являются гибким инструментом, поскольку в них можно добавлять созданные пользователем или сторонним производителем элементы управления.

Компоненты Веб-страниц ASP.NET

На веб-странице ASP.NET программирование пользовательского интерфейса разделено на два этапа: программирование алгоритма и визуального компонента. В программах Visual Basic и Visual C++ используется такое же разделение между видимой частью страницы и фоновым кодом, который взаимодействует с данной страницей.

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

Алгоритм веб-страницы ASP.NET состоит из кода, который создается для взаимодействия со страницей. Код может находиться в блоке script на странице или в отдельном файле класса. Если код находится в отдельном файле класса, этот файл является файлом с выделенным кодом.

Веб-страницы ASP.NET компилируются в файл библиотеки DLL. При первом просмотре страницы пользователем ASP.NET автоматически создает файл класса .NET, представляющий страницу, и выполняет его компиляцию. DLL-файл запускается на сервере и динамически создает выходные данные для страницы в формате HTML.

6.3 Платформа ASP.NET MVC

Представляет собой фреймворк для создания сайтов и веб-приложений с помощью реализации паттерна MVC. Концепция паттерна (шаблона) MVC (model - view - controller) предполагает разделение приложения на три компонента:

Контроллер (controller) представляет класс, обеспечивающий связь между пользователем и системой, представлением и хранилищем данных. Он получает вводимые пользователем данные и обрабатывает их. И в зависимости от результатов обработки отправляет пользователю определенный вывод, например, в виде представления.

Представление (view) - это собственно визуальная часть или пользовательский интерфейс приложения. Как правило, html-страница, которую пользователь видит, зайдя на сайт.

Модель (model) представляет класс, описывающий логику используемых данных.

Общую схему взаимодействия этих компонентов можно представить следующим образом:

рис. 10(схема взаимодействия компонентов платформы МVC)

В этой схеме модель является независимым компонентом - любые изменения контроллера или представления не затрагивают модель. Контроллер и представление являются относительно независимыми компонентами, и нередко их можно изменять независимо друг от друга.

Благодаря этому реализуется концепция разделение ответственности, в связи с чем легче построить работу над отдельными компонентами. Кроме того, вследствие этого приложение обладает лучшей тестируемостью. И если нам, допустим, важная визуальная часть или фронтэнд, то мы можем тестировать представление независимо от контроллера. Либо мы можем сосредоточиться на бэкэнде и тестировать контроллер.

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

Для создания приложения на ASP.NET MVC мы должны установить среду разработки - Microsoft Visual Studio 2012.

рис.11(Visual Studio)

Рабочая область программы выглядит следующим образом

рис.12(рабочая область Visual studio)

7. Создание пробной версии программы

рис 11.(веб-интерфейс приложения)

На рис.11 отображена веб-интерфейс разработанного приложения. Первое с чем сталкивается пользователь - это справка, которая содержит описание методов, используемых в приложении и разбор каждого метода на конкретном примере.

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

Первый этап.

рис. 12 (Этап выбора проекта реализации методом аналитических иерархий). Вводим количество критериев в поле и нажимаем кнопку "Ввести".

Заполняем таблицу взаимной важности критериев и таблицу с названиями критериев. После этого нажимаем кнопку "Посчитать".

рис 13.(заполненные таблицы)

Получаем рис 14. (сортированный по убыванию список критериев начиная с самого лучшего критерия и таблицу с наименованием критериев).

Для проверки работоспособности нашей программы введём данные из пункта 4.1

Важность критерия по сравнению с критерием

j

1

2

3

4

5

6

i

1

1

1/5

1/3

3

1/3

3

2

5

1

5

9

3

7

3

3

1/5

1

5

1/5

5

4

1/3

1/9

1/5

1

1/3

3

5

3

1/3

5

3

1

3

6

1/3

1/7

1/5

1/3

1/3

1

Результаты совпадают.

Второй этап.

Этап предварительного выбора метода решения задачи методом ранжирования альтернатив. Вводим количество критериев, экспертов поле и нажимаем кнопку "Ввести. Вводим наименования критериев и заполняем таблицу. Нажимаем кнопку "Посчитать".Получаем сортированный список критериев по убыванию.

рис.15 (ввод данных)

рис. 16(результат)

рис 17. (результат)

Данные из пункта 4.1.Наилучшим считается проект с минимальной суммарной оценкой. В табл. 3 показаны экспертные оценки пяти альтернатив четырьмя экспертами; наилучший - проект 2.Ответы совпадают

Экспертные оценки

Альтернативные проекты R

1

2

3

4

5

Эксперты l

1

3

1

4

2

5

2

3

1

2

4

5

3

2

3

1

5

4

4

5

2

1

4

3

сумма

13

7

8

15

17

Третий этап.

Этап выбора языка программирования(Метод попарного сравнения)

вводим данные, заполняем таблицу.

рис 18(ранжирование альтернатив экспертами)

рис.19 (результат)

Четвертый этап

Этап выбора тестового обеспечения методом минимального расстояния. Вводим данные

рис.20 (оценка альтернатив экспертами)

рис. 21(результат)

Метод весов

Ввод информации, заполнение формы

рис.22 Оценка альтернатив экспертами

рис.23 (результат)

7.1 Разворачивание веб-приложения, реализованного с помощью технологии ASP.NET MVC и Framework 4.0 на бесплатном ASP.NET хостинге somee.com.

Перед регистрацией хозяева хостинга настоятельно просят нас посетить их онлайн магазин и заказать пакет услуг. Без этого в форму регистрации не попадешь. Но в их магазине есть бесплатный пакет - правда с ним удастся создать лишь один сайт на хостинге (то что нужно для начала).

Идем по ссылке “Visit our store” и выбираем бесплатный пакет.

Регистрируемся и соглашаемся со всеми условиями.

Далее конфигурируем наш веб сайт, заполняем поле “Site name”, выбираем ОС и веб сервер, и версию ASP.NET. Жмем “Create website”.

Создаем папки проекта, в которые в последующем будет заливать файлы сборок и конфигурации нашего веб сайта.

Готово теперь наше приложение имеет следующий адрес

7.2 Тестирование работоспособности приложения

Тестирование осуществлялось в несколько этапов.

Первым этапом тестирования была проверка работоспособности всех элементов и страниц, форм. Тестирование не выявило никаких неисправностей.

Вторым этапом стала проверка качества отображения страниц приложения в различных браузерах и операционных системах. Качество в браузере Google Chrome, в операционной системе Windows 7 было продемонстрировано выше.

рис.24 Качество в браузере Mozilla firefox в операционной системе Linux Ubuntu.

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

Третьим этапом стала проверка защиты системы от ввода неверных данных.

При попытке ввода неверной информации, а именно знаков и букв в числовое поле выводится следующая ошибка:

рис.25

При попытке оставить поле без значения выдается ошибка:

The Count field is required.(поле обязательно для заполнения)

рис. 26

Размерность нашей таблицы ограничена размером 10x10 (10 экспертов и 10 критериев)

При попытке ввести размерность больше, появляется ошибка следующего типа:

рис 27(значение поля N должно быть между 2 и 10. Значение поля N должно быть между 3 и 10.)

Название критериев может быть как числовым, так и буквенным.

7.3 Требования к аппаратным средствам для оптимальной работы приложения

Требования к Windows

Требования к Mac

Требования к Linux

Операционная система

Windows XP с пакетом обновления 2 +
Windows Vista
Windows 7
Windows 8
Windows 10

Mac OS X 10.6 или более поздней версии

Ubuntu 10.04 +
Debian 6 +
OpenSuSE 11.3 +
Fedora Linux 14

Процессор

Intel Pentium 4 / Athlon 64 или более поздней версии с поддержкой SSE2

Свободное место на диске

2 Гб

Оперативная память

512 Mб

Высокоскоростное подключение к сети Internet

7.4 Безопасность системы

Безопасность системы обеспечивается за счёт встроенных в операционную систему методов защиты и установленных антивирусных программ.

Вывод

В ходе работы на дипломным проектом были разработаны методы поддержки принятия решений Программирование методов поддержки принятия решения при проектировании программного обеспечения в соответствии с ГОСТ. Были решены следующие задачи :

Проанализированы существующие методы поддержки принятия решений

Изучены этапы создания программных продуктов с использованием стандартов ГОСТ и ISO

Выбраны методы принятия решений для нахождения наиболее рационального решения на каждом этапе проектирования

Разработаны алгоритмы, реализующие выбранные методы поддержки принятия решения

Выбраны программные средств для решения поставленной задачи

Создано приложение

Разработанное приложение отвечает требованиям определённым в Т.З. Приложение является кроссплатформенным, исключает возможность неправильного ввода пользователями, организованно по средством Web интерфейса и не ограничивается используемым программным обеспечением на станции пользователя.

Список литературы

1.Статья из журнала "ФИЛОСОФИЯ НАУКИ" № 55 2012 стр 85,87

2. Теория и методы принятия решений. Ларичев О.И. 2-е изд., перераб. и доп. - М.: Логос, 2002. -- 392 с.

3.Петровский А.Б. Теория принятия решений Университетский учебник. -- М.: Академия, 2009. -- 400 с

4.Толковый словарь Ожегова онлайн

5. А.И. Орлов Теория принятия решений Учебное пособие. - М.: Издательство "Март", 2004.

6. ГОСТ 19.102-77. Единая система программной документации. Стадии разработки. Введ. 1980-01-01. Москва: Стандартинформ, 2005. С. 21-22.

7. ГОСТ Р ИСО/МЭК 9126-93. Информационная технология. Оценка программной продукции. Характеристики качества и руководства по их применению. Москва: Госстандарт России, 2004. 12 с

8. Международный стандарт ISO/IEC 12207 Компания «Технорматив» Перевод на русский язык 2005.

9. "ГОСТ 34.601-90. Информационная технология. Комплекс стандартов на автоматизированные системы. Автоматизированные системы стадии создания" (утв. Постановлением Госстандарта СССР от 29.12.1990 N 3469) из информационного банка "Строительство"

10. ГОСТ 19.102-77 Электронный текст документа подготовлен ЗАО "Кодекс" и сверен по:официальное издание Единая система программной документации: Сб. ГОСТов . -

М.: Стандартинформ, 2010

11. ГОСТ 19.102-77 ЕСПД. Постановлением Государственного комитета стандартов Совета Министров СССР от 20 мая 1977 г. N 1268 дата введения установлена 01.01.80 ПЕРЕИЗДАНИЕ. Январь 2010 г.

12. Beginning C# Object-Oriented Programming Второе издание Автор: Dan Clark Издательство: Apress Год: 2013 с-384

13. Head First. Изучаем C#. 3-е изд. Стиллмен Э., Грин Д.Тема: Head First O'Reilly Год: 2016 Страниц: 816

14. C# В задачах и примерах Культин Н.Б.: Год издания: 2007 Издат.:

БХВ-Петербург: Страниц: 239

15. Онлайн-книга Изучаем ASP.NET MVC 4

16. Самоучитель ASP.NET Игорь Шапошников Издательство: БХВ-Петербург Год: 2002

17. ASP NET. MVC в действии Авторы - Джеффри Палермо, Джимми Богард, Эрик Хексер, Мэтью Хинзе, Джереми Скиннер. Издательство - Manning Год издания - 2012

18.Статья из журнала Вестник компьютерных и информационных

технологий. -- 2013, № 12, С. 59-64.

19.Онлайн учебник ASP.NET http://www.asp.net/mvc/overview

20. Как программировать на Visual C# 2012 Пятое издание Автор: Пол Дейтел, Харви Дейтел Издательство: СПб.: Питер Год: 2014 Страниц: 858

21. С# для начинающих Пахомов Б. И. Издательство: БХВ-Петербург Год: 2014 Страниц: 432

21. Pro ASP.NET MVC Framework Автор: Стивен Сандерсон Издательство: Вильямс Год: 2010 Язык: Русский Страниц: 510

22. С «Visual С# на примерах» Абрамян М. Э.Издательство: БХВ-Петербург Год: 2008.

Приложение

Input - классы для взаимодействия с веб-интерфейсом.

using System;

using System.Collections.Generic;

using System.ComponentModel.DataAnnotations;

using System.Linq;

using System.Web;

using System.Web.Mvc;

namespace MathMvc.Models

{public class FirstInput

{[Range(3, 10)]

public int Count { get; set; }

public double[][] Matrix { get; set; }

public string[] Name { get; set; }

}public class SecondInput

{[Range(2, 10)]

public int N { get; set; }

[Range(3, 10)]

public int M { get; set; }

public double[][] Matrix { get; set; }

public string[] Name { get; set; }

}public class FourthInput

{[Range(2, 10)]

public int N { get; set; }

[Range(3, 10)]

public int M { get; set; }

public int[][] Matrix { get; set; }

public string[] Name { get; set; }

}public class FirstOutput

{public Result[] Vector { get; set; }

public string[] Name { get; set; }

}public class Description

{public MvcHtmlString Full { get; set; }

}}PairMatrix - построение матрицы парных сравнений

using System;using System.Collections.Generic;

using System.Linq;

using System.Web;

namespace MathMvc.Models

{public class PairMatrix

{private static bool Comp(int[] Arr, int a, int b)

{foreach (var x in Arr)

if (x == a)

return false;

else if (x == b)

return true;

throw new ArgumentException();

}public static int[][] fromVector(int[] vector)

{int[][] matrix = new int[vector.Length][];

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

matrix[i] = new int[vector.Length];

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

for (int j = 1; j <= vector.Length; j++)

if (i == j)

continue;

else if (Comp(vector, i, j))

matrix[i - 1][j - 1] = 1;

else

matrix[i - 1][j - 1] = -1;

return matrix;

}public static List<int[][]> fromVector(int[][] array)

{return

array

.Select(fromVector)

.ToList();

}

Permutations - генерация всех комбинаций

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

namespace MathMvc.Models

{pu

public static System.Collections.Generic.IEnumerable<T[]> AllFor(T[] array)

{if (array == null || array.Length == 0)

{yield return new T[0];

}else

{for (int pick = 0; pick < array.Length; ++pick)

{T item = array[pick];

int i = -1;

T[] rest = System.Array.FindAll<T>(

array, delegate(T p) { return ++i != pick; }

);foreach (T[] restPermuted in AllFor(rest))

{i = -1;

yield return System.Array.ConvertAll<T, T>(

array,

delegate(T p)

{return ++i == 0 ? item : restPermuted[i - 1];

});

}}

}}

}Range- код к каждому методу

using MathMvc.Models;

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

namespace MathMvc.Models

{public class Range

{public static Result[] rangeMatrix(double[][] matrix)

{var m = matrix.Length;

return

matrix

.Select(y => y.Aggregate(1.0, (acc, e) => e * acc))

.Select(x => Math.Pow(x, 1.0 / m))

.Select((x, i) => new Result

{Key = (i + 1).ToString(),

Value = x

})

.OrderByDescending(x => x.Value)

.ToArray();

}private static T[][] transpose<T>(T[][] matrix)

{return

Enumerable.Range(0, matrix[0].Length)

.Select(i => Enumerable.Range(0, matrix.Length)

.Select(j => matrix[j][i])

.ToArray())

.ToAray();

}public static Result[] rangeMatrix2(double[][] matrix)

{return

transpose(matrix)

.Select(y => y.Sum())

.Select((x, i) => new Result

{Key = (i + 1).ToString(),

Value = x

}).OrderBy(x => x.Value)

.ToArray();

}public static Result[] rangeMatrix3(List<int[][]> xs)

{return

xs

.Aggregate(

(x, y) =>

x.Zip(y,

(i, j) => i.Zip(j,

(a, b) => a + b).ToArray()).ToArray())

.Select(y => y.Sum())

.Select((x, i) => new Result

{Key = (i + 1).ToString(),

Value = x

}).OrderBy(x => x.Value)

.ToArray();

}private static bool Comp(int[] Arr, int a, int b)

{foreach (var x in Arr)

if (x == a)

return false;

else if (x == b)

return true;

throw new ArgumentException();

}public static Dictionary<int[], double> rangeMatrix4(int[][] matrix)

{var max = matrix[0].Length * (matrix[0].Length - 1) / 2;

var permut = Permutations<int>.AllFor

(Enumerable.Range(1, matrix[0].Length).ToArray());

Dictionary<int[], double> dct =

new Dictionary<int[], double>();

foreach (var p in permut)

{var sum = 0.0;

foreach (var x in matrix)

{var count = 0;

foreach (var i in Enumerable.Range(0, x.Length))

foreach (var j in Enumerable.Range(i + 1, x.Length - i - 1))

if (Comp(p, x[i], x[j]))

count++;

sum += (double)count / max;

}dct.Add(p, sum);

}return dct;

}public static Result[] rangeMatrix5(int[][] matrix)

{var m = matix.Length;

var sum = matrix.SelectMany(x => x).Sum();

return

transpose(matrix)

.Select(y => (double)y.Sum() / sum)

.Select((x, i) => new Result

{Key = (i + 1).ToString(),

Value = x

}).OrderByDescending(x => x.Value)

.ToArray();

}}

}

Result - вспомогательный класс для удобного вывода результатов.

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

namespace MathMvc.Models

{public class Result

{public string Key { get; set; }

public double Value { get; set; }

public override string ToString()

{retun string.Format("{0} : {1}", Key, Value);

}}}Matrix helper.Расчёт матриц

using MathMvc.Models;

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Web;

using System.Web.Mvc;

namespace MathMvc.HtmlHelpers

{public static class HelperWithHtml

{public static String MatrixToTable(int[][] matrix)

{StringBuilder result = new StringBuilder();

var n = matrix.Length;

var m = matrix[0].Length;

result.Append("<table class='c'><thead><tr><th></th>");

foreach (var x in Enumerable.Range(0, m))

result.AppendFormat("<th>{0}</th>", x + 1);

result.Append("</tr></thead><tbody>");

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

{result.AppendFormat("<tr><th>{0}</th>", i + 1);

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

result.AppendFormat("<td>{0}</td>", matrix[i][j]);

result.Append("</tr>");

}result.Append("</tbody></table>");

return result.ToString();

}public static String ArrayToTable(string[] name)

{string header = "<table class='c'><thead><tr><td>Критерий</td><td>Название</td></tr></thead><tbody>";

string f2 = @"<tr><td>{0}</td><td>{1}</td></tr>";

StrigBuilder sb = new StringBuilder();

sb.Append(header);

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

sb.AppendFormat(f2, i + 1, name[i]);

sb.Append("</tbody></table>");

return sb.ToString();

}public static String ResultToTable(Result[] vector)

{string header = "<table class='c'><thead><tr><td>Критерий</td><td>Значение</td></tr></thead><tbody>";

string f2 = @"<tr><td>{0}</td><td>{1}</td></tr>";

StringBuilder sb = new StringBuilder();

sb.AppendFormat(header);

foreach (var x in vector)

sb.AppendFormat(f2, x.Key, x.Value);

sb.Append("</tbody></table>");

return sb.ToString();

}public static String DctToHtml(Dictionary<int[], double> dct)

{string format = "<table class='c'><thead><tr><td>Комбинация</td><td>Значение</td></tr></thead><tbody>";

string f2 = @"<tr><td>{0}</td><td>{1}</td></tr>";

StringBuilder sb = new StringBuilder();

sb.AppendFormat(format, dct.First().Key.Length);

foreach (var x in dct.GroupBy(x => x.Value).OrderBy(x => x.Key).First())

sb.AppendFormat(f2, string.Join(",", x.Key), x.Value);

return sb.ToString();

}public static string ArrayWithMap5(int[][] matrix, string[] name)

{var r = Range.rangeMatrix5(matrix);

var sum = matrix.SelectMany(x => x).Sum();

strig format = @"{0}<p>Сумма всех оценок: {1}</p>

<table class='c'><thead><tr><td>Критерий</td><td>Значение</td></tr></thead><tbody>";

string f2 = @"<tr><td>{0}</td><td>{1}</td></tr>";

StringBuilder sb = new StringBuilder();

sb.AppendFormat(format, ArrayToTable(name), sum);

foreach (var x in r)

sb.AppendFormat(f2, x.Key, x.Value);

sb.Append("</tbody></table>");

return sb.ToString();

}

}

Index controller.

using MathMvc.HtmlHelpers;

using MathMvc.Models;

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.Mvc;

namespace MathMvc.Controllers

{public class IndexController : Controller

{

// GET: /Index/

public ActionResult Index()

{return View();

}[HttpGet]

public ViewResult First()

{return View();

}[HttpPost]

public ViewResult First(FirstInput criterion)

{if (criterion == null)

return View("First", criterion);

else if (criterion.Matrix == null)

return View("FirstI", criterion);

else

return View("FirstO",

new FirstOutput {

Vector = Range.rangeMatrix(criterion.Matrix) ,

Name = criterion.Name

});}[HttpGet]

public ViewResult Second()

{return View();

}[HttpPost]

public ViewResult Second(SecondInput criterion)

{if (criterion == null)

return View("Second", criterion);

else if (criterion.Matrix == null)

return View("SecondI", criterion);

else

return View("SecondO",

new FirstOutput {

Vector = Range.rangeMatrix2(criterion.Matrix),

Name = criterion.Name

});}

[HttpGet]

public ViewResult Fourth()

{return View();

}[HttpPost]

public ViewResult Fourth(FourthInput criterion)

{if (criterion == null)

return View("Fourth", criterion);

else if (criterion.Matrix == null)

return View("FourthI", criterion);

else

{var name = HelperWithHtml.ArrayToTable(criterion.Name);

var r = Range.rangeMatrix4(criterion.Matrix);

var full = string.Format("{0}{1}",

name,

HelperWithHtml.DctToHtml(r));

return View("FourthO",

new Description

{Full = MvcHtmlString.Create(full)

});

}}

[HttGet]

public ViewResult Third()

{return View();

}[HttpPost]

public ViewResult Third(FourthInput criterion)

{if (criterion == null)

return View("Third", criterion);

else if (criterion.Matrix == null)

return View("ThirdI", criterion);

else

{var xs = PairMatrix.fromVector(criterion.Matrix);

var r = Range.rangeMatrix3(xs);

var str_p = "<h4> Матрицы парных сравнений: </h4>";

var str =

xs.Aggregate("",

(acc, val) => acc + HelperWithHtml.MatrixToTable(val));

var sum_p = "<h4> Сумма: </h4>";

var sum = xs.Aggregate(

(x, y) => x.Zip(y,

(i, j) => i.Zip(j,

(a, b) => a + b).ToArray()).ToArray())

.ToArray();

var name = HelperWithHtml.ArrayToTable(criterion.Name);

var full = string.Format("{0}{1}{2}{3}{4}{5}",

str_p, str, sum_p,

HelperWithHtml.MatrixToTable(sum),

name,

HelperWithHtml.ResultToTable(r));

return View("ThirdO",

new Description

{Full = MvcHtmlString.Create(full)

});

}}

[HttpGet]

public ViewResult Fifth()

{return View();

}[HttpPost]

public ViewResult Fifth(FourthInput criterion)

{if (criterion == null)

return View("Fifth", criterion);

else if (criterion.Matrix == null)

return View("FifthI", criterion);

else

{var full = HelperWithHtml.ArrayWithMap5(criterion.Matrix, criterion.Name);

return View("FifthO",

new Description

{Full = MvcHtmlString.Create(full)

Размещено на Allbest.ru

...

Подобные документы

  • Методы решения проблем, возникающих на стадиях и этапах процесса принятия решений, их реализация в информационных системах поддержки принятия решений (СППР). Назначение СППР, история их эволюции и характеристика. Основные типы СППР, области их применения.

    реферат [389,3 K], добавлен 22.11.2016

  • Человеко-машинные комплексы, специально предназначенные для принятия решений. Процесс принятия решений и его этапы. Методы поиска новых вариантов решений: дерево решений, морфологические таблицы, конференции идей. Принцип математической оценки тенденций.

    курсовая работа [272,1 K], добавлен 30.07.2009

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

    дипломная работа [1,9 M], добавлен 10.07.2017

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

    контрольная работа [1,1 M], добавлен 08.09.2011

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

    курсовая работа [1,4 M], добавлен 22.07.2014

  • Разработка алгоритмического и программного обеспечения для решения задачи поддержки принятия решений о выпуске новой продукции. Математическое обеспечение задачи поддержки принятия решений о выпуске новой продукции, основные входные и выходные данные.

    дипломная работа [943,0 K], добавлен 08.03.2011

  • Теоретические аспекты функционирования Business intelligence - систем в сфере логистики. Анализ условий для разработки системы поддержки принятия решений. Характеристика процесса создания программного продукта, применение аналитической платформы QlikView.

    курсовая работа [2,5 M], добавлен 09.09.2017

  • Изучение назначения и основных задач, которые решает Project Expert - система поддержки принятия решений (СППР), предназначенная для менеджеров, проектирующих финансовую модель нового или действующего предприятия. Программные приложения, этапы работы.

    реферат [30,7 K], добавлен 19.05.2010

  • Классификация методов анализа по группам. Сбор и хранение необходимой для принятия решений информации. Подготовка результатов оперативного и интеллектуального анализа для эффективного их восприятия потребителями и принятия на её основе адекватных решений.

    контрольная работа [93,2 K], добавлен 15.02.2010

  • Основные интегрированные информационные системы поддержки принятия решений. Обзор и сравнительный анализ программных продуктов инвестиционного проектирования. Программа управления проектами "MS Project". Примеры программных продуктов в ОАО "Криогенмаш".

    курсовая работа [776,0 K], добавлен 03.06.2014

  • Исследование технологического процесса по производству газобетона. Модель "как будет" процесса диагностирования состояния технологического процесса производства газобетона с учетом системы поддержки принятия решений. Прототипирование интерфейса СППР.

    дипломная работа [4,8 M], добавлен 17.06.2017

  • Классификация информационных систем управления деятельностью предприятия. Анализ рынка и характеристика систем класса Business Intelligence. Классификация методов принятия решений, применяемых в СППР. Выбор платформы бизнес-интеллекта, критерии сравнения.

    дипломная работа [1,7 M], добавлен 27.09.2016

  • Реализация интерфейса пользователя для инструментального средства, обеспечивающего работу с таблицами принятия решений, встроенными в систему управления базами данных Oracle. Составление таблиц принятия решений и архитектуры инструментального средства.

    курсовая работа [1,8 M], добавлен 18.07.2014

  • Анализ существующих решений системы поддержки принятия решений для корпоративной сети. Многоагентная система. Разработка концептуальной модели. Структура базы знаний. Разработка модели многоагентной системы на базе сетей Петри. Методика тестирования.

    дипломная работа [5,1 M], добавлен 19.01.2017

  • Разработка и внедрение программного модуля поддержки принятия управленческих решений для информационной системы медицинского предприятия ООО "Центр эндохирургических технологий". Эффективность применения модуля, полученные с его помощью результаты.

    дипломная работа [1,9 M], добавлен 11.04.2013

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

    курсовая работа [715,1 K], добавлен 14.05.2014

  • Основное назначение и функции корпоративных информационных систем. Этапы эволюции и виды КИС. Оперативное предоставление актуальной информации для принятия управленческих решений. Создание базы для принятия как можно меньшего числа ошибочных решений.

    презентация [407,8 K], добавлен 02.12.2014

  • Обслуживание двух встречных потоков информации. Структура информационных систем. Разработка структуры базы данных. Режимы работы с базами данных. Четыре основных компонента системы поддержки принятия решений. Выбор системы управления баз данных.

    курсовая работа [772,0 K], добавлен 21.04.2016

  • Рассмотрение понятия и истории возникновения систем поддержки принятия решения. Приспособленность информационных систем к задачам повседневной управленческой деятельности. Понятие термина "интеллектуальный анализ данных". Методика извлечения знаний.

    реферат [79,8 K], добавлен 14.04.2015

  • Типы административных информационных систем: системы генерации отчетов, системы поддержки принятия решений, системы поддержки принятия стратегических решений. Сортировка и фильтрация списков в Microsoft Excel. Работа с базами данных в Microsoft Access.

    контрольная работа [6,0 M], добавлен 19.11.2009

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