Задание для самостоятельного выполнения




Практическая работа №7, ТЕСТ ПО ФИЗИКЕ

Постановка задачи

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

После запуска программы появляется изображение аналогичное.

Рис. 16
Пользователь, перемещаясь с помощью клавиш-стрелок по списку «Физическая величина» выбирает любое слово, нажав клавишу «Enter». Затем он переходит в список «Название величины» и выбирает соответствующее название физической величины.

Если выбрано правильное название величины, то под словом «Оценка» появляется одобрительная реплика «Правильно», если выбрано неправильное слово, то – «Ошибка». Количество попыток ответа соответствует количеству записей в списке «Физическая величина».

 

Новым в этой работе является:

- обеспечение взаимодействия двух списков ListBox (вкладка Стандартные элементы управления)

- создание многострочных надписей в компоненте Label.

 

План разработки программы

1. Откройте новый проект.

2. Разместите в форме экземпляры компонент и присвойте заголовки меткам.

 

3. Обратите внимание, что заголовки меток «Физическая величина» и «Название величины» состоят из двух строк и отцентрированы.

4. Для вывода многострочных надписей в Label задайте:

Выделенный объект Вкладка окна Свойства объекта Имя свойства/ Имя события Значение/Действие
Label1 Свойства AutoSize(изменение размера в зависимости от текста в Caption) False
  TextAlign (выравнивание текста) Выбрать центр
         

5. Сохраните код программы и проект.

6. Выделите ListBox1, справа от на кнопке с треугольником. В открывшемся меню выбрать Изменить элементы. В появившемся окне введите физические величины, каждую на новой строке: «Ватт», «Ом», «Вольт», «Ампер».

7. Выделите Listbox2 и проделайте с ним аналогичную работу, введя названия физических величин: «Напряжение», «Сопротивление», «Сила тока», «Мощность».

8. Вставьте в классе объявление переменных:

int Num1, // номер выбранной записи в первом окне

Num2, // номер выбранной записи во втором окне

CountR, // количество правильных ответов

CountC, // общее количество ответов

CountN; // общее количество вопросов теста

 

9. Создайте следующие процедуры обработки событий:

Выделенный объект Имя события Действие
Form1 Activated CountN =4; // количество записей CountC =0;
ListBox1 KeyPress if (e.KeyChar == (char)Keys.Enter) { Num1 = listBox1.SelectedIndex; listBox2.Focus(); } Комментарий Запоминает в переменной Num1 номер выбранной записи в первом окне. Делает активным объект Listbox2, т.е. после окончания ввода фокус перейдет в окно ввода Listbox2.
ListBox2 KeyPress if (e.KeyChar == (char)Keys.Enter) switch (listBox2.SelectedIndex) { case 0: Num2 = 2; break; case 1: Num2 = 1; break; case 2: Num2 = 3; break; case 3: Num2 = 0; break; } if (Num1 == Num2) { label4.Text = "Верно"; CountR++; } else label4.Text = "Ошибка"; CountC++; if (CountC == CountN) MessageBox.Show("Тест окончен. Баллы: "+ Convert.ToDouble(CountR/CountN * 5) +" (правильных ответов: " + (CountR) + ")"); listBox1.Focus(); }

Комментарий

Если выбрана запись во втором окне, то ее номер сравнивается на соответствие с ранее выбранным номером из первого окна (оператор Switch). В зависимости от результата сравнения выдается сообщение о правильности ответа, а затем проверяется на все ли вопросы получен ответ.

Задание для самостоятельного выполнения

1. Списки ListBox1 и ListBox2 сделайте поочередно доступными после нажатия клавиши Enter.

Подсказка. Установить значение False свойству Enabled компонента ListBox2, а в процедуру KeyPressed, относящуюся к ListBox1, включить строки:

ListBox2.Enabled = True;

ListBox1.Enabled = False;

3. Сделайте доступными списки ListBox1 и ListBox2 ни только после нажатия клавиши Enter, но и по щелчку мыши.

4. Расширьте количество физических величин до 10. Внести необходимые изменения в программу.

5. Сделайте так чтобы баллы обнулялись и можно было выполнять тест посе окончания заново. И сделайте так, чтобы после выбора пункта listBox сбрасывал значение SelectedIndex(Для этого в коде пропишите listBox.ClearSelected)

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2019-11-11 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: