
- •Разработка компьютерного теста с выбором правильного варианта ответа из нескольких предложенных
- •1. Определение содержания теста
- •2. Определим способ хранения вопросов и правильных вариантов ответов: в файле на диске, или в массиве в программе
- •3. Разработка интерфейса и описание обработчиков событий для главной формы приложения
- •4. Формирование интерфейса и описание обработчиков событий тестовой формы
- •5. Формирование интерфейса и описание обработчиков событий формы для показа результатов тестирования
Разработка компьютерного теста с выбором правильного варианта ответа из нескольких предложенных
Например, разработаем тест по теме «Устройство ЭВМ», содержащий 3 вопроса, по 4 варианта ответа на каждый вопрос.
1. Определение содержания теста
Вначале составим сами варианты вопросов, варианты ответов к ним, и правильные варианты ответов на каждый вопрос.
1 Стандартное устройство ввода
Принтер
Клавиатура
Мышь
Монитор
Клавиатура
2. Укажите единицы измерения частоты работы процессора
Гц
Мб
бит
байт
Гц
3. Стандартное устройство вывода
Принтер
Клавиатура
Мышь
Монитор
Монитор
2. Определим способ хранения вопросов и правильных вариантов ответов: в файле на диске, или в массиве в программе
При хранении вопросов теста в файле на диске необходимо сначала разработать дополнительный модуль программы, который будет эти вопросы, варианты ответов и правильный ответ записывать в типизированный файл. Вопросы можно записывать и в обычный текстовый, но тогда учащийся может открыть этот текстовый файл и просто прочитать правильный вариант ответа. В связи со сказанным выше, мы выберем более простой способ хранения вопросов и ответов к ним – в массиве в программе. Этот массив должен содержать 3 вопроса, поэтому в нем будет 3 строки. В каждой строке будет содержаться сам вопрос теста, 4 варианта ответов и правильный вариант ответа, поэтому в данном массиве будет 6 столбцов.
Выглядеть данный массив будет следующим образом:
|
0 |
1 |
2 |
3 |
4 |
5 |
0 |
Стандартное устройство ввода |
Принтер |
Клавиатура |
Мышь |
Монитор |
Клавиатура |
1 |
Укажите единицы измерения частоты работы процессора |
Гц |
Мб |
бит |
байт |
Гц |
2 |
Стандартное устройство вывода |
Принтер |
Клавиатура |
Мышь |
Монитор |
Монитор |
Для контроля ответов нужно ввести массив с номерами выбранных пользователем ответов на каждый вопрос. Назовем этот массив MasOtv . В нем будет столько элементов, сколько вопросов в тесте.
3. Разработка интерфейса и описание обработчиков событий для главной формы приложения
Для главной формы нашего приложения разработаем интерфейс, предложенный на рисунке 1.
Рисунок 1. Интерфейс главной формы приложения.
Сделаем двойной щелчок по кнопке «Начать тест» и выполним следующие действия:
В описание класса добавим массив вопросов и варианты ответа на них, массив с номерами выбранных пользователем ответов, переменную для хранения номера очередного вопроса.
Выполним инициализацию (заполнение) описанных массивов и переменных.
Опишем команды создания второй формы, вывода первого вопроса на нее и команду модального показа второй формы.
После внесения сделанных нами изменений текст модуля должен выглядеть следующим образом (комментарии набирать не требуется):
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 WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
public static string[,] MasVopr; // описание массива с вопросами теста
public static int[] MasOtv = new int[3]; // описание и начальная инициализация массива с номерами ответов пользователя
public static int NVopr = 0; // описание переменной, хранящей номер текущего вопроса теста
// обработчик нажатия на кнопку "Начать тест"
private void button1_Click(object sender, EventArgs e)
{
// задаем размеры массива с вопросами
MasVopr = new string[3, 6];
// заполнение массива с вопросами. Вы можете ввести свои вопросы теста
MasVopr[0, 0] = "Стандартное устройство ввода";
MasVopr[0, 1] = "Принтер";
MasVopr[0, 2] = "Клавиатура";
MasVopr[0, 3] = "Мышь";
MasVopr[0, 4] = "Монитор";
MasVopr[0, 5] = "Клавиатура";
MasVopr[1,0]="Укажите единицы измерения частоты работы процессора";
MasVopr[1,1]="Гц";
MasVopr[1,2]="Мб";
MasVopr[1,3]="бит";
MasVopr[1,4]="байт";
MasVopr[1,5]="Гц";
MasVopr[2, 0] = "Стандартное устройство вывода";
MasVopr[2, 1] = "Принтер";
MasVopr[2, 2] = "Клавиатура";
MasVopr[2, 3] = "Мышь";
MasVopr[2, 4] = "Монитор";
MasVopr[2, 5] = "Монитор";
// записываем в качестве номеров ответов пользователя значения -1
for (int i = 0; i < MasOtv.Length; i++) MasOtv[i] = -1;
// создаем вторую форму
Form2 f2 = new Form2();
// для второй формы вызываем функцию, которая выводит на вторую форму вопрос, варианты ответов на него
f2.ShowVopr(NVopr);
// модально показываем вторую форму
f2.ShowDialog();
}
}
}