"Автоматизированная система поддержки принятия решений по оценке степени доверия клиенту в системе электронных платежей" - umotnas.ru o_O
Главная
Поиск по ключевым словам:
страница 1 ... страница 4страница 5страница 6страница 7
Похожие работы
Название работы Кол-во страниц Размер
Лекция Системы поддержки принятия решений Тем Системы поддержки принятия... 1 101.41kb.
Анализ и разработка схемы принятия решений в организации 1 136.89kb.
О. Ю. Полянская Доверие в сфере электронных коммуникаций 17 2087.14kb.
Программа дисциплины «Информационные системы поддержки принятия решений» 1 294.46kb.
Система поддержки принятия решений многокритериального выбора на... 1 94.37kb.
Система поддержки принятия решений в рамках иаис вуза: цели, архитектура... 1 46.19kb.
Средства моделирования на основе темпоральных сетей петри для интеллектуальных... 1 103.04kb.
Принципы построения систем поддержки принятия решений для оценки... 1 91.04kb.
«Система поддержки принятия решений по выбору тура» 2 867.11kb.
Перспективы создания информационной системы поддержки принятия решений... 1 27.3kb.
Правила электронного документооборота с использованием системы iBank2... 1 227.36kb.
Некоммерческого партнерства «Челябинское региональное объединение... 1 86.08kb.
Викторина для любознательных: «Занимательная биология» 1 9.92kb.

"Автоматизированная система поддержки принятия решений по оценке степени доверия - страница №7/7

Приложение 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

#include

#include

#include

#include

#include

#include

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

//запись строки настроек

fileStream

fileStream
// запись строки коментария

fileStream

//запись строки настроек

fileStream

fileStream // запись строки коментария

fileStream

//запись строки настроек

fileStream

fileStream // запись строки коментария

fileStream

//запись строки настроек

fileStream

fileStream // запись строки коментария

fileStream

//запись строки настроек

fileStream

fileStream // запись строки коментария

fileStream

//запись строки настроек

fileStream

fileStream // запись строки коментария

fileStream

//запись строки настроек

fileStream

fileStream //закрытие файла

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 if(colRow

{

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 if(colRow

{

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()

{

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()

{

situationCoeff[2] = 2;



}

else


{

-1;


}

}

else



{

situationCoeff[3] = 1;

}
//******** возраст *************************************

res.fromJulianDay(QDate::currentDate().toJulianDay() - dataSituation.dateBurstDay.toJulianDay());

if(res.year() 70)

{

situationCoeff[3] = 1;



}

else if(res.year() 60)

{

situationCoeff[3] = 2;



}

else


{

situationCoeff[3] = 3;

}
//******** годовой доход т.р. *************************************

if(dataSituation.annualIncome >= 500)

{

situationCoeff[4] = 3;



}

else if(dataSituation.annualIncome

{

situationCoeff[4] = 1;



}

else


{

situationCoeff[4] = 2;

}
return 0;

}
int getCoef(userDataForSituation dataSituation)

{

char coeff[5];



computeSituation(dataSituation, coeff);
std::cerr 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()


QList rows = QList()

foreach(QStringList row, rows)

{

QList 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)

{

std::cerr

}
//удаление предыдущего результата

model->clear();


// вывод результата запроса

QList itemsTableTop;

while(row = mysql_fetch_row(res))

{

for (unsigned int i=0 ; i

{

itemsTableTop.append(new QStandardItem(row[i]));

std::cerr

}

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()
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)

{

std::cerr

}
//удаление предыдущего результата

model2->clear();


// вывод результата запроса

QList itemsTableTop;

QListIterator strDataIter(memoListTable);
while(row = mysql_fetch_row(res))

{

for (unsigned int i=0 ; 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 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()
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

return;

}
if(selectedItem->text() == "Удалить данные клиента")

{

std::cerr

dbDeleteClientData(&dbSetting, idClientData.toInt());

model->removeRow(selectedRow);

return;

}

}


Приложение 3. Графическая часть.



6.Список использованной литературы.

[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 классов средней школы.

[12] ru.wikipedia.org/wiki/Firebird

[13] www.coolreferat.com/Системы_электронных_платежей_интернета

[14].http://knowledge.allbest.ru/management

[15] Ларичев О.И. Теория и методы принятия решений, а так же хроника событий в Волшебных странах, Логос 2000

[16] ru.wikipedia.org/wiki/База_данных

[17] ru.wikipedia.org/wiki/Объектно-ориентированная_база_данных

[18] ru.wikipedia.org/wiki/Сетевая_модель_данных

[19] ru.wikipedia.org/wiki/Первичный_ключ

[20] ru.wikipedia.org/wiki/Microsoft_Access

[21] ru.wikipedia.org/wiki/MySQL



[22] ru.wikipedia.org/wiki/Microsoft_SQL_Server