Автоматическая категоризация клиентов коучинга

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

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

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