Автоматическая категоризация клиентов коучинга
Описание предметной области коучинга, его основные понятия. Разработка, реализация прикладной программы на базе WindowsForms. Описание пользовательских классов и реализованных форм. Описание принципа работы программы, структур хранения и получения данных.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 09.09.2012 |
Размер файла | 1,3 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
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
Подобные документы
Разработка и реализация прикладной программы, основанной на методике "Личностные кластеры" Стива Менсинга. Категоризация психологических проблем клиента. Предметная область коучинга, основные понятия. Средство для помощи в работе профессиональных коучей.
курсовая работа [2,2 M], добавлен 12.09.2012Разработка базы данных для предметной области "Подразделения предприятия – Рабочие помещения". Описание используемых данных, предметной области и результатной информации. Создание запросов, форм и отчетов в базе данных. Описание построения диаграмм.
курсовая работа [5,6 M], добавлен 24.07.2014Описание предметной области "Спортивные соревнования". Проектирование концептуальной и логической модели данных. Добавление не вошедших в ER–диаграмму атрибутов. Разработка SQL запросов к базе данных. Описание работы, тестирование клиентского приложения.
курсовая работа [1,1 M], добавлен 24.11.2014Назначение программы "Учёт пациентов" и её подсистемы. Диаграмма классов предметной области, диаграмма последовательностей, описание автоматизируемых функций и характеристика функциональной структуры. Физическая схема и описание таблиц базы данных.
дипломная работа [3,3 M], добавлен 15.11.2016Реализация программы, разработанной в среде Turbo C++. Обработка динамической структуры данных, содержащей сведения об авторах книг. Моделирование работы со структурой как с базой данных. Метод сортировки и описание работы пользовательских подпрограмм.
курсовая работа [124,3 K], добавлен 23.12.2010Существующие альтернативы программы. Описание формул для выкроек, используемых в разработке. Описание разрабатываемой программы, а также структура ее интерфейса. Детальное описание возможностей и спецификация, функциональные особенности программы.
курсовая работа [427,4 K], добавлен 10.10.2015Создание программы для обработки информации об объектах предметной области "Бытовая техника" в среде визуального программирования C++. Иерархия родственных классов. Описание логической структуры программы. Реализация файлового ввода/вывода данных.
курсовая работа [711,4 K], добавлен 27.07.2014Изучение условий поставленной задачи и используемых данных для разработки программы хранения информации о рейсах поезда. Описание разработанных функций, листинга, блок-схем алгоритмов и дерева функции. Рассмотрение сценария диалога данной программы.
курсовая работа [532,7 K], добавлен 20.07.2014Разработка программы для автоматизации складского учета. Описание предметной области и технологии функционирования информационной системы. Физическое проектирование базы данных. Создание экранных форм ввода-вывода, отчетов, модулей для прикладных решений.
курсовая работа [3,6 M], добавлен 08.12.2013Описание предметной области и прототипа программного продукта. Математическая модель работы программы. Последовательность работы пользователя с программой. Зоны ответственности разработчиков. Программные коды и описание файлов готовой программы.
курсовая работа [4,5 M], добавлен 02.06.2016