Автоматизированная система поддержки принятия решений

Требования к защите систем электронных платежей. Разновидности процедур, выполняемые лицом, принимающим решения. Методы иерархического упорядочивания альтернатив на заданном множестве критериев. Описание применения метода ОРКЛАСС, схема базы данных.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 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

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