Програма тестового контролю знань

Розробка програмного коду, який дозволяє дізнатися інформацію про студента, який проходить тестування, дає можливість відповісти на декілька запитань і дізнатися результат знань студента з теми "Класи". Проектування тестових питань та тестової програми.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык украинский
Дата добавления 29.01.2013
Размер файла 299,5 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

ЗМІСТ

Вступ

1. Розробка програмних засобів тестування

1.1 Проектування тестових питань

1.2 Проектування тестової програми

Висновки

Перелік посилань

ВСТУП

В даній курсовій роботі потрібно створити програму, яка проводить тестовий контроль знань з одного з розділів курсу “Технології створення програмних та інтелектуальних систем”. В моєму випадку таким розділом є “Класи”. Практична частина курсової роботи виконувалася в програмному середовищі.

Поставленим завданням було розробка програмного коду, що дозволяв би дізнатися інформацію про особу, яка проходить тестування, а саме студента, надавав би можливість відповісти на декілька запитань і дізнатися результат знань студента (в нашому випадку) з теми “ Класи ”.

За допомогою створеної форми StartJFrame “Введення даних студента” при тестовому контролі отримується інформація про тестувальника.

Лише після вводу всіх обов'язкових даних, розпочинається процес тестування. Кожне питання тесту створене на окремій формі, за допомогою різноманітних елементів. В проекті ми мали створити 5 питань, серед яких обов'язково повинні бути питання наступних типів: 1) вибір однієї правильної відповіді в моєму випадку з 3 запропонованих (1 пит.), 2) вибір кількох правильних відповідей в моєму випадку з 5 запропонованих (2 пит.), введення відповіді вручну у вигляді одного слова (4 пит.). А різноманітні елементи дозволити представити питання та їх варіанти відповідей в зовсім різних виглядах. Під час тестування перехід до наступної форми здійснювався за допомогою кнопки “Вперед”, також можливе повернення до попереднього питання, за допомогою кнопки “Назад ”.

По закінченню тестування студент бачить вікно, на якому відображається інформація про особу, що проходила тест, його оцінка та правильність або навпаки неправильність того чи іншого питання. І вже з цієї форми переходу на інші (попередні) не існує.

Під час виконання даного завдання мною використовувалась мова програмування Java.

Java-- об'єктно-орієнтована мова програмування, випущена компанією Sun Microsystems у 1995 році як основний компонент платформи Java. Синтаксис мови багато в чому походить від C та C++. В офіційній реалізації, Java програми компілюються у байткод, який при виконанні інтерпретується віртуальною машиною для конкретної платформи.

Мова Java являється об'єктно-орієнтованою мовою програмування. Основою ООП являються класи. Класи - це спосіб об'єднання даних і всіх методів, які необхідні для звернення та роботи з цими даними, а також для зв'язку з іншими класами.

В загальному випадку об'явлення класу має наступний синтасис:

Модифікатори class ім'я_класу extends ім'я_суперкласу implements ім'я_інтерфейсу

{

тип змінна1_объекту;

тип змінна2_объекту;

тип зміннаN_объекту;

тип ім'я_методу1(список_параметрів)

{

тіло метода;

}

тип ім'я_методу2(список_параметрів)

{

тіло метода;

}

тип ім'я_методуМ(список_параметрів)

{

тіло метода;

}

}

При об'явленні класу можна вказувати наступні властивості класу:

· Модифікатори

· Ім'я класу

· Суперкласи

· Інтерфейси

Модифікатори визначають способи подальшого використання класу; вони важливі при успадкуванні класів, інтерфейсів та виключних ситуацій на основі даного класу. В Java існують наступні модифікатори класів:

public. Класи з таким модифікатором доступні для всіх об'єктів. Вони можуть розширюватись або використовуватись будь-яким об'єктом. Класи з модифікатором public повинні зберігатись в в файлах з таким самим ім'ям, як ім'я класу.

friendly. Встановлюється по замовчуванню, якщо не вказано модифікатора. Даний модифікатор визначає, що клас може використовуватись чи розширюватись будь-яким класом, однак він доступний тільки тим об'єктам, що знаходяться в тому ж самому пакеті.

final. Класи з таким модифікатором не можуть мати нащадків.

abstract. Абстрактним називається клас, в якому хоча б один метод не описаний повністю. (оскільки класи неповні, то неможна створювати екземпляри абстрактних класів.)

Ім'я класів мають ті ж самі обмеження, як і в С++.

· Можуть розпачинатися з (_) та ($).

· Містять тільки букви, цифри та деякі спецсимволи.

· Не можуть співпадати з зарезервованими словами.

Суперкласи. Механізм спадкування в Java реалізується з допомогою суперкласів (предків, батьків) даних класів. Новий клас буде успадковувати поля та методи суперкласу. В Java реалізована ієрархічна (деревоподібна) структура спадкування, тобто, новий клас може мати тільки однин суперклас, але суперклас може мати безліч нащадків.

Кожен клас в Java рахується об'єктом. Тому кожен клас породжується від класа java.lang.Object.

Інтерфейси. Інтерфейси - це Java-варіант спадкування від багатьох класів. Інтерфейси використовуються для опису певних функціональних можливостей, які використовуються в класах, однак не реалізовують ці можливості, оскільки не знають як вони будуть реалізовані в даних класах. Інтрерфейси можуть містити тільки абстрактні класи та поля визначені як final. (Приклад: інтерфейс Рухатись для класів Людина та Змія).

