Автоматизированная система поддержки принятия решений
Требования к защите систем электронных платежей. Разновидности процедур, выполняемые лицом, принимающим решения. Методы иерархического упорядочивания альтернатив на заданном множестве критериев. Описание применения метода ОРКЛАСС, схема базы данных.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 02.03.2016 |
Размер файла | 1,7 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Объектно-реляционная;
Объектно-реляционная СУБД - реляционная СУБД, поддерживающая технологии, реализующие объектно-ориентированный подход: объекты, классы и наследование реализованы в структуре баз данных и языке запросов.
Реляционная;
Реляционная модель данных - логическая модель данных, которая служит для описания и обработки функций алгебры логики .
Сетевая;
Сетевая модель данных - логическая модель данных, которая служит для работы с сетевыми данными в базе. [18]
Функциональная.
Описание различных СУБД
Apache Derby
Apache Derby это реляционный вид СУБД, который написан на Java. Данная СУБД предназначена для работы с Java-приложениями и обработки запросов в реальном времени.
Fifebird
Firebird (FirebirdSQL) -- компактная, кроссплатформенная СУБД, предназначенная для работы на Linux, Microsoft Windows.
Основными преимуществами Firebird является многоверсионная архитектура, для обеспечения параллельной обработки оперативных и аналитических запросов, компактность (дистрибутив 5Mb), высокая эффективность и мощная языковая поддержка хранения данных. [12]
Microsoft Access
Microsoft Office Access -- реляционная СУБД корпорации Microsoft. Данная система имеет возможность использовать связь с внешними таблицами и базами данных, связывать различные запросы. В самой системе можно осуществлять написание приложений для работы с базами данных. [20]
Microsoft SQL Server
Microsoft SQL Server -- система управления реляционными базами данных от корпорацией Microsoft. В системе для написания запросов используется язык - Transact-SQL, который был создан совместно компанией Microsoft и Sybase. Используется для работы как с маленькими персональными базами данных, так и с крупными базами данных. [22]
MySQL
MySQL -- свободная система управления базами данных. Владельцем СУБД MySQL является компания Oracle Corporation.
MySQL создана для приложений малого и среднего объема. MySQL разработана на языках программирования C и C++ и совместима со многими операционными системами. [21]
3.2 Виды баз данных
Классификация баз данных осуществляется по многим параметрам.
Для начала рассмотрим классификацию по технологии обработки данных:
централизованные;
Такая база данных хранится в памяти только одной вычислительной системы. При условии, что эта вычислительная система является компонентом сети ЭВМ, тогда возможен распределенный доступ к базе данных. [16]
распределенные.
Такая база данных состоит из нескольких, возможно пересекающихся или даже дублирующих друг друга частей, которые хранятся в различных частях ЭВМ. Для работы с такой базой необходима система управления распределенной базой данных (СУРБД). [16]
Так же СУБД можно классифицировать по способу доступа к данным базы. Существует два вида таких систем: система с локальным доступом к ресурсам и система с удаленным (сетевым) доступом. [16]
Еще можно осуществить классификацию по содержимому базы:
Географическая;
Историческая;
Научная;
Мультимедийная. [16]
4.Технологическая часть
4.1 Выбор критериев отбора альтернатив
Сведения о регистрации в системе
Псевдоним
Дата регистрации
Номер телефона
Адрес электронной почты
Сведения о человеке
Фамилия человека, его имя и отчество
Дата его рождения
Место его рождения
Адрес фактического проживания
Сведения о работе:
Наличие трудоустройства
Место работы
Стаж на последнем месте работы
Наличие судимости
Сведения о документе, удостоверяющем личность
Серия, номер паспорта
Дата выдачи паспорта
Кем выдан паспорт
4.2 Схема базы данных
Схема связей и таблицы базы данных.
В таблице clients указаны сведения о регистрационных данных клиентов (пользователей) системы. В ней находятся такие сведения как номер клиента, логин клиента, номер телефона, адрес электронной почты и степень доверия к клиенту.
В таблице clients data указаны общие сведения о клиентах (пользователях). В ней находятся такие сведения о клиентах как фамилия, имя, отчество, дата и место рождения, сведения о паспортных данных, место проживания, судимость.
В таблице variant acsess right указаны возможности под определенной степенью доверия. В ней находятся сведения о возможности дачи/получения кредита, возможности пополнения кошелька, вывода денежных средств и его лимита.
4.3 Описание применения метода ОРКЛАСС
Целью метода ОРКЛАСС является разбиение заданных альтернатив и всех будущих альтернатив по классам доверия, и осведомление пользователя о его возможностях работы в системе с определенным доверием.
Шкала доверия и описание возможностей пользователя при соответствующем уровне доверия:
Абсолютное доверие (5)
- пользователь системы имеет возможность пополнить свой кошелек на любую сумму;
- вывод денежных средств из системы возможен в любом количестве;
- доступна оплата всех видов интернет услуг;
- пользователь имеет возможность давать/брать кредит другим участникам системы в любом количестве.
Достаточное доверие (4)
- пользователь системы может пополнить кошелек на любую сумму;
- вывод денежных средств из системы в размере до 5000 $ в месяц;
- оплата всех видов интернет услуг.
Средний уровень доверия (3)
- пользователь системы может пополнять свой кошелек на любую сумму;
- возможен вывод денежных средств из системы, но не более 1000$ в месяц:
- со своего кошелька пользователь может оплачивать различные виды услуг (ЖКХ услуги, различные интернет сервисы, игровые сервисы, так же пользователь имеет возможность оплачивать кредиты)
Низкий уровень доверия (2)
- пользователь может пополнить свой кошелек на любую сумму, но может вывести из системы не более 500$ в месяц;
- из интернет-услуг пользователю доступны только те услуги, которые не требующие подтверждения паспортных данных. А именно оплата интернета, мобильного телефона, покупка игровых ресурсов, некоторой техники, не имеющей возврата и гарантии,
Отсутствие доверия (1)
- пользователь может пополнять свой кошелек на любую сумму, но не может выводить денежные средства;
- пользователь может оплачивать некоторые виды услуг (интернет, мобильный телефон, сайты для оплаты игровых ресурсов, сайтов с купонами и т.д.).
Согласно методу присвоим каждой ступени шкалы определенную опорную ситуацию.
Абсолютное доверие = {3,3,3,3,3}
Абсолютное доверие в системе пользователь, зарегистрированный в системе более года, возраст которого от 25 до 60 лет , не имеющий судимости, с опытом на имеющемся месте работы от 3х лет и имеющий средний годовой доход от 500 000 рублей.
Достаточное доверие = {3,2,3,3,2}
Достаточное доверие в системе имеет пользователь, зарегистрированный в системе более года, с возможной условной судимостью, опытом работы на нынешнем месте от 3-х лет, возрастом от 25 до 60 лет, и со средним годовым доходом от 200 000 до 500 000 рублей.
Средний уровень доверия = {2,2,2,2,2}
Средний уровень доверия имеет пользователь системы, зарегистрированный в системе от одного месяца до года, возрастом от 18 до 25 лет или от 60 до 70 лет, возможно имеющий условную судимость, с опытом работы на нынешнем месте от года до трех лет и со средним годовым доходом от 200 000 до 500 000 рублей.
Низкий уровень доверия = {2,1,1,2,2}
Низкий уровень доверия имею пользователи, не прошедшие подтверждение паспортных данных у менеджеров системы, а так же пользователи, зарегистрированные в системе от месяца до года, имеющие судимость, не имеющие на данный момент работы, возрастом от 18 до 25 лет или от 60 до 70 лет, и со средним годовым доходом от 200 000 до 500 000 рублей.
Отсутствие доверия = {1,1,1,1,1}
Отсутствие доверия к пользователю системы может произойти в случае нарушения правил пользования системой, совершения обманных действий, а так же к пользователям, не прошедшим проверку паспортных данных у менеджеров системы, и тех, кто зарегистрирован в системе менее месяца, имеющий судимость, возрастом до 18 или старше 70 лет, не имеющие работы, и с годовым доходом не более 200 000 рублей.
Пользователь системы может быть отнесен к любому из классов доверия, в зависимости от введенных о себе сведений.
Пользователю на экран выводятся вопросы, следующего содержания:
Введите Ваш псевдоним.
Введите Вашу фамилию.
Введите Ваше имя.
Введите Ваше отчество.
Выберите Ваш пол.
Введите Ваш адрес электронной почты.
Введите Ваш номер телефона.
Введите Ваше место рождения.
Введите Ваш адрес регистрации.
Введите серию и номер паспорта.
Введите данные о том, кем и когда выдан Ваш паспорт.
Выберите вариант ответа на вопрос
Как долго зарегистрированы в системе?
меньше месяца.
от месяца до года.
больше года.
Имеете ли Вы судимость?
Да, имею обычную судимость.
Да, имею условную судимость.
Нет, не имею.
Трудоустроены ли Вы? Как долго?
Нет, не трудоустроен.
Да, трудоустроен. Не более 3х лет.
Да, трудоустроен. Более 3х лет.
Каков Ваш возраст?
Менее 18 или более 70
От 18 до 25 или от 60 до 70
От 25 до 60
Каков Ваш годовой доход?
До 200 тысяч
От 200 до 500 тысяч
Более 500 тысяч
6. Форма программы пользователя для ответов на вопросы
Помимо введения сведений о себе, пользователь отвечает на вопросы, не входящие обычно в регистрационные формы систем. Ответы на эти вопросы представляются в виде некоторой точки и помогают системе отнести пользователя в нужную группу.
Присваиваемый балл Название критерия |
1 |
2 |
3 |
|
1 |
2 |
3 |
4 |
|
Регистрация в системе |
Регистрация произведена меньше месяца назад |
Регистрация произведена от месяца до года назад |
Регистрация произведена больше года назад |
|
Наличие судимости |
Есть судимость |
Есть условная судимость |
Нет судимости |
|
Трудоустройство и стаж на последнем месте работы |
Безработный |
Трудоустроен, стаж до 3х лет |
Трудоустроен, стаж более 3х лет |
|
Возраст |
До 18 и более 70 |
От 18 до 25 и от 60 до 70 |
От 25 до 60 |
|
Годовой доход |
До 200т |
От 200 т до 500 |
От 500 и более |
Полученная последовательность цифр собирается в некоторую точку А с координатами {x y z l m}. Далее эта точка будет сравниваться со всеми опорными ситуациями, каждая из которых соответствует определенной степени доверия, по формуле нахождения расстояния между точками в пространстве .
Затем сравниваем полученные расстояния и выбираем наименьшее. После чего присваиваем балл степени доверия точке (человеку), чье расстояние имело минимальное расстояние. Пользователю на экран будет выводиться перечень его возможностей для работы в системе при тех данных, которые он имеет. [11]
Также после завершения обработки данных пользователя, базой данных может пользоваться менеджер для поиска нужных ему пользователей по заданным параметрам.
Выводы
Дипломный проект выполнен в соответствии с установленными к нему требованиями технического задания.
В работе описаны существующие системы поддержки принятия решения с выбранным и примененным наиболее рациональным методом поддержки принятия решений, рассмотрены системы электронных платежей.
Разработано программное обеспечение по оценке степени доверия клиенту и осведомление о его возможностях, так же написана программная документация для упрощения понимания пользователями и операторами программы.
Тема дипломного проекта является актуальной, а использование данного программного обеспечения позволяет пользователям узнавать о своих возможностях при работе в системе и быть даже защищенными от ярко выраженного мошенничества.
Приложение 1
Список альтернатив
Альтернатива №1
Псевдоним: Forest
Дата регистрации: 01.01.2000
Номер телефона: 8 915 123 45 67
Адрес электронной почты: forest@bk.ru
ФИО:
Лесной Степан Петрович
Дата рождения:
11. 11. 1978
Место рождения: Москва
Адрес фактического проживания: Москва, Славянский бульвар 12 -14
Сведения о работе: трудоустроен, продавец, 2 года
Наличие судимости: не судим
Серия, номер паспорта : 45 98 123456
Кем выдан паспорт: ОВД «Домодедово»
Когда выдан паспорт: 11.12.1998
Годовой доход: 550 000
Альтернатива №2
Псевдоним: Ваня
Дата регистрации : 04.07.2011
Номер телефона : +375296575884
Адрес электронной почты: Vanya_Vanya@bk.ru
ФИО :
Михеев Иван Иванович
Дата рождения:
19. 10. 1983
Место рождения : Минск
Адрес фактического проживания: Минск, октябрьская площадь 33 -57
Сведения о работе: не трудоустроен
Наличие судимости: судим
Серия, номер паспорта : МР177355
Кем выдан паспорт : ОВД Октябрьский
Когда выдан паспорт : 15.12.1990
Годовой доход: 300 000
Альтернатива №3
Псевдоним : Supermen
Дата регистрации : 27.12.2012
Номер телефона : 8 905 958 57 88
Адрес электронной почты: Supermen@inbox.ru
ФИО :
Толя Василий Петрович
Дата рождения: 27.11.1980
Место рождения : Химки
Адрес фактического проживания:
Химки, южная 13
Сведения о работе:
не трудоустроен
Наличие судимости: не судим
Серия, номер паспорта :4600464607
Кем выдан паспорт : ОВД Химки
Когда выдан паспорт : 16.07.2000
Годовой доход: 68 000
Альтернатива №4
Псевдоним : Duncan
Дата регистрации : 16.04.1997
Номер телефона : 8 927 698 55 55
Адрес электронной почты: marina_duncan@inbox.ru
ФИО :
Дункан Марина Всеволодовна
Дата рождения: 23.06.1957
Место рождения : Кишинёв
Адрес фактического проживания:
Звенигород, Смотровая 7
Сведения о работе: трудоустроена, уборщица, 7 лет
Наличие судимости: Судима
Серия, номер паспорта : p458751
Кем выдан паспорт : посольство Молдавии
Когда выдан паспорт : 15.07.2003
Годовой баланс: 480 000
Альтернатива №5
Псевдоним : Печкин
Дата регистрации : 30.04.2003
Номер телефона : 8917773773
Адрес электронной почты : pechkin@bk.ru
ФИО : Печкин Артем Игоревич
Дата рождения: 13.08.1990
Место рождения: Москва
Адрес фактического проживания: Москва, Комсомольская 15-377
Сведения о работе: трудоустроен, официант, 1 год
Наличие судимости: не судим
Серия, номер паспорта : 4511333777
Кем выдан паспорт : ОВД Добрынинский
Когда выдан паспорт : 11.11.2011
Годовой доход: 310 000
Альтернатива №6
Псевдоним : Мария
Дата регистрации : 31.05.2006
Номер телефона : 89655554433
Адрес электронной почты : lubimaya@mail.ru
ФИО :
Морковь Мария Андреевна
Дата рождения: 27.10.1987
Место рождения : Киев
Адрес фактического проживания:
Киев, Космос 15а
Сведения о работе: трудоустроена, учительница, 3 года
Наличие судимости: условная
Серия, номер паспорта : ВВ888751
Кем выдан паспорт : МВД «города Киев»
Когда выдан паспорт : 25.12.2000
Годовой доход: 440 000
Альтернатива №7
Псевдоним : Маляр
Дата регистрации : 11.12.2007
Номер телефона : 8 985 358 14 75
Адрес электронной почты : malyar@inbox.ru
ФИО : Маляр Надежда Михайловна
Дата рождения: 19.11.1968
Место рождения: Москва
Адрес фактического проживания:
Вологда, Лесная 15-22
Сведения о работе: трудоустроена, маляр, 15 лет
Наличие судимости: не судим
Серия, номер паспорта : 45 97 368452
Кем выдан паспорт : ОВД «Орехово-Зуево»
Когда выдан паспорт : 19.11.2000
Годовой доход: 390 000
Альтернатива №8
Псевдоним : Рыбак
Дата регистрации : 17.07.2008
Номер телефона : 89177172934
Адрес электронной почты : RYBAk@inbox.ru
ФИО :
Карась Сергей Викторович
Дата рождения: 23.06.1972
Место рождения: Сочи
Адрес фактического проживания:
Астрахань, Бахчевая 33
Сведения о работе:
не трудоустроен, инвалид
Наличие судимости: не судим
Серия, номер паспорта : 1492449914
Кем выдан паспорт : ОВД Астрахань
Когда выдан паспорт : 25.10.1992
Годовой доход: 120 000
Альтернатива №9
Псевдоним : Пиво
Дата регистрации : 16.04.2013
Номер телефона : 8 985 7412589
Адрес электронной почты : volna@bk.ru
ФИО : Пиво Ольга Степановна
Дата рождения: 29.02.1994
Место рождения: Деревня Корни
Адрес фактического проживания:
Деревня Корни,54
Сведения о работе:
в поле, пахарь, 5 лет
Наличие судимости:
не судим
Серия, номер паспорта : 74041444474
Кем выдан паспорт : ОВД Тольятти
Когда выдан паспорт : 11.04.2004
Годовой доход: 200 000
Альтернатива №10
Псевдоним : Чайхана
Дата регистрации : 21.03.2013
Номер телефона :
8 916 789 6541
Адрес электронной почты : chayhana@bk.ru
ФИО : Чу Татьяна Ли
Дата рождения: 19.12.1977
Место рождения: Москва
Адрес фактического проживания:
Коломна, Греческая 17-1-13
Сведения о работе: трудоустроена, кафе-леди, 10 лет
Наличие судимости: условная
Серия, номер паспорта : 45 11 145698
Кем выдан паспорт : ОВД Коломны
Когда выдан паспорт : 14.01.2011
Годовой доход: 500 000
Альтернатива №11
Псевдоним : Capricorn7b
Дата регистрации : 21.11.2005
Номер телефона :
8 916 523 35 87
Адрес электронной почты:
Capri@mail.ru
ФИО :
Иволгин Гаврила Ардалионович
Дата рождения:
05. 10. 1978
Место рождения:
Санкт-Петербург
Адрес фактического проживания:
Санкт-Петербург, Остров 1 - 13
Сведения о работе: трудоустроен, ассистент генерального директора, 2 года
Наличие судимости: не судим
Серия, номер паспорта : 45 98 654321
Кем выдан паспорт : ОВД «Пулково»
Когда выдан паспорт : 02.08.2000
Годовой доход: 1 000 000
Альтернатива №12
Псевдоним : Foxyunix
Дата регистрации : 21.03.2003
Номер телефона :
8 926 583 44 97
Адрес электронной почты : FoxyuNix@mail.ru
ФИО :
Барашкина Анастасия Филипповна
Дата рождения:
06. 07. 1983
Место рождения: Санкт-Петербург
Адрес фактического проживания:
Санкт-Петербург, Крымская 11-99
Сведения о работе: трудоустроен, модель, 1 год
Наличие судимости: не судима
Серия, номер паспорта : 45 98 658751
Кем выдан паспорт : ОВД «Черная речка»
Когда выдан паспорт : 05.10.2002
Годовой доход: 700 000
Альтернатива №13
Псевдоним : tigra
Дата регистрации : 21.03.2004
Номер телефона :
8 926 588 48 97
Адрес электронной почты : lopatka@mail.ru
ФИО : Пурмель Игорь Владимирович
Дата рождения:
12. 12. 1962
Место рождения: Москва
Адрес фактического проживания:
Москва, Набережная 54-52
Сведения о работе: трудоустроен, инженер, 20 лет
Наличие судимости: судим
Серия, номер паспорта : 45 77 357781
Кем выдан паспорт : ОВД «Коломенский»
Когда выдан паспорт : 08.03.2010
Годовой доход: 300 000
Альтернатива №14
Псевдоним : losyara1975
Дата регистрации : 21.05.2001
Номер телефона :
8 903 482 42 17
Адрес электронной почты :
guro@mail.ru
ФИО :
Митрофанов Алексей Владимирович
Дата рождения:
12. 10. 1975
Место рождения: Москва
Адрес фактического проживания:
Москва,
Набережная 55-130
Сведения о работе: трудоустроен, полицейский, 10 лет
Наличие судимости: не судим
Серия, номер паспорта : 44 00 787251
Кем выдан паспорт : ОВД «Перово»
Когда выдан паспорт : 08.10.2000
Годовой доход: 500 000
Альтернатива №15
Псевдоним : knyaz
Дата регистрации : 11.02.2006
Номер телефона :
8 905 333 74 18
Адрес электронной почты :
knyaz@mail.ru
ФИО : Мышкин Лев Николаевич
Дата рождения:
10. 10. 1970
Место рождения: Москва
Адрес фактического проживания:
Москва,
Изюмская 21-1-78
Сведения о работе: трудоустроен, менеджер, 5 лет
Наличие судимости: не судим
Серия, номер паспорта : 44 04 148851
Кем выдан паспорт : ОВД «Измайлово»
Когда выдан паспорт : 08.05.2004
Годовой доход : 500 000
Альтернатива №16
Псевдоним : Zidan
Дата регистрации : 13.04.2009
Номер телефона :
8 915 254 54 78
Адрес электронной почты: nekto@gmail.ru
ФИО : Птицын Иван Петрович
Дата рождения:
10. 12. 1965
Место рождения: Москва
Адрес фактического проживания:
Москва,
Смоленская 19-19
Сведения о работе: трудоустроен, кассир, 15 лет
Наличие судимости: условная
Серия, номер паспорта : 44 03 144242
Кем выдан паспорт : ОВД «Лефортово»
Когда выдан паспорт : 08.07.2003
Годовой доход: 320 000
Альтернатива №17
Псевдоним : Brat
Дата регистрации : 03.11.2001
Номер телефона :
8 915 754 44 64
Адрес электронной почты:
booyan@gmail.ru
ФИО :
Рогожин Парфен Семенович
Дата рождения:
09. 05. 1969
Место рождения: Москва
Адрес фактического проживания:
Москва,
Смоленская 9-178
Сведения о работе: трудоустроен, предприниматель, 4 года
Наличие судимости: не судим
Серия, номер паспорта : 44 05 144242
Кем выдан паспорт : ОВД «Можайский»
Когда выдан паспорт : 18.07.2005
Годовой доход: 1300 000
Альтернатива №18
Псевдоним : Хирург
Дата регистрации : 12.06.2004
Номер телефона :
8 985 777 65 14
Адрес электронной почты:
vrach@mail.ru
ФИО :
Таранов Федор Васильевич
Дата рождения:
29. 07. 1981
Место рождения: Москва
Адрес фактического проживания:
Москва, Юбилейная 23
Сведения о работе: трудоустроен, фельдшер, 3 года
Наличие судимости: не судим
Серия, номер паспорта : 44 02 957942
Кем выдан паспорт : ОВД «Бутово»
Когда выдан паспорт : 28.12.2002
Годовой доход: 240 000
Альтернатива №19
Псевдоним : Вальс
Дата регистрации : 14.06.2012
Номер телефона :
8 915 747 79 30
Адрес электронной почты:
tanec@gmail.com
ФИО : Смирнова Наталья Андреевна
Дата рождения: 15.08.1950
Место рождения: Москва
Адрес фактического проживания:
Москва, Юбилейный проезд 7
Сведения о работе: трудоустроен, танцовщица, 30 лет
Наличие судимости: судима
Серия, номер паспорта : 47 02 943172
Кем выдан паспорт : ОВД «Кунцево»
Когда выдан паспорт : 01.07.2002
Годовой доход: 250 000
Приложение 2
Текст программы
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QMessageBox>
#include <QFile>
#include <QTextStream>
#include <string>
#include <iostream>
#include <QDate>
#include <math.h>
char situation_1[] = {1,1,1,1,1};
char situation_2[] = {2,1,1,2,2};
char situation_3[] = {2,2,2,2,2};
char situation_4[] = {3,2,3,3,2};
char situation_5[] = {3,3,3,3,3};
//********************* подсказка оператору ***********************
QString situationInfo[5];
int readSqlSetting(dbSettingMySql *setting)
{
QFile fileSetting("config.cfg");
QTextStream fileStream(&fileSetting);
if(!fileSetting.open(QIODevice::ReadOnly | QIODevice::Text))
{
QMessageBox::critical(NULL, "Ошибка", "Не удалось открыть файл настроек");
return ERR_CRITICAL;;
}
// пропуск строки коментария
fileStream.readLine();
//чтение строки настроек
strcpy_s(setting->host, 128, fileStream.readLine().toLocal8Bit().data());
fileStream.readLine();
// пропуск строки коментария
fileStream.readLine();
//чтение строки настроек
strcpy_s(setting->login, 128, fileStream.readLine().toLocal8Bit().data());
fileStream.readLine();
// пропуск строки коментария
fileStream.readLine();
//чтение строки настроек
strcpy_s(setting->password, 128, fileStream.readLine().toLocal8Bit().data());
fileStream.readLine();
// пропуск строки коментария
fileStream.readLine();
//чтение строки настроек
strcpy_s(setting->nameDB, 128, fileStream.readLine().toLocal8Bit().data());
fileStream.readLine();
// пропуск строки коментария
fileStream.readLine();
//чтение строки настроек
strcpy_s(setting->nameTablClients, 128, fileStream.readLine().toLocal8Bit().data());
fileStream.readLine();
// пропуск строки коментария
fileStream.readLine();
//чтение строки настроек
strcpy_s(setting->nameTablCLientsData, 128, fileStream.readLine().toLocal8Bit().data());
fileStream.readLine();
// пропуск строки коментария
fileStream.readLine();
//чтение строки настроек
strcpy_s(setting->nameTablVariantAccessRight, 128, fileStream.readLine().toLocal8Bit().data());
//закрытие файла
fileSetting.close();
return 0;
}
int writeSqlSetting(dbSettingMySql setting)
{
QFile fileSetting("config.cfg");
QTextStream fileStream(&fileSetting);
if(!fileSetting.open(QIODevice::WriteOnly | QIODevice::Text | QIODevice::Truncate))
{
QMessageBox::critical(NULL, "Ошибка", "Не удалось открыть файл настроек");
return ERR_CRITICAL;;
}
// запись строки коментария
fileStream << "#host" << endl;
//запись строки настроек
fileStream << setting.host << endl;
fileStream << endl;
// запись строки коментария
fileStream << "#login" << endl;
//запись строки настроек
fileStream << setting.login << endl;
fileStream << endl;
// запись строки коментария
fileStream << "#password" << endl;
//запись строки настроек
fileStream << setting.password << endl;
fileStream << endl;
// запись строки коментария
fileStream << "#nameDB" << endl;
//запись строки настроек
fileStream << setting.nameDB << endl;
fileStream << endl;
// запись строки коментария
fileStream << "#nameTablClients" << endl;
//запись строки настроек
fileStream << setting.nameTablClients << endl;
fileStream << endl;
// запись строки коментария
fileStream << "#nameTablCLientsData" << endl;
//запись строки настроек
fileStream << setting.nameTablCLientsData << endl;
fileStream << endl;
// запись строки коментария
fileStream << "#nameTablVariantAccessRight" << endl;
//запись строки настроек
fileStream << setting.nameTablVariantAccessRight << endl;
fileStream << endl;
//закрытие файла
fileSetting.close();
return 0;
}
int dbSqlStart(dbSettingMySql *setting)
{
/*
if(setting->MySqlConnectDB == NULL)
{
QMessageBox::critical(NULL, "Ошибка", "Не удалось создать SQL подключение");
return ERR_CRITICAL;
}
*/
if(!mysql_real_connect(setting->MySqlConnectDB, setting->host, setting->login, setting->password, setting->nameDB, NULL, NULL, 0))
{
// Если нет возможности установить соединение с сервером
// базы данных выводим сообщение об ошибке
QMessageBox::critical(NULL, "Ошибка", "Сервер или база данных не доступны");
return ERR_CONNECT;
}
//результат запроса
MYSQL_RES *res;
//строка
//MYSQL_ROW row;
// Проверка существования таблицы
QString query("show tables like '");
query += QString(setting->nameTablClients) + "'";
if (mysql_query(setting->MySqlConnectDB, query.toLocal8Bit().data()))
{
QMessageBox::critical(NULL, "Ошибка", mysql_error(setting->MySqlConnectDB));
}
res = mysql_store_result(setting->MySqlConnectDB);
int colRow = (int)mysql_num_rows(res);
std::cerr << "\ncount: " << colRow << endl;
if(colRow < 1)
{
QString tmp("Табица \"");
tmp += QString(setting->nameTablClients);
tmp += QString("\" недоступна, проверьте имена таблиц");
QMessageBox::critical(NULL, "Ошибка", tmp );
return ERR_CRITICAL;
}
// Проверка существования таблицы
query = "show tables like '";
query += QString(setting->nameTablCLientsData) + "'";
if (mysql_query(setting->MySqlConnectDB, query.toLocal8Bit().data()))
{
QMessageBox::critical(NULL, "Ошибка", mysql_error(setting->MySqlConnectDB));
}
res = mysql_store_result(setting->MySqlConnectDB);
colRow = (int)mysql_num_rows(res);
std::cerr << "\ncount: " << colRow << endl;
if(colRow < 1)
{
QString tmp("Табица \"");
tmp += QString(setting->nameTablCLientsData);
tmp += QString("\" недоступна, проверьте имена таблиц");
QMessageBox::critical(NULL, "Ошибка", tmp );
return ERR_CRITICAL;
}
//установка русской кодировки
//mysql_query(setting->MySqlConnectDB, "SET NAMES 'utf8'");
//mysql_query(setting->MySqlConnectDB, "SET CHARACTER SET 'utf8'");
mysql_query(setting->MySqlConnectDB, "SET NAMES 'cp1251'");
mysql_query(setting->MySqlConnectDB, "SET CHARACTER SET 'cp1251'");
return 0; //OK
}
int computeSituation(userDataForSituation dataSituation, char *situationCoeff)
{
QDate res;
//******** время регистрации в системе *************************************
res.fromJulianDay(QDate::currentDate().toJulianDay() - dataSituation.dateReg.toJulianDay());
if(res.year() > 1)
{
situationCoeff[0] = 3;
}
else if(res.month() < 1)
{
situationCoeff[0] = 1;
}
else
{
situationCoeff[0] = 2;
}
//******** судимость *************************************
if(dataSituation.conviction == 0)
{
situationCoeff[1] = 3;
}
else if(dataSituation.conviction == 1)
{
situationCoeff[1] = 2;
}
else if(dataSituation.conviction == 2)
{
situationCoeff[1] = 1;
}
else
{
-1;
}
//******** время работы на последнем месте *************************************
if(dataSituation.dateWorking.isNull())
{
res.fromJulianDay(QDate::currentDate().toJulianDay() - dataSituation.dateWorking.toJulianDay());
if(res.year() > 3)
{
situationCoeff[2] = 3;
}
else if(res.year() < 3)
{
situationCoeff[2] = 2;
}
else
{
-1;
}
}
else
{
situationCoeff[3] = 1;
}
//******** возраст *************************************
res.fromJulianDay(QDate::currentDate().toJulianDay() - dataSituation.dateBurstDay.toJulianDay());
if(res.year() < 18 || res.year() > 70)
{
situationCoeff[3] = 1;
}
else if(res.year() < 25 || res.year() > 60)
{
situationCoeff[3] = 2;
}
else
{
situationCoeff[3] = 3;
}
//******** годовой доход т.р. *************************************
if(dataSituation.annualIncome >= 500)
{
situationCoeff[4] = 3;
}
else if(dataSituation.annualIncome < 200)
{
situationCoeff[4] = 1;
}
else
{
situationCoeff[4] = 2;
}
return 0;
}
int getCoef(userDataForSituation dataSituation)
{
char coeff[5];
computeSituation(dataSituation, coeff);
std::cerr << "coeff " << (int)coeff[0] << (int)coeff[1] << (int)coeff[2] << (int)coeff[3] << (int)coeff[4] << "\n";
float distance1 = sqrt(pow((float)situation_1[0]-(float)coeff[0], 2) + pow((float)situation_1[1]-(float)coeff[1], 2) + \
pow((float)situation_1[2]-(float)coeff[2], 2) + pow((float)situation_1[3]-(float)coeff[3], 2) + \
pow((float)situation_1[4]-(float)coeff[4], 2));
float distance2 = sqrt(pow((float)situation_2[0]-(float)coeff[0], 2) + pow((float)situation_2[1]-(float)coeff[1], 2) + \
pow((float)situation_2[2]-(float)coeff[2], 2) + pow((float)situation_2[3]-(float)coeff[3], 2) + \
pow((float)situation_2[4]-(float)coeff[4], 2));
float distance3 = sqrt(pow((float)situation_3[0]-(float)coeff[0], 2) + pow((float)situation_3[1]-(float)coeff[1], 2) + \
pow((float)situation_3[2]-(float)coeff[2], 2) + pow((float)situation_3[3]-(float)coeff[3], 2) + \
pow((float)situation_3[4]-(float)coeff[4], 2));
float distance4 = sqrt(pow((float)situation_4[0]-(float)coeff[0], 2) + pow((float)situation_4[1]-(float)coeff[1], 2) + \
pow((float)situation_4[2]-(float)coeff[2], 2) + pow((float)situation_4[3]-(float)coeff[3], 2) + \
pow((float)situation_4[4]-(float)coeff[4], 2));
float distance5 = sqrt(pow((float)situation_5[0]-(float)coeff[0], 2) + pow((float)situation_5[1]-(float)coeff[1], 2) + \
pow((float)situation_5[2]-(float)coeff[2], 2) + pow((float)situation_5[3]-(float)coeff[3], 2) + \
pow((float)situation_5[4]-(float)coeff[4], 2));
float resDistance = 100000; //заведомо максимальное значение
int coef;
if(resDistance > distance1){ resDistance = distance1; coef = 1; }
if(resDistance > distance2){ resDistance = distance2; coef = 2; }
if(resDistance > distance3){ resDistance = distance3; coef = 3; }
if(resDistance > distance4){ resDistance = distance4; coef = 4; }
if(resDistance > distance5){ resDistance = distance5; coef = 5; }
return coef;
}
//************************* AppLogic.c****************************
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
// Устанвка свойств первой таблицы
model = new QStandardItemModel(0,5,this);
model->setHorizontalHeaderItem(0, new QStandardItem(QString("Номер\nучастника")));
model->setHorizontalHeaderItem(1, new QStandardItem(QString("Псевдоним")));
model->setHorizontalHeaderItem(2, new QStandardItem(QString("Номер\nтелефона")));
model->setHorizontalHeaderItem(3, new QStandardItem(QString("Электронная\nпочта")));
model->setHorizontalHeaderItem(4, new QStandardItem(QString("Коэффициент\nдоверия")));
ui->tableView->setModel(model);
ui->tableView->horizontalHeader()->setStretchLastSection(true);
ui->tableView->verticalHeader()->setDefaultSectionSize(20);
ui->tableView->setContextMenuPolicy(Qt::CustomContextMenu);
//ui->tableView->setEnabled(false);
// Установка свойств второй таблицы
model2 = new QStandardItemModel(0,2,this);
ui->tableView_2->setModel(model2);
ui->tableView_2->horizontalHeader()->setStretchLastSection(true);
ui->tableView_2->verticalHeader()->setDefaultSectionSize(20);
model2->setHorizontalHeaderItem(0, new QStandardItem(QString("Поле")));
model2->setHorizontalHeaderItem(1, new QStandardItem(QString("Данные")));
ui->tableView_2->horizontalHeader()->setDefaultSectionSize(200);
//ui->tableView_2->setEnabled(false);
/*
model.setHorizontalHeaderLabels(
QStringList() << QApplication::translate("nestedlayouts", "Name")
<< QApplication::translate("nestedlayouts", "Office"));
QList<QStringList> rows = QList<QStringList>()
<< (QStringList() << "Verne Nilsen" << "123")
<< (QStringList() << "Carlos Tang" << "77")
<< (QStringList() << "Bronwyn Hawcroft" << "119")
<< (QStringList() << "Alessandro Hanssen" << "32")
<< (QStringList() << "Andrew John Bakken" << "54")
<< (QStringList() << "Vanessa Weatherley" << "85")
<< (QStringList() << "Rebecca Dickens" << "17")
<< (QStringList() << "David Bradley" << "42")
<< (QStringList() << "Knut Walters" << "25")
<< (QStringList() << "Andrea Jones" << "34");
foreach(QStringList row, rows)
{
QList<QStandardItem *> items;
foreach (QString text, row)
items.append(new QStandardItem(text));
model.appendRow(items);
} */
//****************Настройка базы данных*******************************
//инициализация структуры
mysql_init(&dbConectMySql);
//сохранение адреса dbConectMySql в настройки
dbSetting.MySqlConnectDB = &dbConectMySql;
//загрузка настроек из файла
readSqlSetting(&dbSetting);
//функция проверки доступности БД
dbSqlStart(&dbSetting);
memoListTable.append(QString("Номер в базе"));
memoListTable.append(QString("Фамилия"));
memoListTable.append(QString("Имя"));
memoListTable.append(QString("Отчество"));
memoListTable.append(QString("Дата рождения"));
memoListTable.append(QString("Место рождения"));
memoListTable.append(QString("Номер паспорта"));
memoListTable.append(QString("Дата выдачи паспорта"));
memoListTable.append(QString("Место выдачи паспорта"));
memoListTable.append(QString("Судимость"));
memoListTable.append(QString("Адрес места работы"));
memoListTable.append(QString("Годовой доход т.р."));
memoListTable.append(QString("Степень доверия"));
memoListTable.append(QString("Предоставление кредита"));
memoListTable.append(QString("Покупки в магазинах"));
memoListTable.append(QString("Банковские операции"));
memoListTable.append(QString("Размер предоставляемого кредита"));
situationInfo[4] = "Полное доверие = {3,3,3,3,3}\n"
"- может брать/давать кредит\n"
"- может оплачивать интернет услуги\n"
"- может выводить средства\n"
"- лимит 10000 $";
situationInfo[3] = "Достаточное доверие = {3,2,3,3,2}\n"
"- не может брать/давать кредит\n"
"- может оплачивать интернет услуги\n"
"- может выводить средства\n"
"- лимит 5000 $";
situationInfo[2] = "Средний уровень доверия = {2,2,2,2,2}\n"
"- не может брать/давать кредит\n"
"- может оплачивать интернет услуги\n"
"- может выводить средства\n"
"- лимит 1000$ долларов";
situationInfo[1] = "Низкий уровень доверия = {2,1,1,2,2}\n"
"- не может брать/давать кредит\n"
"- может оплачивать интернет услуги\n"
"- может выводить средства\n"
"- лимит 500 баксов";
situationInfo[0] = "Отсутствие доверия = {1,1,1,1,1}\n"
"- не может брать/давать кредит\n"
"- может оплачивать интернет услуги\n"
"- не может выводить средства\n"
"- лимит 0";
}
MainWindow::~MainWindow()
{
delete ui;
delete model;
delete model2;
mysql_close(&dbConectMySql);
memoListTable.clear();
}
// ПОИСК В БД
void MainWindow::on_commandLinkButton_pressed()
{
QString query("select idclients, login, tel, email, accessRights from clients join clientsData on clients.idclients = clientsdata.idclient ");
MYSQL_RES *res;
MYSQL_ROW row;
int isWheare = 0;
QString search;
//Фамилия
if(ui->lineEdit->text().length() > 2)
{
if(isWheare) {search.append(",");}
isWheare = 1;
search.append(" family = \"" + ui->lineEdit->text() + "\"");
}
else if(ui->lineEdit_2->text().length() > 2)
{
if(isWheare) {search.append(",");}
isWheare = 1;
search.append(" name = \"" + ui->lineEdit_2->text() + "\"");
}
else if(ui->lineEdit_3->text().length() > 2)
{
if(isWheare) {search.append(",");}
isWheare = 1;
search.append(" lastName = \"" + ui->lineEdit_3->text() + "\"");
}
else if(ui->lineEdit_4->text().length() > 2)
{
if(isWheare) {search.append(",");}
isWheare = 1;
search.append(" passportNum = \"" + ui->lineEdit_4->text() + "\"");
}
else if(ui->lineEdit_5->text().length() > 2)
{
if(isWheare) {search.append(",");}
isWheare = 1;
search.append(" email = \"" + ui->lineEdit_5->text() + "\"");
}
else if(ui->comboBox->currentIndex() > 0)
{
if(isWheare) {search.append(",");}
isWheare = 1;
search.append(" accessRights = \"" + QString::number(ui->comboBox->currentIndex()) + "\"");
}
// Добавление параметров поиска
if(isWheare)
{
query += " AND " + search;
}
if (mysql_query(&dbConectMySql, query.toLocal8Bit().data()))
{
QMessageBox::critical(NULL, "Ошибка", mysql_error(&dbConectMySql));
}
res = mysql_store_result(&dbConectMySql);
if(mysql_num_rows(res) < 1)
{
std::cerr << "\nSIZE RETURN QUERY1 < 0" << endl;
}
//удаление предыдущего результата
model->clear();
// вывод результата запроса
QList<QStandardItem *> itemsTableTop;
while(row = mysql_fetch_row(res))
{
for (unsigned int i=0 ; i < mysql_num_fields(res); i++)
{
itemsTableTop.append(new QStandardItem(row[i]));
std::cerr<<row[i] << " ";
}
model->appendRow(itemsTableTop);
itemsTableTop.clear();
}
ui->textEdit->setText(query);// return;
return;
}
void MainWindow::on_tableView_pressed(const QModelIndex &index)
{
userDataForSituation DataSituation;
//QModelIndex index;
if(model->rowCount() < 1){ return; }
QString idClientData = model->index(index.row(), 0).data().toString();
//формирование запроса на выборку
QString query("SELECT idclient, family, name, "
"lastName, dateBD, locationBD, passportNum, "
"passportDate, passportEmit, conviction, "
"jobAddress, annualIncome, confidence, giveCredit, PayAtTheStore, "
"banking, giveCreditSumRUR "
"FROM " + QString(dbSetting.nameTablCLientsData) + " join"
" " + QString(dbSetting.nameTablVariantAccessRight) + " ON "
" " + QString(dbSetting.nameTablCLientsData) + ".idClient = \"" + idClientData + \
"\" AND " + QString(dbSetting.nameTablVariantAccessRight) + ".idvariantAccessRight = " \
+ QString(dbSetting.nameTablCLientsData) + ".idCLient" );
ui->textEdit->setText(query);// return;
MYSQL_RES *res;
MYSQL_ROW row;
if (mysql_query(&dbConectMySql, query.toLocal8Bit().data()))
{
QMessageBox::critical(NULL, "Ошибка", mysql_error(&dbConectMySql));
return;
}
res = mysql_store_result(&dbConectMySql);
if(mysql_num_rows(res) < 1)
{
std::cerr << "\nSIZE RETURN QUERY1 < 0" << endl;
}
//удаление предыдущего результата
model2->clear();
// вывод результата запроса
QList<QStandardItem *> itemsTableTop;
QListIterator<QString> strDataIter(memoListTable);
while(row = mysql_fetch_row(res))
{
for (unsigned int i=0 ; i < mysql_num_fields(res); i++)
{
switch(i)
{
case 17: //дата регистрации в системе
DataSituation.dateReg = QDate::fromString(QString::fromLocal8Bit( row[i]), Qt::ISODate); // YYYY-MM-DD
break;
case 9: // судимость
DataSituation.conviction = (char)QString::fromLocal8Bit( row[i]).toInt();
break;
case 18: // стаж на последнем месте работы
DataSituation.dateWorking = QDate::fromString(QString::fromLocal8Bit( row[i]), Qt::ISODate); // YYYY-MM-DD
break;
case 4: // возраст
DataSituation.dateBurstDay = QDate::fromString(QString::fromLocal8Bit( row[i]), Qt::ISODate); // YYYY-MM-DD
break;
case 11: // годовой доход
DataSituation.annualIncome = QString::fromLocal8Bit( row[i]).toInt();
break;
default:
break;
}
itemsTableTop.append(new QStandardItem(strDataIter.next()));
if(i < 13 || i > 15)
{
itemsTableTop.append(new QStandardItem(QString::fromLocal8Bit( row[i])));
}
else
{
QString tmp;
if(QString::fromLocal8Bit( row[i]) == "0")
{
tmp = "Нет";
}
else
{
tmp = "Да";
}
itemsTableTop.append(new QStandardItem(tmp));
}
model2->appendRow(itemsTableTop);
itemsTableTop.clear();
}
}
//вычисление степени доверия
int coefUser = getCoef(DataSituation);
model2->setItem(12,2,&QStandardItem(QString::number(coefUser)));
// информация оператору
ui->textEdit_2->setText(situationInfo[coefUser]);
}
int MainWindow::dbDeleteClientData(dbSettingMySql *setting, int idClient)
{
//формирование запроса на выборку
QString query("DELETE FROM " + QString(setting->nameTablClients) + " WHERE "
"idClients = " + QString::number(idClient));
ui->textEdit->setText(query);// return;
QString query2("DELETE FROM " + QString(setting->nameTablCLientsData) + " WHERE "
"idClient = " + QString::number(idClient));
ui->textEdit->setText(query2);// return;
MYSQL_RES *res;
MYSQL_ROW row;
if (mysql_query(&dbConectMySql, query.toLocal8Bit().data()))
{
QMessageBox::critical(NULL, "Ошибка", mysql_error(&dbConectMySql));
return ERR_QUERY;
}
if (mysql_query(&dbConectMySql, query2.toLocal8Bit().data()))
{
QMessageBox::critical(NULL, "Ошибка", mysql_error(&dbConectMySql));
return ERR_QUERY;
}
return 0;
}
void MainWindow::on_tableView_customContextMenuRequested(const QPoint &pos)
{
if(model->rowCount() < 1) { return; }
int selectedRow = ui->tableView->selectionModel()->currentIndex().row();
//numClient - ID выбранного клиента
QString idClientData = model->index(selectedRow, 0).data().toString();
QPushButton *popupButton = new QPushButton/*(tr("Pop&up Button"))*/;
QMenu *menu = new QMenu(this);
menu->addAction("Обновить данные клиента");
menu->insertSeparator(0);
menu->addAction("Удалить данные клиента");
popupButton->setMenu(menu);
QAction* selectedItem;
selectedItem = menu->exec(QCursor::pos());
if(selectedItem == NULL)
{
return;
}
if(selectedItem->text() == "Обновить данные клиента")
{
std::cerr << "0";
return;
}
if(selectedItem->text() == "Удалить данные клиента")
{
std::cerr << "1";
dbDeleteClientData(&dbSetting, idClientData.toInt());
model->removeRow(selectedRow);
return;
}
}
Список использованной литературы
[1] http://knowledge.allbest.ru/bank/2c0b65625a3bd68a4c43a88421306c37_0.html
[2] www.studmed.ru/docs/document24164/реферат-вербальный-анализ-принятия-решений
[3] http://lissianski.narod.ru/dwarch/dwarch.html
[4] http://ru.wikipedia.org/wiki/Метод Дельфи
[5] Системы поддержки принятия решений, конспект лекций МИЭМ
[6] www.rusdoc.ru/articles/elektrodengi--obzor_elektronnyx_platezhnyx_sistem_interneta
[7] Компьютерные технологии в бизнесе, региональный финансово экономический институт, Курск 2011
[8] http://ru.wikipedia.org/wiki/EasyPay
[9] ru.wikipedia.org/wiki/Иерархическая_модель_данных
[10] Информационные системы поддержки принятия управленческих решений. Конспект лекций. - Самара.:ГОУВПО ПГУТИ , 2011
[11] Атанасян Л.С., Бутузов В.Ф., Кадомцев С.Б., Киселева Л.С., Позняк Э.Г. Геометрия. Учебник для 10-11 классов средней школы.
Размещено на Allbest.ru
Подобные документы
Система поддержки принятия решений "Мыслитель" и метод, заложенный в её основу. Порядок работы в программе: новая задача, составление списка альтернатив, списка критериев их оценки, сравнение критериев по степени важности, попарное сравнение альтернатив.
отчет по практике [719,2 K], добавлен 08.03.2016Классификация систем поддержки принятия решений. Сравнительный анализ методик для оценки рисков розничного кредитования. Структура системы поддержки принятия решений, формирование начальной базы знаний. Проектирование базы данных информационной системы.
дипломная работа [1,9 M], добавлен 10.07.2017Методы решения проблем, возникающих на стадиях и этапах процесса принятия решений, их реализация в информационных системах поддержки принятия решений (СППР). Назначение СППР, история их эволюции и характеристика. Основные типы СППР, области их применения.
реферат [389,3 K], добавлен 22.11.2016Обслуживание двух встречных потоков информации. Структура информационных систем. Разработка структуры базы данных. Режимы работы с базами данных. Четыре основных компонента системы поддержки принятия решений. Выбор системы управления баз данных.
курсовая работа [772,0 K], добавлен 21.04.2016Рассмотрение понятия и истории возникновения систем поддержки принятия решения. Приспособленность информационных систем к задачам повседневной управленческой деятельности. Понятие термина "интеллектуальный анализ данных". Методика извлечения знаний.
реферат [79,8 K], добавлен 14.04.2015Описание предметной области автоматизации. Программа обследования и план-график выполнения работ на предпроектной стадии. Метод группового принятия решения с помощью кластеризации экспертных оценок альтернатив. Построение диаграммы потоков данных DFD.
дипломная работа [375,8 K], добавлен 07.12.2014Концепция систем поддержки принятия решений. Диапазон применения Analytica 2.0. Программное обеспечение количественного моделирования. Графический интерфейс для разработки модели. Основные способы моделирования. Диаграмма влияния и дерево решений.
контрольная работа [1,1 M], добавлен 08.09.2011Автоматизированная информационная система и её составляющие компоненты. Системы обработки данных и поддержки принятия решений. Информационно-логические и расчетные системы, их назначение и функции. Отраслевые, территориальные и межотраслевые АИС.
курсовая работа [420,3 K], добавлен 05.05.2014Проектирование системы принятия решения для аттестации знаний абитуриента на основе тестирования. Особенности создания базы данных и плана перевозок с минимизацией затрат. Разработка информационно-логической модели предметной области "Книга" с атрибутами.
курсовая работа [7,9 M], добавлен 10.10.2012Типы административных информационных систем: системы генерации отчетов, системы поддержки принятия решений, системы поддержки принятия стратегических решений. Сортировка и фильтрация списков в Microsoft Excel. Работа с базами данных в Microsoft Access.
контрольная работа [6,0 M], добавлен 19.11.2009