зв'язку з базою даних В«Sql_Tool.Initialize_Sql_ToolВ», визначення кількості аспектів, кластерів і завдань В«Sql_Tool.CountВ», задається початковий вигляд елементів головної форми В«Change_elementВ» (рис.11 ).
В
Рис. 11. Стартове меню
При запуску тесту (рис.12), в першу чергу формується випадкова послідовність аспектів В«Prog_Tool.Generate_Random_KeyВ». Фактор випадковості залежить від взятого параметра. Такий підхід, надалі, дозволить не включати у збереження даних сформовану послідовність, достатньо буде лише зберегти параметр. Для читання аспектів використовується метод В«Sql_Tool.Read_ClusterВ», параметри, передані в цей метод, відповідають діапазону аспектів, які необхідно вважати з таблиці В«Add_IDstВ». Лічені аспекти виводиться в В«checkedListBox1В». Параметр В«Declaration.Current_countВ» зберігає інформацію про індекс останнього доданого аспекту. <В
Рис. 12. Запуск тесту
Для отримання наступного листа аспектів клієнт натискає кнопку В«НаступнийВ» (рис.13). Перш ніж формувати новий список, необхідно обробити відповіді старого. Для цього в циклі ми проходимо по всіх зазначеним твердженням старого листа, збільшуючи лічильники потрапили аспектів у структурі В«list_answerВ» і формуючи лист із зазначеними твердженнями для масиву В«check_listВ». Далі йде перевірка умови - якщо номер поточного аркуша більше останнього досягнутого, то додаємо його в масив В«check_listВ», інакше оновлюємо старий лист у масиві. Розібравшись зі старим листом, формуємо новий, знову зчитуючи аспекти з бази даних В«Sql_Tool.Read_ClusterВ». Якщо завантажений лист вже зустрічався раніше, то розставляємо на ньому мітки залишені клієнтом. При цьому необхідно стежити за досягненням кінця списку аспектів, так як це призведе до зміни елементів головної форми. <В
Рис. 13. Отримання нового списку аспектів
Якщо клієнтові знадобиться повернутися до попереднім твердженням для редагування своїх відповідей, то він скористається кнопкою В«НазадВ» (рис.14). Функціонал цієї кнопки повторює структури кнопки В«НаступнийВ», але в зворотному порядку. Спочатку ми формуємо новий лист з розставленими прапорами і тільки потім зменшуємо лічильники відповідей клієнта. Тут необхідно відстежувати досягнення початку списку аспектів, для відповідної зміни елементів форми. br/>В
Рис. 14. Повернення до попереднього списку аспектів
При досягненні кінця тесту клієнт натискає кнопку В«Завершити тестВ». При натисканні цієї кнопки, відбувається обробка відповідей останнього листа і формується відсортований список відповідей, реалізується методом В«Prog_Tool.Sort_AnswerВ». В«Sort_answerВ» отриманий в результаті двовимірний масив, відсортований за спаданням кількості аспектів потрапили в кластер. Другий індекс масиву являє собою список з двох елементів, у першому зберіга...