МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ "ЛЬВІВСЬКА ПОЛІТЕХНІКА"
Інститут КНІТ
Кафедра ПЗ
ЗВІТ
До лабораторної роботи № 2
На тему: “ Розроблення тестової системи для оцінки самоконтролю”
З дисципліни : "Системи штучного інтелекту"
Львів – 2010
Тема роботи: Розроблення тестової системи для оцінки самоконтролю.
Мета роботи: Розробити програмне забезпечення для тестування самоконтролю на основі психоаналітичних тестів.
Завдання
Розробити програмне забезпечення, яке розв”язуватиме всі завдання тестування і оцінки. ПЗ повинне реалізувати такі функції:
забезпечувати добру графічну ілюстрацію тестових елементів та їх вибір. Вибір об”єкта в кожній групі є обов”язковим;
забезпечувати обчислення результатів тестування ;
показувати зведені в таблицю: вибрані символи, результати тестування та висновок тестування ;
забезпечувати рестарт і поновлення тестування.
Код програми
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace AI_lab2
{
public partial class Form1 : Form
{
private int sum = 0;
private int test_num = 0;
Bitmap[] res_bmp = new Bitmap[4];
int[] res_bal = new int[4];
public Form1()
{
InitializeComponent();
res_table.Rows.Add();
res_table2.Rows.Add();
res_table.Rows[0].Height = 75;
for (int i = 0; i < 4; i++)
{
res_table.Columns[i].Width = 75;
res_table2.Columns[i].Width = 75;
}
}
private string Results()
{
if (sum >= 8 && sum <= 13)
return " Ваша поведінка залежить передусім від тих, хто вас оточує. "+
"Ви легко занепадаєте духом, легко «вибухаєте», неохоче робите те, "+
"що вам не до вподоби. На вас справляє сильний вплив оточення, "+
"мікроклімат у колективі. Отже, ви не є господарем своїх рішень. "+
"Ви надто емоційні, і ваші вчинки залежать здебільшого від вашого настрою.";
if (sum >= 14 && sum <= 20)
return " Хоча й «пливете за течією», але намагаєтесь знайти свій стиль. "+
"Здатні до критичного аналізу. Коли здоровий глузд підказує, "+
"що ваша позиція хибна, ви цілком спроможні від неї відмовитись.";
if (sum >= 21 && sum <= 27)
return " Вважаєте себе непогрішимим. І все ж, підпадаєте під сторонній вплив. "+
"Шукаєте золоту середину між власними переконаннями й тими вимогами, "+
"які ставить життя. Допомагає те, що ви інстинктивно обираєте правильний шлях.";
if (sum >= 28 && sum <= 34)
return " Вам нелегко відмовитись від своїх принципів. "+
"Що більше хтось намагається на вас тиснути, то сильніший опір ви чините. "+
"Однак за впертістю приховується не стільки впевненість, "+
"скільки страх пошитися в дурні.";
if (sum >= 35 && sum <= 40)
return " Якщо вже щось спаде вам на думку, то ніхто вас не переконає у протилежному. "+
"Попри все йдете до своєї мети. Але той , хто вас добре знає, "+
"може вміло та непомітно скеровувати ваші вчинки. "+
"Тож чи не варто проявляти менше впертості і більше кмітливості?";
return "Помилка при обчисленні результатів!!!";
}
private void button1_Click(object sender, EventArgs e)
{
Button btn = (Button)sender;
sum += (int)btn.Image.Tag;
res_bmp[test_num] = new Bitmap(btn.Image, 75, 75);
res_bal[test_num] = (int)btn.Image.Tag;
switch (test_num)
{
case 0:
button1.Image = AI_lab2.Properties.Resources._011;
button2.Image = AI_lab2.Properties.Resources._021;
button3.Image = AI_lab2.Properties.Resources._031;
button4.Image = AI_lab2.Properties.Resources._041;
label2.Text = "СПОКІЙ";
break;
case 1:
button1.Image = AI_lab2.Properties.Resources._012;
button2.Image = AI_lab2.Properties.Resources._022;
button3.Image = AI_lab2.Properties.Resources._032;
button4.Image = AI_lab2.Properties.Resources._042;
label2.Text = "ВПЕВНЕНІСТЬ";
break;
case 2:
button1.Image = AI_lab2.Properties.Resources._013;
button2.Image = AI_lab2.Properties.Resources._023;
button3.Image = AI_lab2.Properties.Resources._033;
button4.Image = AI_lab2.Properties.Resources._043;
label2.Text = "НЕПЕВНІСТЬ";
break;
case 3:
label1.Text = "Нижче зображено результати опитування.";
label2.Text = "РЕЗУЛЬТАТИ";
panel1.Visible = true;
panel2.Visible = false;
for (int i = 0; i < 4; i++)
{
res_table.Rows[0].Cells[i].Value = res_bmp[i];
res_table2.Rows[0].Cells[i].Value = res_bal[i].ToString() + " бали(ів)";
}
suma.Text = sum.ToString() + " бали(ів)";
result_text.Text = Results();
break;
}
test_num++;
}
private void button5_Click(object sender, EventArgs e)
{
panel1.Visible = false;
panel2.Visible = true;
test_num = 0;
sum = 0;
button1.Image = AI_lab2.Properties.Resources._01;
button2.Image = AI_lab2.Properties.Resources._02;
button3.Image = AI_lab2.Properties.Resources._03;
button4.Image = AI_lab2.Properties.Resources._04;
label2.Text = "РУХ";
label1.Text = "Виберіть малюнок, який найкраще характеризує Вас за даною характеристикою.";
}
}
}
Протокол роботи
Після запуску програми користувачеві пропонується вибрати малюнки, які найкраще характеризували би його з точки зору тієї чи іншої характеристики. Для цього користувачу потрібно лише клікнути на потрібній кнопці з малюнком. Після цього буде здійснено автоматичний перехід до наступної характеристики з відповідними малюнками.
Після того як користувач вибере необхідні картинки за кожною з чотирьох характеристик, будуть відображені результати тестування з зображенням всіх вибраних користувачем картинок, кількість балів, набраних за кожною з характеристик та за всіма характеристиками загалом, а також відповідні висновки щодо результатів тестування.
Висновок
На цій лабораторній роботі я розробив програмне забезпечення для тестування самоконтролю на основі психоаналітичних тестів. При цьому програма дозволяє користувачу давати відповіді на питання в досить зручній і зрозумілій формі, завдяки простому натисненню на необхідній картинці. В результатах тестування відображаються всі обрані користувачем картинки, загальна набрана сума балів та висновки щодо результатів тестування.