Класи мають дві основні компоненти:

· Поля

· Методи

Дані чи змінні визначені в блоці class називаються екземплярами змінних. Однак змінні описані одразу ж після об'явлення класу прийнято називати полями класу. Відмінність їх від інших змінних визначених в методах полягає в області видимості(циклом життя змінної). Поля класу видимі у будь-якій точці класу і існують доти, поки існує сам клас. Їх іноді називають глобальними змінними.

Синтаксис визначення поля:

тип ім'я_змінної;

Як і клас, поля класу мають модифікатори.

friendly. Назначається по замовчуванню. Поля з таким модифікатором доступні для інших класів в тому ж самому пакеті, але недоступні для підкласів з інших пакетів.

public. Дає доступ для всіх класів та підкласів усіх пакетів.

protected. До захищених полів можуть звертатися всі підкласи даного класу, однак вони невидимі для класів, які не відносяться до даного пакету.

private. Найбільш захищені поля. Вони доступні для всіх методів всередині даного класу, однак недоступні для будь-яких інших класів чи підкласів даного класу.

private protected. Доступні у всіх методах даного класу та підкласах даного класу, але недоступні для всіх інших.

static. Статичні поля зберігають своє значення у всіх екземплярах класу. Тому зміна статичного поля в одному з класів приведе до їх зміни в інших екземплярах. Статичні поля можуть змінювати як статичні, так і нестатичні методи.

final. Даний модифікатор визначає поле як таке, яке не можна змінювати (типу константи). Тому при об'явленні поля типу final необхідно його визначити.(final int SIZE=5). По замовчуванні імена констант пишуть великими буквами.

synchronized. Даний модифікатор використовується в багатопоточних програмах, коли до одного поля одночасно можуть звертатися багато потоків, для захисту поля від виникнення помилок. Синтаксис оператора наступний:

synchronized ( змінна) вираз;

Програмний код класу міститься в методах. Як правило, екземпляри змінних змінюються методами класу і доступ до даних змінних можна отримати лише з допомогою методів описаних в самому класі.

При об'явленні методу класу визначається:

· Модифікатор доступу до методу

· Тип, який повертається методом

· Ім'я методу

· Список формальних параметрів

Синтаксис опису методу:

модифікатор тип ім'я_метода (список формальних параметрів)

{

тіло методу;

}

Для методів існує десять модифікаторів:

1. public. Якщо метод класу об'явлений як public, то він стає доступним для всіх класів (не залежить від походження та приналежності). Не захищений.

2. protected. До таких методів можуть звертатися будь-які класи, які знаходяться в тому ж самому пакеті, що й даний клас. Не доступні для успадкування.

3. friendly. Методи з таким модифікатором доступні тільки з даного класу і будь-яких класів-потомків. По замовчуванню, якщо не вказано ідентифікатора, для функцій та полів класу приймається даний ідентифікатор.

4. private. Найвищий ступінь захисту. Private-метод доступний тільки методам цього ж класу. Навіть класи, які породжені від данного не мають доступу до циж функцій.

5. private protected. Методи, які мають такий ідентифікатор доступу доступні з поточного класу та його нащадків, але не доступні в тому ж пакеті чи в новому екземплярі

6. static. Як і для полів класу, статичні методи використовуються для економії пам'яті, і являються спільними для всіх екземплярів даного класу. Статичні методи працюють тільки зі статичними змінними.

7. abstract. Абстрактні методи лише об'являються, але не реалізуються в даному класі.

8. final. Якщо визначити так метод, то він не зможе бути перегружений в підкласах.

9. native. Такий модифікатор призначений для повідомлення компілятор, що тіло метода буде написано на іншій мові програмування (зазвичай С++). Замість тіла методу ставиться (;). Однак необхідно вказувати тип результату який повертається методом, та тип формальних параметрів.

10. synchronized. Аналогічно полям відповідного типу.

При використанні методів важливо пам'ятати, що метод повинен повертати результат, якщо він не описаний як void.

Конструктори - це спеціальні методи, які призначені для встановлення певних початкових параметрів об'єктів, а також виконання певних функцій при створенні екземпляра об'єкту. Конструкторам надається таке ж саме ім'я, як і класу. Конструктор може мати список формальних параметрів, але не може повертати результат (навіть тип void). В класі може існувати декілька конструкторів, але вони повинні мати різну сигнатуру (різна кількість і типи формальних параметрів). Тоді можна створювати екземпляри класу будь-яким з них. (В основному конструктори являються public, хоча можуть бути і private. Однак вони не можуть бути типу native, abstract, static, synchronized, final).

програмний код тестовий інформація

1. РОЗРОБКА ПРОГРАМНИХ ЗАСОБІВ ТЕСТУВАННЯ

1.1 Проектування тестових питань

Важливою умовою підвищення ефективності навчального процесу є систематичне отримання учителем об'єктивної інформації про хід навчально-пізнавальної діяльності учнів. Цю інформацію він отримує завдяки контролю за навчально-пізнавальною діяльністю учнів.

Поняття “контроль” (франц. controle) має декілька значень. У дидактиці -- це нагляд, спостереження і перевірка успішності учнів. Контроль -- ширше поняття, ніж перевірка. Спостереження за учнями під час занять, перевірка їх знань, навичок і вмінь, зошитів, інших продуктів навчальної і практичної діяльності учнів є засобами контролю. Облік успішності передбачає фіксацію результатів контролю у вигляді оцінного судження або числового бала з метою аналізу стану навчально-виховного процесу за певний період, прийняття рішень про необхідність удосконалення уроку, інших форм та методики організації навчання. Навчання є процесом управління навчально-пізнавальною діяльністю учнів, а контроль -- обов'язковим засобом одержання зворотної інформації.

Контроль знань студентів є складовою частиною процесу навчання. По визначенню контроль це співвідношення досягнутих результатів із запланованими цілями навчання. Деякі викладачі традиційно підходять до організації контролю, використовують його в основному заради показників досягнутого. Перевірка знань студентів повинна давати відомості не тільки про правильність чи неправильності кінцевого результату виконаної діяльності, але і про неї саму: чи відповідає форма дій даному етапу засвоєння. Правильно поставлений контроль навчальної діяльності студентів дозволяє вчителю оцінювати одержувані ними знання, уміння, навички, вчасно надати необхідну допомогу і добиватися поставлених цілей навчання. Усе це в сукупності створює сприятливі умови для розвитку пізнавальних здібностей студентів і активізації їхньої самостійної роботи на уроках.Добре поставлений контроль дозволяє вчителю не тільки правильно оцінити рівень засвоєння студентами досліджуваного матеріалу, але і побачити свої власні удачі і промахи. Проблема контролю за навчальною діяльністю студентів не нова, і педагогічний досвід накопичений у цій області багатий і різнобічний. У цій роботі систематизовані накопичені відомості по проблемі контролю знань студентів.

Для одержання зворотної інформації про зміст, характер і досягнення учбово-пізнавальної діяльності студентів застосовують наступні методи контролю знань, умінь і навичок: усні, індивідуальні, комбіновані й фронтальний опитування; перевірка письмових і практичних робіт; програмований контроль; тестова перевірка; систематичне спостереження за студентами в навчальному процесі.

Усне опитування (фронтальний, індивідуальний або груповий) - найпоширеніший й ефективний метод контролю знань, що застосовується при вивченні майже всіх предметів і на всіх етапах навчання. Важливими елементами опитування є зміст (репродуктивне, реконструктивне, творчі питання й завдання) і характер перевірочних питань. Репродуктивні питання сприяють чіткому виявленню певних знань, навчань і навичок. Реконструктивні питання припускає застосування знань у декількох змінених ситуаціях. Творчі питання й завдання розкривають знання й уміння в нестандартних умовах, на основі складних розумових дій, залежно від конкретного матеріалу.

Усне опитування жадає від викладача тривалої підготовки: ретельного підбора змісту, всебічного продумування питань, завдань, прикладів. Індивідуальне опитування передбачає ґрунтовну перевірку знань, умінь і навичок окремих студентів, але його нестаток - пасивність інших студентів. Тому більше ефективне комбіноване опитування, коли один студент відповідає у дошки, а інші виконують індивідуальні або групові самостійні завдання. Фронтальне опитування дозволяє у відносно короткий строк перевірити знання у великої кількості студентів.

Серед інших методів слід зазначити перевірку письмових робіт (поточних і контрольних). Письмові роботи можуть бути короткочасними (10-15 хв) і тривалими (90 хв). Письмові контрольні роботи дозволяють більш ефективно, об'єктивно й оперативно перевірити знання студентів.

Для контролю знань використовуються як традиційні, так і сучасні методи контролю. Серед останніх чи не найширше розповсюдження знаходять методи контролю знань шляхом тестування. Зокрема, впровадження модульно-рейтингової системи в навчальний процес вищих закладів освіти вимагає застосування тестового контролю для оцінки знань студентів, що забезпечує високу технологічність проведення контролю та об'єктивність його результатів. Для підвищення ефективності організації тестового контролю його доцільно проводити з використанням комп'ютерних тестових програм [9], що дозволяє автоматизувати процес проведення контролю та обробку результатів тестування.

Аналіз сучасних методів тестування та практичних особливостей проведення тестового контролю, а також загальних вимог до комп'ютерних навчальних систем та практичного досвіду їх використання дозволяє визначити загальні вимоги, яким повинні задовольняти комп'ютерні тестові програми. Дотримання цих вимог визначає основні та додаткові можливості тестових програм.

До складу основних належать можливості:

· проводити тестовий контроль на базі тестових завдань закритого та відкритого типів, тобто з наданням (відображенням для вибору) та без надання варіантних відповідей на питання тестових завдань, оскільки тестові завдання інших типів (на відповідність, на встановлення правильної послідовності) можуть бути перетворені в одне або декілька тестових завдань закритого та відкритого типів;

· формувати зовнішні бібліотеки тестових завдань, тобто бібліотеки, котрі не входять до складу самої тестової програми, що дозволить користувачам тестових програм розробляти і використовувати власні тести;

· використовувати декілька бібліотек тестових завдань при проведенні одного тесту з послідовним виконанням тестових завдань з кожної бібліотеки, що дозволить розмістити в окремих бібліотеках тестові завдання з різних тем, теоретичні та практичні завдання, завдання різної складності тощо і розподілити загальну кількість тестових завдань між всіма бібліотеками певного тесту;

· використовувати бібліотеки тестових завдань в незашифрованому та зашифрованому вигляді, що дозволить або ні ознайомитись зі змістом та виконати тест без введення пароля стороннім особам;

· оцінювати правильну відповідь або будь-яку відповідь на кожне тестове завдання певною кількістю балів та підраховувати загальну кількість набраних балів і відповідну бальну оцінку за заданою шкалою оцінок;

