
Разработать программу тестирования
Требования к выполняемой программе:
1. Вопросов должно быть не менее 10
2. Должны быть представлены следующие виды вопросов:
Вопрос с одним вариантом ответа
Вопрос с множественными вариантами ответа
Вопрос с возможностью ввода ответа
3. Итог теста должен быть представлен в процентном соотношении
4. Должна быть предусмотрена возможность просмотра списка неправильных ответов
Номер варианта |
Задание |
10 |
Тест по школьной дисциплине “История” |
Для достижения поставленной цели сделаем форму с необходимыми для теста компонентами. Данные компоненты указаны в следующей таблице.
Компонент |
Свойство |
Значение |
Описание |
Form1 |
Text |
Контрольная работа №10 |
Заголовок окна |
Groupbox1 |
Text |
Вопрос + № вопроса |
Отдельный заголовок вопроса |
Groupbox |
Теxt |
Варианты ответов |
Заголовок для отдельной группы объектов выбора ответа |
Label 5 |
Техт |
Текст вопроса |
Текст вопроса |
RadioButton1 |
Text |
RadioButton1 |
Первый вариант ответа радиокнопкой |
RadioButton2 |
Text |
RadioButton2 |
Второй вариант ответа радиокнопкой |
RadioButton3 |
Text |
RadioButton3 |
Третий вариант ответа радиокнопкой |
RadioButton4 |
Text |
RadioButton4 |
Четвертый вариант ответа радиокнопкой |
Checkbox1 |
Text |
Checkbox1 |
Первый вариант ответа чекбоксом |
Checkbox2 |
Text |
Checkbox2 |
Второй вариант ответа чекбоксом |
Checkbox3 |
Text |
Checkbox3 |
Третий вариант ответа чекбоксом |
Checkbox4 |
Text |
Checkbox4 |
Четвертый вариант ответа чекбоксом |
TextBox3 |
Text |
TextBox3 |
Ввод ответа вручную |
Button2 |
Text |
Дальше |
Переход к следующему вопросу и вывод результатов |
Сформированная форма компонентов проиллюстрирована на рисунке 5.
Рисунок 5 - Сформированная форма компонентов теста
Все компоненты группы «Варианты ответов» получили свойство Visible = false и были выставлены друг за другом.
Следующим шагом нужно подставить вопросы после инициализации компонентов и включение определенных компонентов для вопроса.
public Form1()
{
InitializeComponent();
label1.Text = "Сколько республик изначально вошло в состав СССР?";
radioButton1.Text = "4";
radioButton2.Text = "5";
radioButton3.Text = "7";
radioButton4.Text = "10";
groupBox1.Text = "Вопрос " + numbervv;
radioButton1.Visible = true;
radioButton2.Visible = true;
radioButton3.Visible = true;
radioButton4.Visible = true;
}
Далее создадим сброс всех нажатий на компонентах входящие в группу варианты ответов:
private void Uncheck_All()
{
radioButton1.Checked = false;
radioButton2.Checked = false;
radioButton3.Checked = false;
radioButton4.Checked = false;
checkBox1.Checked = false;
checkBox2.Checked = false;
checkBox3.Checked = false;
checkBox4.Checked = false;
textBox3.Text = ""; }
Далее был описан обработчик кнопки:
private void button2_Click(object sender, EventArgs e)
{
if (numbervv == 1)
{
if (radioButton1.Checked)
{
PravOtv++;
OtvText += groupBox1.Text + " - верно\n";
}
else
{
OtvText += groupBox1.Text + " - неверно\n";
}
numbervv++;
label1.Text = "Как, согласно договору об образовании Советского Союза, назывался верховный орган власти в СССР?";
radioButton1.Text = "Совет народных комиссаров";
radioButton2.Text = "Верховный Совет СССР";
radioButton3.Text = "Федеральный саммит СССР";
radioButton4.Text = "Съезд Советов СССР";
groupBox1.Text = "Вопрос " + numbervv;
Uncheck_All();
}
else if (numbervv == 2)
{
if (radioButton4.Checked)
{
PravOtv++;
OtvText += groupBox1.Text + " - верно\n";
}
else
{
OtvText += groupBox1.Text + " - неверно\n";
}
numbervv++;
label1.Text = "Конституция СССР — основной закон Советского Союза. Сколько всего версий конституции было принято за время существования СССР?";
radioButton1.Text = "2";
radioButton2.Text = "3";
radioButton3.Text = "4";
radioButton4.Text = "5";
groupBox1.Text = "Вопрос " + numbervv;
Uncheck_All();
}
else if (numbervv == 3)
{
if (radioButton2.Checked)
{
PravOtv++;
OtvText += groupBox1.Text + " - верно\n";
}
else
{
OtvText += groupBox1.Text + " - неверно\n";
}
numbervv++;
label1.Text = "1929 году был утверждён первый пятилетний план развития СССР. За какой период была выполнена эта пятилетка?";
radioButton1.Text = "3 года";
radioButton2.Text = "3 года и 4 месяца";
radioButton3.Text = "4 года";
radioButton4.Text = "4 года и 3 месяца";
groupBox1.Text = "Вопрос " + numbervv;
Uncheck_All();
}
else if (numbervv == 4)
{
if (radioButton4.Checked)
{
PravOtv++;
OtvText += groupBox1.Text + " - верно\n";
}
else
{
OtvText += groupBox1.Text + " - неверно\n";
}
numbervv++;
label1.Text = "23 августа 1939 года СССР и Германия заключили договор о ненападении, известный как пакт Молотова — Риббентропа. Сколько лет должен был действовать этот договор";
radioButton1.Text = "2 года";
radioButton2.Text = "4 года";
radioButton3.Text = "5 лет";
radioButton4.Text = "10 лет";
groupBox1.Text = "Вопрос " + numbervv;
Uncheck_All();
}
else if (numbervv == 5)
{
if (radioButton4.Checked)
{
PravOtv++;
OtvText += groupBox1.Text + " - верно\n";
}
else
{
OtvText += groupBox1.Text + " - неверно\n";
}
numbervv++;
label1.Text = "В 1989 году прошла последняя перепись населения СССР. Сколько человек, по данным переписи, проживало в Советском Союзе?";
radioButton1.Text = "208,8 миллиона человек";
radioButton2.Text = "262,4 миллиона человек";
radioButton3.Text = "286,7 миллиона человек";
radioButton4.Text = "306,7 миллиона человек";
groupBox1.Text = "Вопрос " + numbervv;
Uncheck_All();
}
else if (numbervv == 6)
{
if (radioButton3.Checked)
{
PravOtv++;
OtvText += groupBox1.Text + " - верно\n";
}
else
{
OtvText += groupBox1.Text + " - неверно\n";
}
numbervv++;
label1.Text = "5 марта 1953 года скончался Иосиф Сталин. Напишите в ответе фамилию того кто сменил его на посту председателя Совета министров СССР.";
radioButton1.Visible = false;
radioButton2.Visible = false;
radioButton3.Visible = false;
radioButton4.Visible = false;
textBox3.Visible = true;
groupBox1.Text = "Вопрос " + numbervv;
Uncheck_All();
}
else if (numbervv == 7)
{
if (textBox3.Text == "Маленков")
{
PravOtv++;
OtvText += groupBox1.Text + " - верно\n";
}
else
{
OtvText += groupBox1.Text + " - неверно\n";
}
numbervv++;
label1.Text = "Республики Союза обладали правом на свободный выход из состава СССР. Какая из них первой воспользовалась этим правом и провозгласила независимость? (Пример: Грузинская)";
groupBox1.Text = "Вопрос " + numbervv;
Uncheck_All();
}
else if (numbervv == 8)
{
if (textBox3.Text == "Литовская")
{
PravOtv++;
OtvText += groupBox1.Text + " - верно\n";
}
else
{
OtvText += groupBox1.Text + " - неверно\n";
}
label1.Text = "Какие руководители были СССР?";
textBox3.Visible = false;
checkBox1.Visible = true;
checkBox2.Visible = true;
checkBox3.Visible = true;
checkBox4.Visible = true;
checkBox1.Text = "Владимир Ильич Ленин";
checkBox2.Text = "Иосиф Виссарионович Сталин";
checkBox3.Text = "Никита Сергеевич Хрущёв";
checkBox4.Text = "Лев Данилович Троцкий";
numbervv++;
groupBox1.Text = "Вопрос " + numbervv;
Uncheck_All();
}
else if (numbervv == 9)
{
if (checkBox2.Checked & checkBox1.Checked & checkBox3.Checked)
{
PravOtv++;
OtvText += groupBox1.Text + " - верно\n";
}
else
{
OtvText += groupBox1.Text + " - неверно\n";
}
label1.Text = "Какие республики входили в состав СССР?";
checkBox1.Text = "Болгария";
checkBox2.Text = "Киргизия";
checkBox3.Text = "Армения";
checkBox4.Text = "Беларусь";
numbervv++;
groupBox1.Text = "Вопрос " + numbervv;
Uncheck_All();
}
else if (numbervv == 10)
{
if (checkBox2.Checked & checkBox4.Checked & checkBox3.Checked)
{
PravOtv++;
OtvText += groupBox1.Text + " - верно\n";
}
else
{
OtvText += groupBox1.Text + " - неверно\n";
}
label1.Text = "Вы выполнили тест на " + Convert.ToString(PravOtv * 10) + "%.";
checkBox1.Visible = false;
checkBox2.Visible = false;
checkBox3.Visible = false;
checkBox4.Visible = false;
button1.Text = "Подробнее";
numbervv = 100;
Uncheck_All();
}
else if (numbervv == 100)
{
MessageBox.Show(OtvText, "Отчет");
}
}
Этот обработчик собирает правильные и неправильные ответы и каждый раз переходит к новому условию в котором описан следующий вопрос со своим набором компонентов, предпоследним условием является вывод результат теста в процентном соотношении и выключение всех компонентов, а последним условием данной кнопки будет вывод отчета о правильных ответах.
Работа данной программы на разных этапах проиллюстрирована на рисунке 6.
Рисунок 6 - Этапы выполнения теста