Автоматическая категоризация клиентов коучинга
Разработка и реализация прикладной программы, основанной на методике "Личностные кластеры" Стива Менсинга. Категоризация психологических проблем клиента. Предметная область коучинга, основные понятия. Средство для помощи в работе профессиональных коучей.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 12.09.2012 |
Размер файла | 2,2 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
public static int Check_list_page = - 1; // номер листа - ограниченного списка аспектов, нужен для возможности перемещения между листами с отмеченными утверждениями
public static int Check_list_lastpage = 0; // последний номер достигнутого листа
public static int kol_vo_elem = 18; // размер листа, т.е. количество аспектов на одном листе
public static int Current_count = 0; // индекс последнего аспекта из таблицы Add_IDst
public static int Add_count = 0; // кол-во добавленных в лист аспектов
public static int Current_ran = 0; // текущий параметр для генерации случайных утверждений
public static int ID_user = 0; // комер текущего клиента
public static int cl_select = 5; // % порог который должны набрать кластеры чтобы попасть в вывод
public static TabPage [] Tab_Page = new TabPage [7]; // сохраняем коллекцию страниц Tab_Control
}
Приложение 2. Класс "Prog_Tool"
class Prog_Tool
{
public static Statement_cl get_list_statement (SqlDataReader dr_loc) // считываем информацию об аспектах
{
Statement_cl stat = new Statement_cl ();
stat. id_st = (int) dr_loc ["ID"];
stat. n_cl = (int) dr_loc ["Number_Cluster"];
stat. n_task [0] = (int) dr_loc ["Number_Task_1"];
stat. n_task [1] = (int) dr_loc ["Number_Task_2"];
stat. n_task [2] = (int) dr_loc ["Number_Task_3"];
stat. text = dr_loc ["Text"]. ToString ();
return stat;
}
public static void Initialize_sort_list_stat () // заполняем массив номерами аспектов из бд
{
SqlDataReader dr = Sql_Tool. Get_ID_statement ();
while (dr. Read ())
{
Declaration. sort_list_stat. Add ( (int) dr ["ID"]);
}
dr. Close ();
}
public static void Generate_Random_Key (bool f) // генерация случайной последовательности аспектов
{
if (f)
{
Random main_ran = new Random (); // для генерации определённой последовательности
Declaration. Current_ran = main_ran. Next (0, Declaration. count_cluster_stat - 1);
}
Random ran = new Random (Declaration. Current_ran); // для генерации последовательности зависящей от Current_ran
int a=0;
int i=0;
int buff=0;
Declaration. sort_list_stat. Clear (); // очистка массива аспектов
Prog_Tool. Initialize_sort_list_stat (); // заполняем массив номерами аспектов из бд
// затем перемешиваем их, и отправляем в бд
for (i = 0; i < Declaration. count_cluster_stat; i++)
{
a = ran. Next (0, Declaration. count_cluster_stat-1);
buff= (int) Declaration. sort_list_stat [a];
Declaration. sort_list_stat [a] = Declaration. sort_list_stat [i];
Declaration. sort_list_stat [i] = buff;
}
Sql_Tool. Add__Random_IDkey (); // запись последовательности в бд
Declaration. sort_list_stat. Clear ();
}
public static void Initialize_List_Answer () // инициализация массива ответов
{
Answer buff;
for (int i = 0; i < Declaration. count_cluster; i++)
{
buff = new Answer ();
Declaration. list_answer. Add (buff);
}
}
public static void Initialize_Check_stat_list () // инициализация массива хранящего листы
{
Check_statement buff;
for (int i = 0; i < Declaration. Check_list_lastpage; i++)
{
buff = new Check_statement ();
Declaration. check_list. Add (buff);
}
}
public static void Reset () // сброс данных
{
Sql_Tool. Clear_Table_Add_IDkey (); // очищаем таблицу сгенерированой последовательности
Declaration. list_answer. Clear (); // очищаем массив ответов
Declaration. list_stat. Clear (); // очистка массива текущих аспектов
Declaration. check_list. Clear (); // очищаем отметки на листах
Prog_Tool. Initialize_List_Answer (); // создаём массив пустого списка ответов
}
public static int [,] Sort_Answer (int f) // сортировка массива ответов для вывода списка кластеров и задач
{
Answer buffA; // буффер для объекта ответ
int [,] tmp = new int [1, 2];
int [,] sort_answer;
if (f==-1)
{
sort_answer = new int [Declaration. count_cluster, 2]; // i-кол-во утверждений попавших в кластер,j-номер кластера
for (int i = 0; i < Declaration. count_cluster; i++)
{
buffA = (Answer) Declaration. list_answer [i];
sort_answer [i, 0] = (int) Math. Round ( (double) buffA. count_answer / Declaration. count_cluster_stat * 100); // переводим кол-во утверждений в кластере в процент от общего числа утверждений
sort_answer [i, 1] = i;
}
}
else
{
buffA = (Answer) Declaration. list_answer [f];
sort_answer = new int [Declaration. count_task, 2]; // i-кол-во утверждений попавших в задачу,j-номер задачи
for (int i = 0; i < Declaration. count_task; i++)
{
sort_answer [i, 0] = (int) Math. Round ( (double) buffA. task_answer [i] / buffA. count_answer * 100); // переводим кол-во утверждений в task в процент от общего числа утверждений
sort_answer [i, 1] = i;
}
}
// сортировка массива по кол-ву пoпавших в кластер/задачу аспектов
for (int i = 0; i < sort_answer. GetLength (0); i++)
for (int j = sort_answer. GetLength (0) - 1; j > i; j--)
if (sort_answer [j-1,0] < sort_answer [j,0])
{
tmp [0,0] = sort_answer [j-1,0];
tmp [0,1] = sort_answer [j-1,1];
sort_answer [j-1,0] = sort_answer [j,0];
sort_answer [j-1,1] = sort_answer [j,1];
sort_answer [j,0] = tmp [0,0];
sort_answer [j,1] = tmp [0,1];
}
return sort_answer;
}
public static string GetPath () // получаем путь запускаемого файла
{
string fullAppName = Application. ExecutablePath; // Получает путь для исполняемого файла, запустившего приложение, включая исполняемое имя.
string fullAppPath = System. IO. Path. GetDirectoryName (fullAppName); // Возвращает для указанной строки пути сведения о каталоге.
return fullAppPath;
}
}
Приложение3. Класс "Sql_Tool".
public static class Sql_Tool
{
public static void Initialize_Sql_Tool () // настраиваем элементы БД
{
Declaration. cmd. Connection = Declaration. conn;
Declaration. dataAdapter. SelectCommand = Declaration. cmd;
Declaration. conn. Open ();
Declaration. cmd.commandType = CommandType. StoredProcedure;
}
public static void Close_Sql_Tool () // закрываем соединение
{
Declaration. conn. Close ();
}
public static SqlDataReader Read_Cluster (int a, int b) // читаем номера аспектов в промежутке индекса от [a,b]
{
Declaration. cmd. Parameters. Clear ();
SqlDataReader dr = null;
Declaration. cmd.commandText = "Get_ID";
Declaration. cmd. Parameters. AddWithValue ("@start_index", a);
Declaration. cmd. Parameters. AddWithValue ("@end_index", b);
dr = Declaration. cmd. ExecuteReader ();
return dr;
}
public static void Clear_Table_Add_IDkey () // очищаем таблицу хранящую случайную последовательность
{
Declaration. cmd. Parameters. Clear ();
Declaration. cmd.commandText = "Clear_Add_IDst";
Declaration. cmd. ExecuteNonQuery ();
}
public static void Add__Random_IDkey () // записываем случайную последователньость в бд
{
Declaration. cmd. Parameters. Clear ();
Declaration. cmd.commandText = "Add_IDst_In_Table";
for (int i = 0; i < Declaration. count_cluster_stat; i++)
{
Declaration. cmd. Parameters. AddWithValue ("@index", i);
Declaration. cmd. Parameters. AddWithValue ("@id", (int) Declaration. sort_list_stat [i]);
Declaration. cmd. ExecuteNonQuery ();
Declaration. cmd. Parameters. Clear ();
}
}
public static bool Save_User (string name,string password) // сохраняем информацию о клиенте
{
Declaration. cmd. Parameters. Clear ();
SqlDataReader dr = null;
Declaration. cmd.commandText = "Check_User";
Declaration. cmd. Parameters. AddWithValue ("@name", name);
dr = Declaration. cmd. ExecuteReader ();
if (dr. Read ()) // если имя уже занесено в таблицу то выводим сообщение
{
dr. Close ();
MessageBox. Show ("Такой пользователь уже существует!", "Предупреждение", MessageBoxButtons. OK, MessageBoxIcon. Warning);
return false;
}
else
{
dr. Close ();
Declaration. cmd. Parameters. Clear ();
Declaration. cmd.commandText = "Add_User";
Declaration. cmd. Parameters. AddWithValue ("@name", name);
Declaration. cmd. Parameters. AddWithValue ("@password", password);
Declaration. cmd. Parameters. AddWithValue ("@ran", Declaration. Current_ran);
Declaration. cmd. Parameters. AddWithValue ("@cur_count", Declaration. Current_count);
Declaration. cmd. Parameters. AddWithValue ("@check_l", Declaration. Check_list_page);
Declaration. cmd. Parameters. AddWithValue ("@check_l_last", Declaration. check_list. Count);
Declaration. cmd. ExecuteNonQuery ();
return true;
}
}
public static void Count () // получаем количество аспектов, кластеров и задач
{
Declaration. cmd. Parameters. Clear ();
SqlDataReader dr = null;
Declaration. cmd.commandText = "MyCount";
dr = Declaration. cmd. ExecuteReader ();
dr. Read ();
Declaration. count_cluster_stat = (int) dr ["max_st"];
Declaration. count_cluster = (int) dr ["max_cluster"];
Declaration. count_task = (int) dr ["max_task"];
dr. Close ();
}
public static void Save_Answer (string name) // сохраняем информацию об ответах клиента
{
Declaration. cmd. Parameters. Clear ();
SqlDataReader dr = null;
Answer list = new Answer ();
Declaration. cmd.commandText = "Check_User";
Declaration. cmd. Parameters. AddWithValue ("@name", name);
dr = Declaration. cmd. ExecuteReader ();
dr. Read ();
Declaration. ID_user = (int) dr ["ID"];
dr. Close ();
for (int i = 0; i < Declaration. count_cluster; i++)
{
list = (Answer) Declaration. list_answer [i];
if (list. count_answer! = 0)
{
Declaration. cmd. Parameters. Clear ();
Declaration. cmd.commandText = "Save_cl_check";
Declaration. cmd. Parameters. AddWithValue ("@id_cluster", i + 1);
Declaration. cmd. Parameters. AddWithValue ("@cluster_check", list. count_answer);
Declaration. cmd. Parameters. AddWithValue ("@id_user", Declaration. ID_user);
Declaration. cmd. ExecuteNonQuery ();
Declaration. cmd. Parameters. Clear ();
for (int j = 0; j < Declaration. count_task; j++)
{
if (list. task_answer [j]! = 0)
{
Declaration. cmd. Parameters. Clear ();
Declaration. cmd.commandText = "Save_an";
Declaration. cmd. Parameters. AddWithValue ("@id_cluster", i + 1);
Declaration. cmd. Parameters. AddWithValue ("@id_task", j + 1);
Declaration. cmd. Parameters. AddWithValue ("@task_check", list. task_answer [j]);
Declaration. cmd. Parameters. AddWithValue ("@id_user", Declaration. ID_user);
Declaration. cmd. ExecuteNonQuery ();
Declaration. cmd. Parameters. Clear ();
}
}
}
}
}
public static void Save_check_list () // сохраняем информацию, об отметках на листах
{
Declaration. cmd. Parameters. Clear ();
Check_statement list = new Check_statement ();
Declaration. cmd.commandText = "Save_ch_list";
for (int i = 0; i < Declaration. check_list. Count; i++)
{
list = (Check_statement) Declaration. check_list [i];
for (int j = 0; j < Declaration. kol_vo_elem; j++)
{
if (list. check_st_in_list [j])
{
Declaration. cmd. Parameters. AddWithValue ("@ID_l", i);
Declaration. cmd. Parameters. AddWithValue ("@ID_u", Declaration. ID_user);
Declaration. cmd. Parameters. AddWithValue ("@ID_s", j);
Declaration. cmd. ExecuteNonQuery ();
Declaration. cmd. Parameters. Clear ();
}
}
}
}
public static bool Load_User (string name, string password) // загружаем информацию о клиенте
{
string pass;
Declaration. cmd. Parameters. Clear ();
SqlDataReader dr = null;
Declaration. cmd.commandText = "Check_User";
Declaration. cmd. Parameters. AddWithValue ("@name", name);
dr = Declaration. cmd. ExecuteReader ();
if (dr. Read ()) // если имя существует в таблице
{
pass = (string) dr ["Password"];
if (pass == password)
{
Declaration. ID_user = (int) dr ["ID"];
Declaration. Current_ran = (int) dr ["Ran"];
Declaration. Current_count = (int) dr ["Current_count"];
Declaration. Check_list_page = (int) dr ["Check_list"];
Declaration. Check_list_lastpage = (int) dr ["Ch_l_last"];
dr. Close ();
return true;
}
else
{
MessageBox. Show ("Неправельное имя пользователя или пароль", "Ошибка", MessageBoxButtons. OK, MessageBoxIcon. Error);
dr. Close ();
return false;
}
}
else
{
dr. Close ();
MessageBox. Show ("Неправельное имя пользователя или пароль", "Ошибка", MessageBoxButtons. OK, MessageBoxIcon. Error);
return false;
}
}
public static void Load_Answer () // загрузка ответов клиента
{
Declaration. cmd. Parameters. Clear ();
SqlDataReader dr = null;
Answer list = new Answer ();
Declaration. cmd.commandText = "Load_an";
Declaration. cmd. Parameters. AddWithValue ("@id_us", Declaration. ID_user);
dr = Declaration. cmd. ExecuteReader ();
int a = 0;
while (dr. Read ())
{
if (a! = (int) dr ["ID_cluster"])
{
list = (Answer) Declaration. list_answer [ (int) dr ["ID_cluster"] - 1];
list. count_answer = (int) dr ["Cluster_check"];
}
list. task_answer [ (int) dr ["ID_task"] - 1] = (int) dr ["Task_check"];
a = (int) dr ["ID_cluster"];
}
dr. Close ();
}
public static void Load_check_list () // загрузка отметок на листах
{
Declaration. cmd. Parameters. Clear ();
SqlDataReader dr = null;
Check_statement list = new Check_statement ();
Declaration. cmd.commandText = "Load_ch_list";
Declaration. cmd. Parameters. AddWithValue ("@id_us", Declaration. ID_user);
dr = Declaration. cmd. ExecuteReader ();
while (dr. Read ())
{
list= (Check_statement) Declaration. check_list [ (int) dr ["ID_list"]];
list. check_st_in_list [ (int) dr ["ID_st"]] = true;
Declaration. check_list [ (int) dr ["ID_list"]] = list;
}
dr. Close ();
}
public static SqlDataReader Get_ID_statement () // получение номера аспекта
{
Declaration. cmd. Parameters. Clear ();
Declaration. cmd.commandText = "Get_ID_st";
return Declaration. cmd. ExecuteReader ();
}
public static void Del_user () // удаление клиента из бд
{
Declaration. cmd. Parameters. Clear ();
Declaration. cmd.commandText = "Delete_user";
Declaration. cmd. Parameters. AddWithValue ("@ID_us", Declaration. ID_user);
Declaration. cmd. ExecuteNonQuery ();
}
public static string Get_cl_text (int a,string b) // получение описания кластера
{
Declaration. cmd. Parameters. Clear ();
SqlDataReader dr = null;
string s = "";
Declaration. cmd.commandText = "GetDescriptionCluster";
Declaration. cmd. Parameters. AddWithValue ("@id_cl", a);
dr = Declaration. cmd. ExecuteReader ();
dr. Read ();
s = (string) dr [b];
dr. Close ();
return s;
}
public static string Get_task_text (int a) // получение описания задачи
{
Declaration. cmd. Parameters. Clear ();
SqlDataReader dr = null;
string s = "";
Declaration. cmd.commandText = "GetDescriptionTask";
Declaration. cmd. Parameters. AddWithValue ("@id_task", a);
dr = Declaration. cmd. ExecuteReader ();
dr. Read ();
s = (string) dr ["Description_text"];
dr. Close ();
return s;
}
}
Размещено на Allbest.ru
Подобные документы
Описание предметной области коучинга, его основные понятия. Разработка, реализация прикладной программы на базе WindowsForms. Описание пользовательских классов и реализованных форм. Описание принципа работы программы, структур хранения и получения данных.
курсовая работа [1,3 M], добавлен 09.09.2012Особенности дистанционного образования. Разработка электронного практикума по дисциплине "Методы и средства проектирования информационных систем и технологий". Предметная область, выделение информационных объектов. Разработка программного обеспечения.
дипломная работа [2,1 M], добавлен 27.10.2017Теоретические основы проектирования баз данных (БД). Учет расчетов с поставщиками как предметная область БД. Разработка алгоритма, защита БД. Особенности создания физической формы модели, интерфейса пользователя. Практические методы защиты созданной БД.
курсовая работа [1,5 M], добавлен 16.12.2014История зарождения кибернетики как науки, ее значение и основные причины развития. Кибернетический подход к изучению объектов различной природы. Познание и самообучение как важный признак кибернетики, ее направления развития и предметная область.
курсовая работа [77,3 K], добавлен 27.05.2013Разработка программы на языке Turbo Pascal, обеспечивающей работу пользователя в диалоговом режиме с возможностью выбора функций с помощью одноуровневого меню вертикального типа. Блок-схема и листинг программы, описание руководства пользователя.
курсовая работа [1,5 M], добавлен 17.03.2014Этапы разработки программных продуктов. Основные понятия и методы программирования. Разработка обучающей программы по технике безопасности при работе на ПК. Постановка и разработка модели задачи. Проектирование. Отладка и тестирование программы.
курсовая работа [3,8 M], добавлен 04.10.2008Синтаксически ориентированная трансляция: общие понятия; транслятор, интерпретатор, препроцессор. Программная реализация трансляции, основанной на структуре текста; идея Н. Хомского; языковые процессоры. Заголовочные файлы, алгоритмы и функции программы.
курсовая работа [734,3 K], добавлен 04.06.2013Анализ текущих бизнес-процессов при работе букмекерской конторы. Построение функциональных моделей предметной области и диаграмм потоков данных. Основные меры по реорганизации бизнес-процессов и разрешению противоречий. Разработка мобильных приложений.
курсовая работа [246,0 K], добавлен 10.01.2014Особенности разработки программ на языке Turbo Pascal на примере программы обработки массива данных с построением диаграммы. Функции программы и основные требования к ней. Состав входных и выходных данных. Использование предметной области "Садовод".
курсовая работа [789,1 K], добавлен 13.03.2013Разработка информационной системы "Больница" на основе Java EE-технологий. Проект и реализация трехслойного enterprise-приложения, работающего с базой данных больницы, его структура. Предметная область; визуализация архитектуры с помощью UML-диаграмм.
курсовая работа [2,0 M], добавлен 22.10.2012