· відводити або ні певний час на виконання всього тесту або кожного тестового завдання окремо, що дозволить виконувати тест в різних режимах обмеження часу;

· вибирати тестові завдання з бібліотек тестових завдань в заданій кількості та відображати варіантні відповіді в тестових завданнях закритого типу в випадковому порядку;

· задавати декілька еталонних відповідей в тестових завданнях відкритого типу та режими ідентифікації еталонних відповідей з наданою відповіддю.

До складу додаткових належать можливості:

· вибирати тести до виконання з переліку наявних тестів (наприклад, з меню тестів, що відображається на екрані після запуску на виконання тестової програми);

· зберігати результати тестування для подальшого їх використання, відображати та видаляти результати тестування при необхідності;

· задавати кількість можливих разів виконання кожного тесту для обмеження спроб повторного виконання тесту однією особою.

Найбільше адекватно рівням засвоєння знань відповідає класифікація завдань у такому вигляді: 1 рівень - прості, які необхідні для закріплення визначень, понять, формул, законів, тобто вивченого раніше матеріалу; 2 рівень - більше складні завдання, що вимагають аналізу певної ситуації, уміння залучити раніше вивчений матеріал; 3 рівень - завдання, у яких в умові описана ситуація, менш знайома в порівнянні з описаної в підручнику або розглянутої на занятті; завдання, які можуть бути використані для одержання студентами нових знань та самостійно досягнути певного розуміння якогось явища чи процесу.

На мою думку тести, які були мною розроблені відносяться до першого рівня, так як виконують перевірку здобутих знань. Нижче представляю запитання та варіанти відповідей з виділеною правильною. Ознайомившись з теоретичною частиною моєї записки можна самостійно віднайти відповіді на поставлені запитання.

1) Функція , яка не є елементом класу, яка повинна мати доступ до закритих елементів класу, повинна бути об'явленою як

1 class;

2 friend;

3 this.

2) Призначення статичних полів класів.

1 Пам'ять для полів виділяється один раз і є загальною для всіх об'єктів класу;

2 Пам'ять виділяється незалежно від того, будуть чи ні створюватися екземпляри даного класу.

3 Пам'ять для полів виділяється один раз і не є загальною для всіх об'єктів класу;

4 Статичні поля мають область дії клас

5 Всі відповіді вірні

3) Клас -

1. Це опис структури однотипних об'єктів;

2. Це змінна типу класу;

3. Це один зі способів структурного програмування

4. Це спеціальний метод, що використовується для ініціалізації полів класу

4) Які елементи даних мають одну копію для всіх об'єктів класу? статичні (вписати самостійно)

5) Зазначте, з яких елементів складаються об'єкти класу:

1 з членів класу;

2 з функцій класу;

3 тільки з конструкторів та деструкторів;

4 з членів і функцій класу.

1.2 Проектування тестової програми

Тестова програма, яку я створив складається з декількох форм, головного класу Main. В класі Main оголошуються і створюються всі форми, оголошується змінна для зберігання результату тестування і оголошується змінна типу student для запам'ятовування особистих даних про студента. В коді конструктора класа Main визивається відображення форми авторизації. Першою, створеною формою є StartJFrame. На даній формі наявні чотири текстових поля, в які вводиться інформація про студента, зокрема, його прізвище, ім'я, по-батькові та номер групи, в якій він навчається. Зірочки змушують звернути увагу на те, що обов'язковою є умова заповнення цих чотирьох полів.

Також на даній формі знаходиться кнопка «Вперед», після натискання якої, за умови заповнення всіх полів на екрані з'являється форма із Питанням №1, тобто розпочинається тестування.

Вигляд форми «Введення даних студента» поданий на Рисунку 1.1

Рисунок 1.1 - Введення даних студента

При створенні даної форми були використанні такі елементи управління програмного середовища, як: надписи JLabel, текстові поля для вводу даних про студента JTextField, кнопка JButton.

В програмному коді кнопки «Підтвердити» потрібно провести перевірку введення усіх даних про студента, оскільки, як вище зазначалося, поля мають бути обов'язково заповненими. При наявності хоча б одного незаповненого поля не буде активною кнопка при настисканні якої ми розпочинаємо тест.

private void conButtonActionPerformed(java.awt.event.ActionEvent evt) {

if (!surText.getText().equals("") && !nameText.getText().equals("") && !batText.getText().equals("") && !grupText.getText().equals("")) {

surText.setEnabled(false); batText.setEnabled(false); nameText.setEnabled(false); grupText.setEnabled(false);

conButton.setEnabled(false);

startButton.setEnabled(true);

}

else {

javax.swing.JOptionPane.showMessageDialog(this, "Запоніть будь-ласка обов'язкові поля!!!", «Помилка", javax.swing.JOptionPane.ERROR_MESSAGE);

}

} /* якщо текстове поле jTextField1 не порожнє, і текстове поле jTextField2 не порожнє, і текстове поле jTextField3 не порожнє, і текстове поле jTextField4 не порожнє, то будемо виконувати наступне*/

private void startButtonActionPerformed(java.awt.event.ActionEvent evt) {

Main.q0.setVisible(false);

Main.q1.setVisible(true);//за допомогою кнопки «Розпочати тестування» ми розпочинаємо тест/

{

Отже, якщо у всі поля введено дані, то при натисканні на кнопку «Розпочати тестування» ми автоматично перейдемо на наступну форму Question1, на якій було створено Питання №1. При розробці даного тестового завдання використовувались такі елементи, як список JList, надпис jLabel та кнопки JButton. Вигляд даної форми приведено на Рисунку 1.2.

Рисунок 1.2 - Питання №1

Зверху на даній формі розташовано номер питання. Нижче саме запитання, а в нижче варіанти відповідей. Із самого запитання зрозуміло, що відповідь може бути лише одна. Для того щоб обрати можна було лише один варіант із представлених, то я на список встановив властивість selectionMode та обрав Single. На формі розташована кнопка, «Вперед» запрограмована таким чином, що одразу перевіряє правильність обраної відповіді:

private void nextButton1ActionPerformed(java.awt.event.ActionEvent evt) {

Main.q1.setVisible(false);

Main.q2.setVisible(true);

}

private Boolean CheckRezult()//Метод перевірки правильності відповіді на п'яте питання

if (Main.q1.jRadioButton2.isSelected()) {

return true;//якщо обрана радіо кнопка3, то відповідь правильна

else

return false;

// інакше відповідь не правильна

}

При натисканні на кнопку «Вперед» програма не лише визначає чи правильна відповідь обрана, а й переходить на наступну форму Question2, на якій розташоване Питання №2.

Під час розробки даного запитання використовувались елементи: надпис jLabel, кнопки JButton, та JCheckBox. Вигляд отриманої форми приведено на Рисунку 1.3.

Рисунок 1.3 - Питання №2

Як ми бачимо на даній формі подане завдання, та варіанти відповідей. Саме в цьому запитанні можна обирати не одну правильну відповідь, а декілька, саме тому я використав такий елемент як JCheckBox, тобто флажок. Також присутні кнопки «Назад» та «Вперед». Програмний код кнопки «Назад» має наступний вигляд:

private void backButton2ActionPerformed(java.awt.event.ActionEvent evt) {

Main.q2.setVisible(false); // вікно win4 невидиме

Main.q1.setVisible(true); // вікно win3 видиме

}

В даному випадку кнопку «Вперед» потрібно запрограмувати таким чином, щоб бал за правильну відповідь зараховувався лише в тому випадку, коли обрано лише першу і другу і четверту відповіді, в іншому випадку відповідь на дане питання буде вважатись неправильною, а також ця кнопка має виконувати перехід на іншу форму і її програмний код матиме наступний вигляд:

private void nextButton2ActionPerformed(java.awt.event.ActionEvent evt) {

Main.q2.setVisible(false); //вікно q2невидиме

Main..setVisible(true); //вікно q3 видиме

Main.JFramesRezult[3] = CheckRezult();

//зберігаємо результат другої відповіді

private Boolean CheckRezult(){

//Метод перевірки правильності відповіді на четверте питання

if (Main.q2.jCheckBox1.isSelected()) r[0] = 1; else r[0] = 0;

if (Main.q2.jCheckBox2.isSelected()) r[1] = 1; else r[1] = 0;

if (Main.q2.jCheckBox3.isSelected()) r[2] = 1; else r[2] = 0;

if (Main.q2.jCheckBox4.isSelected()) r[3] = 1; else r[3] = 0;

if (Main.q2.jCheckBox5.isSelected()) r[4] = 1; else r[4] = 0;

if ((r[0] == 1) && (r[1] == 1) && (r[2] == 0) && (r[3] == 1) && (r[4] == 0)) {

Main.r.table.setValueAt("Вірно", 1, 1);

Main.r.table.setValueAt(1, 1, 2);

}

Кнопка «Назад» повертається на попередню форму, тобто до Питання №1 і має наступний програмний код:

private void backButton2ActionPerformed(java.awt.event.ActionEvent evt) {

Main.q2.setVisible(false); // вікно q2 невидиме

Main.q1.setVisible(true);// вікно q1 видиме

}

}

При натисканні на кнопку «Вперед» автоматично виконується перехід на наступну форму Question3, на якій я помістив Питання №3. При розробці даного тестового завдання використовувались такі елементи, як випадаючий список JComboBox, надпис jLabel та кнопки JButton. Вигляд даної форми приведено на Рисунку 1.3.

Рисунок 1.4 - Питання №3

На даній формі ми можемо побачити надпис вгорі, який показує номер запитання. Далі розташоване саме запитання, а під ним варіанти відповідей поміщені у випадаючий список, всіх відповідей візуально на формі не видно, потрібно просто натиснути на стрілочку вниз і тоді появиться повний список варіантів відповідей. В даному питанні так як і в попередньому обрати можна лише одну правильну відповідь.

Аналогічно попереднім формам перевірка відповіді, яка вибрана, на правильність відбувається в програмному коді кнопки «Вперед»:

private void nextButtonActionPerformed(java.awt.event.ActionEvent evt) {

Main.q3.jList1.getSelectedIndex() == 1) {//зберігаємо результат другої відповіді

Main.q3.setVisible(false); невидиме

Main.q2.setVisible(true);//видиме

}

private Boolean CheckRezult(){

//Метод перевірки правильності відповіді на третє питання

if (Main.q3.jList1.getSelectedIndex() == 1) {

Main.r.table.setValueAt("Вірно", 2, 1);

Main.r.table.setValueAt(1, 2, 2);

}

Так як дана кнопка «Вперед» працює за таким же принципом, то при її натисканні ми переходимо на наступну форму, в даному випадку на Question4, тобто форму, на якій поміщено Питання №4. При розробці даного тестового завдання використовувались такі елементи, як надпис jLabel, текстове поле JTextField та кнопки JButton. Вигляд даної форми приведено на Рисунку 1.5.

Рисунок 1.5 - Питання №4

На даній формі є саме запитання, але немає можливості вибирати відповідь з декількох варіантів - її потрібно ввести з клавіатури самостійно.

Аналогічно до попередніх форм, присутні кнопки «Вперед» та «Назад».

Програмний код кнопки має наступний вигляд:

private void prevButton2ActionPerformed(java.awt.event.ActionEvent evt) {

Main.q2.setVisible (true); // вікно q2 видиме

Main.q3.setVisible(false); // вікно q3 невидиме

}

На даній формі також існує кнопка «Вперед» яка діє по аналогічному принципу до попередніх. ЇЇ програмний код має такий вигляд:

private void nextButton4ActionPerformed(java.awt.event.ActionEvent evt) {

Main.q4.setVisible(false);//невидиме

Main.q5.setVisible(true);//видиме

}

private Boolean CheckRezult(){

//Метод перевірки правильності відповіді на третє питання

String s1 = Main.q4.jTextField1.getText();

String s2 = "статичні";

if (s1.equalsIgnoreCase(s2) == true) {

Main.r.table.setValueAt("Вірно", 3, 1);

Main.r.table.setValueAt(1, 3, 2);

}

В даному випадку кнопку «Вперед» потрібно запрограмувати таким чином, щоб бал за правильну відповідь зараховувався лише в тому випадку, коли обрано лише першу і другу і четверту відповіді, в іншому випадку відповідь на дане питання буде вважатись неправильною, а також ця кнопка має виконувати перехід на іншу форму і її програмний код матиме наступний вигляд:

private void nextButton4ActionPerformed(java.awt.event.ActionEvent evt) {

Main.q4.setVisible(false);// невидиме

Main.q5.setVisible(true);// видиме

Main.JFramesRezult[3] = CheckRezult();

//зберігаємо результат відповіді

private Boolean CheckRezult(){

//Метод перевірки правильності відповіді на четверте питання

if (Main.q2.jCheckBox1.isSelected()) r[0] = 1; else r[0] = 0;

if (Main.q2.jCheckBox2.isSelected()) r[1] = 1; else r[1] = 0;

if (Main.q2.jCheckBox3.isSelected()) r[2] = 1; else r[2] = 0;

if (Main.q2.jCheckBox4.isSelected()) r[3] = 1; else r[3] = 0;

if (Main.q2.jCheckBox5.isSelected()) r[4] = 1; else r[4] = 0;

if ((r[0] == 1) && (r[1] == 1) && (r[2] == 0) && (r[3] == 1) && (r[4] == 0)) {

Main.r.table.setValueAt("Вірно", 1, 1);

Main.r.table.setValueAt(1, 1, 2);

}

Перехід на наступну форму спричинить появу Питання №5 і в даному випадку останнього.

Вигляд отриманої форми приведено на Рисунку 1.6.

Рисунок 1.6 - Питання №5

На цій формі присутні вже раніше використовувані елементи та один головний, в якому наводяться варіанти відповідей, які створенні, використовуючи об'єкти JRadioButton. Об'єднавши набір кнопок за допомогою спеціальної властивості та попередньо створеної групи кнопок, відповідь в даному запитанні може обиратись лише одна. Також на даній формі присутні кнопки «Назад» та «Кінець тестування» і виконують аналогічні властивості до попередніх.

Кнопка «Назад» у запрограмованому вигляді має наступний код:

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {

Main.q5.setVisible(false);

Main.q4.setVisible(true);

}

Кнопка «Кінець тестування» у запрограмованому вигляді має наступний код:

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {

Main.q5.setVisible(false);

Main.r.setVisible(true);

Main.r.table.setValueAt("Тест 1", 0, 0);

Main.r.table.setValueAt("Тест 2", 1, 0);

Main.r.table.setValueAt("Тест 3", 2, 0);

Main.r.table.setValueAt("Тест 4", 3, 0);

Main.r.table.setValueAt("Тест 5", 4, 0);

Main.r.table.setValueAt("Результат", 5, 0);

if (Main.q1.jRadioButton2.isSelected()) { return true;//якщо обрана радіо кнопка4, то відповідь правильна

else

return false;// інакше відповідь не правильна

}

Натиснувши кнопку «Кінець тестування» з'являється форма на якій відображений результат пройденого тесту, виводиться ПІБ та група особи, що проходила тест, вираховується кінцевий результат та у вигляді таблиці подається аналіз обраних відповідей, яка з них була правильною, а яка ні. Вигляд форми результату зображено на Рисунку 1.7.

Рисунок 1.7 - Результат тестування.

Для даної форми обрав подію windowActivated.

Для виведення результату та даних на екран потрібно було виконати ряд завдань та перевірок, які записані в наступному програмному коді:

Main.r.table.setValueAt(sum, 5, 2);

Main.r.resText.setText("Ваша оцінка: " + (sum));

switch (sum) {

case 5: javax.swing.JOptionPane.showMessageDialog(this, "Ваша оцінка - 5!", "Відмінно!", javax.swing.JOptionPane.INFORMATION_MESSAGE); break;

case 4: javax.swing.JOptionPane.showMessageDialog(this, "Ваша оцінка - 4!", "Добре!", javax.swing.JOptionPane.INFORMATION_MESSAGE); break;

case 3: javax.swing.JOptionPane.showMessageDialog(this, "Ваша оцінка - 3!", "Задовільно!", javax.swing.JOptionPane.INFORMATION_MESSAGE); break; case 2: javax.swing.JOptionPane.showMessageDialog(this, "Ваша оцінка - 2!", "Незадовільно!", javax.swing.JOptionPane.INFORMATION_MESSAGE); break;

case 1: javax.swing.JOptionPane.showMessageDialog(this, "Ваша оцінка - 1!", "Незадовільно!", javax.swing.JOptionPane.INFORMATION_MESSAGE); break;

case 0: javax.swing.JOptionPane.showMessageDialog(this, "Ваша оцінка - 0!", "Повний нуль!", javax.swing.JOptionPane.INFORMATION_MESSAGE); break;

}

}

Також запрограмував кнопку виходу з тесту:

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {

System.exit(0);

ВИСНОВКИ

Під час виконання даної курсової роботи була розроблена програма, яка дає можливість проводити контроль знань студента з теми «Класи» за допомогою тестів. При запуску проекту, почергово з'являються п'ять питань, на які потрібно дати відповіді, після чого буде показана оцінка за контроль.

Перевагою даної програми для тестування є те, що в ній відображені різні методи подачі запитань та відповідей. Також тут є можливість пропустити запитання, відповідаючи на яке, виникають труднощі, і повернутись до нього пізніше. При отриманні результатів є можливість проаналізувати відповіді, які були дані.

Дана програма має певні недоліки, що не дозволять їй бути широко застосованою на практиці. До таких, зокрема, можна віднести те, що в ній невелика кількість запитань, вони завжди повторюються, не враховується можливість надання частково правильної відповіді, результати по тестуванню не зберігають, а можна було б створити певну базу, де б вказувалось який студент на скільки пройшов тести. Також важливим недоліком вважаю те, що моя програма розроблена на перевірку знань, а варто було б створити такі запитання, які б могли охарактеризувати рівень розуміння того чи іншого матеріалу та на вміння виконувати різного роду завдання. Ці недоліки можна усунути шляхом подальшого вдосконалення проекту.

Зміна питань, при кожному наступному запуску проекту мала б бути обов'язковою, оскільки при проходженні тестового контролю студенти запам'ятовують запитання і після використання наступної спроби вкажуть вже підготовані відповіді, внаслідок чого контроль не буде об'єктивним.

До недоліків також можна віднести те, що тут не враховується фактор часу. Фактор часу також відіграє важливу роль, адже не потрібно давати студентові занадто багато часу на обдумування запитання. Студент, який досконало володіє матеріалом, відразу дає відповіді на питання, а студент, який не знає теми, при можливості без часового контролю матиме можливість списати, що знову говорить про необ'єктивність оцінювання знань.

На мою думку вагомим недоліком є сам інтерфейс програми, так як його простота не привертає до себе уваги. Якщо з іншої сторони глянути на цю проблему, то яскраві кольори та різноманітні кольори не відволікатимуть увагу студента, що є плюсом для самого тестувальника, а от на рахунок попиту, то дана програма з таким зовнішнім виглядом не матиме ніякого попиту серед користувачів, маючи на увазі викладачів.

Але якщо краще освоїти мову програмування, з якою ми працювали, то всі ці недоліки можна усунути.

ПЕРЕЛІК ПОСИЛАНЬ

1. Економічна теорія. Навчально-методичний посібник для студентів неекономічних спеціальностей. / Упоряд. О.І. Баєва, Б.Ю. Юхнов, М.В. Віскова, І.В.Колупаєва.- Харків: УІПА. 2008 . -190 с.

2. Эффективная работа. Java 2. Джуди Бишоп

3. Искусство программирования на JAVA. Герберт Шилдт, Джеймс Холмс

4. ПРАКТИЧЕСКОЕ РУКОВОДСТВО ПО ИЗУЧЕНИЮ JAVA. Блинов И.Н., Романчик В.С.

5. http://revolution.allbest.ru/pedagogics/00035932_0.html

6. Java 2. Библиотека профессионала, том 1. Основы. Кей Хорстманн, Гари Корнелл

7. Java 2. Библиотека профессионала, том 2. Тонкости программирования. К. Хорстманн, Г. Корнелл.

8. JAVA в примерах. Справочник. Дэвид Флэнаган

9. JAVA. Справочник. Дэвид Флэнаган

10. Java 2. Патрик Ноутон, Герберт Шилдт

Размещено на Allbest.ru

...

Подобные документы

  • Дослідження теоретичних аспектів проектування автоматизованих систем тестування знань. Розробка програми, яка призначена для забезпечення автоматизації процесу формування тестів та всього процесу контролю знань у дистанційній навчальній системі.

    дипломная работа [2,1 M], добавлен 26.10.2012

  • Характеристика проблемних моментів автоматизації процесу формування питань у білеті для визначення рівня знань студента. Розробка бази вимог щодо організації перевірки якості знань і програмного забезпечення для організації та управління даними бази.

    курсовая работа [2,6 M], добавлен 06.12.2013

  • Педагогічні умови успішної організації контролю знань учнів професійно-технічних навчальних закладів. Розробка плану-конспекту підсумкового заняття з дисципліни "Основи інформатики" з теми: "Microsoft Office Word". Формування культури тестування школярів.

    курсовая работа [833,3 K], добавлен 20.06.2011

  • Аналіз сучасних методів тестування та практичних особливостей проведення тестового контролю. Основи побудови інформаційно-математичної моделі. Алгоритм запису інформації в таблицю бази даних. Характеристика та шляхи розробки інтерфейсу редактора тестів.

    курсовая работа [1,7 M], добавлен 08.10.2010

  • Теоретичне дослідження особливостей проектування систем дистанційного навчання. Створення програмного забезпечення процедури статистичної обробки результатів тестування знань і оцінки якості тесту. Економічне обґрунтування доцільності розробки програми.

    дипломная работа [3,6 M], добавлен 22.10.2012

  • Класичні технології розробки настільних тестових програм. Структурна модель предметної області. Підхід до побудови настільних додатків на основі веб-технологій. Диаграма класів тестової програми каріотипування людини. Вимоги до програмного забезпечення.

    дипломная работа [1,4 M], добавлен 16.09.2016

  • Аналіз технологій розробки тестових програм та методів каріотипування людини. Розробка та реалізація програмного продукту з карі опитування людини. Інструкція користувача для швидкого опановування тестовою програмою студентами біологічного факультету.

    дипломная работа [1,6 M], добавлен 09.08.2016

  • Розробка логічної гри "Тетріс" у складі набору об’єктно-орієнтованих моделей, програмного коду з використанням об’єктно-орієнтованної мови Java. Проектування архітектури гри, аналіз вимог до неї, опис реалізації, кодування та тестування програми.

    курсовая работа [2,2 M], добавлен 24.10.2010

  • Особливості cтвoрення графічного iнтерфейcу тестової програми, яка рoзрoблена в візуальному cередoвищi програмування Delphi. Пoбудoва iнфoрмацiйнo-математичнoї мoделi задачi. Реалiзацiя прoекту у вiзуальнoму cередoвищi. Iнcтрукцiя з екcплуатацiї прoграми.

    курсовая работа [4,8 M], добавлен 25.09.2010

  • Створення програми, в якій є можливість вибрати три режими: редактор питань, перегляд рекордів гри та пункт для того щоб, розпочати нову гру. Побудова інформаційно-математичної моделі задачі. Розробка інтерфейсу програми з користувачем, її тестування.

    дипломная работа [2,7 M], добавлен 28.10.2014

  • Розробка сайту, який буде мати можливість наповнення інформацією про стан команд та їх гравців у лізі в режимі реального часу. Переваги використання технології web 2.0. Написання програмного коду веб-сайту та його реалізація, головна сторінка Index.php.

    дипломная работа [3,4 M], добавлен 18.08.2014

  • Розробка програми калькулятора, що може виконувати найголовніші арифметичні операції над двома числами. Вимоги до апаратного і програмного забезпечення. Опис форм та компонентів програми. Розробка алгоритмів програмного забезпечення. Опис коду програми.

    курсовая работа [57,1 K], добавлен 31.05.2013

  • Дослідження алгоритму роботи та коду програми. Оцінка методом "чорного ящика". Тестування і налагодження розробленої програми на алгоритмічній мові високого рівня. Оцінювання якості програмного забезпечення за об’єктно-орієнтованими метриками зв’язності.

    курсовая работа [143,1 K], добавлен 11.03.2021

  • Класифікація експертних систем. Представлення знань, переваги та слабкі місця. База знань як елемент експертної системи. Сфера застосувань та перспективи розвитку. Створення експертної системи для оцінки ступеня підготовленості студента до іспиту.

    курсовая работа [1,4 M], добавлен 04.02.2014

  • Розробка програми, яка б дозволяла протестувати знання з дисципліни "Програмування на мові С", виставити оцінку. Опис та обґрунтування методу організації вхідних та вихідних даних, вибору складу технічних та програмних засобів. Проведення лістингу.

    курсовая работа [11,0 K], добавлен 08.08.2009

  • Огляд існуючих методів розробки компіляторів, детальний опис мови. Характеристика та специфіка процесу розробки програми компілятора на рівні блок-схем і тексту програми. Подання тексту компілятора, а також результатів тестування розробленої програми.

    курсовая работа [510,2 K], добавлен 03.06.2011

  • Створення мобільного додатку зі зручним та простим у використанні інтерфейсом, який би міг редагувати та використовувати XML-файли та за даними з файлу відтворювати інформацію. Головні функціональні вимоги до нього та аналіз структури програмного коду.

    курсовая работа [107,7 K], добавлен 03.12.2016

  • Написання програми, яка дозволяє перейменувати файл і скопіювати задані файли та каталоги. Використання рекурсивної функції для перегляду дерева підкаталогів при вході в них. Використання системного сервісу файлу, який зосереджено в перериванні 21h.

    курсовая работа [11,8 K], добавлен 12.08.2009

  • Побудова інформаційно-математичної моделі та алгоритм задачі. Визначення структури даних. Розробка інтерфейсу програми з користувачем. Складання коду програми. Реалізація проекту у візуальному середовищі. Тестування та інструкція з експлуатації програми.

    курсовая работа [1,3 M], добавлен 14.04.2009

  • Аналіз сучасних та класичних технологій розробки настільних тестових програм, методів каріотипування людини. Підхід до побудови настільних додатків на основі веб-технологій. Розроблення інструкції користувача для швидкого опанування тестової програми.

    дипломная работа [1,4 M], добавлен 07.09.2016

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