Предлагаемые методические рекомендации отображают проектирование, оформление и разработку тестирующих программ в среде программирования Delphi.
Рекомендуются учителям информатики, учителям школьных предметов, учащимся старших классов общеобразовательных средних школ с углубленным изучением информатики.
Введение
Ощутимые шаги в раскрытии глубинных закономерностей человеческого обучения, сделанные мировой дидактикой, а также бурный прогресс в области развития персональных компьютеров выводят педагогов на необходимость создания электронных тестирующих программ для самоконтроля и самопроверки знаний обучающихся.
Основная цель данных методических рекомендаций состоит в том, чтобы дать знания о технологии создания тестирующих программ в среде программирования Delphi.
В результате использования этих рекомендаций могут быть сформированы умения и навыки проектирования тестирующих программ в среде программирования Delphi.
Создание тестирующей программы с использованием компонентов
TLabel, TButton, TRadioGroup
Требования к предварительной подготовке:
- знать основы программирования в системе Паскаль;
- уметь пользоваться кнопками панелей инструментов и контекстным меню.
Создание интерфейса приложения
1. Создайте проект 1 (презентация).
2. Задайте объектам следующие свойства
Объект | Свойство | Значение |
Форма | Name | Form1 |
Caption | Тест самопроверки | |
Color | cllnfoBk | |
RadioGroup | Name | RadioGroup1, :, RadioGroup5 |
Caption | - | |
Items | :(варианты ответов) | |
ItemIndex | 0,1,2,3 (индекс выбранного переключателя) | |
Font | Times New Roman, обычный, размер 14, цвет тёмно-синий | |
Label | ||
(метка) | Name | Label1,:, Label5 |
Caption | :(текст выбранного вопроса) | |
Font | Times New Roman, полужирный, размер 14, цвет тёмно-синий | |
Label | ||
(метка) | Name | Label4 |
Caption | - | |
Font | Times New Roman, полужирный, размер 14, цвет красный | |
Label | ||
(метка) | Name | Label5 |
Caption | - | |
Font | Times New Roman, полужирный, размер 14, цвет красный | |
Button | ||
(кнопка) | Name | Button1 |
Caption | Число правильных ответов | |
Button | ||
(кнопка) | Name | Button2 |
Caption | Выход |
3.Сохраните проект (File -> Save All) в своей папке.
Написание кода
1. Напишите программу теста в окне кода.
var
Form1: TForm1;
m,n,k,l,w,v:integer; {указание типа переменных (правильных ответов)}
implementation
{$R *.dfm}
{проверка правильности ответов на поставленные вопросы}
procedure TForm1.RadioGroup1Click(Sender: TObject);
begin m:=0; if RadioGroup1.ItemIndex=1 then m:=m+1 else m:=m; end;
procedure TForm1.RadioGroup2Click(Sender: TObject);
begin n:=0; if RadioGroup2.ItemIndex=0 then n:=n+1 else n:=n; end;
procedure TForm1.RadioGroup3Click(Sender: TObject);
begin k:=0; if RadioGroup3.ItemIndex=0 then k:=k+1 else k:=k; end;
procedure TForm1.RadioGroup4Click(Sender: TObject);
begin w:=0; if RadioGroup4.ItemIndex=0 then w:=w+1 else w:=w; end;
procedure TForm1.RadioGroup5Click(Sender: TObject);
begin v:=0; if RadioGroup5.ItemIndex=2 then v:=v+1 else v:=v; end;
{подсчёт правильных ответов и вывод результата тестирования}
procedure TForm1.Button1Click(Sender: TObject);
begin l:=m+n+k+w+v; if l=5 then
begin Label4.Caption:=IntToStr(l); Label5.Caption:='Отлично!'; end else if l=4 then
begin Label4.Caption:=IntToStr(l); Label5.Caption:='Хорошо! Но Вам необходимо повторить теоретический материал.'; end else if l<=3 then
begin Label4.Caption:=IntToStr(l); Label5.Caption:='Плохо! Учите!' end; end;
{выход из программы}
procedure TForm1.Button2Click(Sender: TObject); begin close; end; end.
2.Сохраните форму и проект в своей папке.
Создание тестирующей программы с использованием компонентов TLabel, TButton, TRadioGroup, TMainMenu
Создание интерфейса приложения
1.Создайте проект 2 (презентация).
Для этого добавьте на форму следующие компоненты:
- компонент MainMenu, состоящий из пунктов: Тест (Выход) и Помощь (Инструкция, О программе);
- метку для текста вопросов и вывода результата теста в виде строки ":правильных ответов из 10 вопросов";
- метку "Следующий ответ";
- группу зависимых переключателей для вариантов ответов (RadioGroup1,:, RadioGroup10), которые накладываются друг на друга;
- кнопку "Результат тестирования".
2. Задайте объектам следующие свойства.
Объект | Свойство | Значение |
Форма | Name | Form1 |
Caption | Тест по информатике | |
Color | clSkyBlue | |
MainMenu | Name | MainMenu1 |
Label | ||
(метка) | Name | Label1 |
Caption | :(текст вопроса) | |
Font | MS Sans Serif, полужирный курсив, размер 14, цвет тёмно-синий | |
Label | ||
(метка) | Name | Label2 |
Caption | Следующий вопрос | |
Font | MS Sans Serif, полужирный, размер 14, цвет сиреневый | |
Button | ||
(кнопка) | Name | Button1 |
Caption | Выход | |
Font | MS Sans Serif, полужирный курсив, размер 14, цвет чёрный | |
Button | ||
(кнопка) | Name | Button2 |
Caption | Результат тестирования | |
Font | MS Sans Serif, полужирный курсив, размер 14, цвет чёрный | |
Visible | False | |
RadioGroup | Name | RadioGroup1, :, RadioGroup10 |
Caption | - | |
Items | :(варианты ответов) | |
ItemIndex | 0,1,2,3 (индекс выбранного переключателя) | |
Font | Times New Roman, обычный, размер 14, тёмно-синий | |
Visible | для RadioGroup1 - True для RadioGroup2,:, RadioGroup10 - False |
3.Сохраните проект (File -> Save All) в своей папке.
Написание кода
1. Запрограммируйте метку Label2 ("Следующий вопрос") так, чтобы в метке Label1 выводился следующий вопрос, варианты ответа на него, и при достижении последнего вопроса метка Label2 становилась недоступной.
2. При написании программы следуйте инструкции:
- повторный выбор ответа на вопрос недоступен;
- результат тестирования вывести в метке Label1 по щелчку кнопки Button2;
- пункт главного меню "Выход" закрывает программу;
- пункт главного меню "О программе" выводит окно формы About Box (для этого необходимо выполнить команду File -> New-> Other, закладка Forms, форма About );
- пункт главного меню "Инструкция" выводит информационное окно.
3.Напишите программу теста в окне кода.
Var Form1: TForm1;
{указание типа переменных (правильных ответов)}
a,b,c,d,f,g,j,l,m,n,k,p:integer; implementation uses Unit2; {$R *.dfm}
{проверка правильности ответов на поставленные вопросы}
procedure TForm1.RadioGroup1Click(Sender: TObject);
begin a:=0; if RadioGroup1.ItemIndex=0 then a:=a+1 else a:=a; RadioGroup1.Visible:=False; end;
procedure TForm1.RadioGroup2Click(Sender: TObject);
begin b:=0; if RadioGroup2.ItemIndex=1 then b:=b+1 else b:=b; RadioGroup2.Visible:=False; end;
procedure TForm1.RadioGroup3Click(Sender: TObject);
begin d:=0; if RadioGroup3.ItemIndex=1 then d:=d+1 else d:=d; RadioGroup3.Visible:=False; end;
procedure TForm1.RadioGroup4Click(Sender: TObject);
begin c:=0; if RadioGroup4.ItemIndex=0 then c:=c+1 else c:=c; RadioGroup4.Visible:=False; end;
procedure TForm1.RadioGroup5Click(Sender: TObject);
begin f:=0; if RadioGroup5.ItemIndex=3 then f:=f+1 else f:=f; RadioGroup5.Visible:=False; end;
procedure TForm1.RadioGroup6Click(Sender: TObject);
begin g:=0; if RadioGroup6.ItemIndex=2 then g:=g+1 else g:=g; RadioGroup6.Visible:=False; end;
procedure TForm1.RadioGroup7Click(Sender: TObject);
begin j:=0; if RadioGroup7.ItemIndex=1 then j:=j+1 else j:=j; RadioGroup7.Visible:=False; end;
procedure TForm1.RadioGroup8Click(Sender: TObject);
begin l:=0; if RadioGroup8.ItemIndex=1 then l:=l+1 else l:=l; RadioGroup8.Visible:=False; end;
procedure TForm1.RadioGroup9Click(Sender: TObject);
begin m:=0; if RadioGroup9.ItemIndex=3 then m:=m+1 else m:=m; RadioGroup9.Visible:=False; end;
procedure TForm1.RadioGroup10Click(Sender: TObject);
begin n:=0; if RadioGroup10.ItemIndex=2 then n:=n+1 else n:=n; RadioGroup10.Visible:=False; end;
{вывод вопроса и вариантов ответа в метке Label1 по щелчку метки Label2("Следующий вопрос")}
procedure TForm1.Label2Click(Sender: TObject);
begin k:=k+1; case k of
1: begin Label1.Caption:='2 вопрос. Массовое производство компьютеров началось в:';
RadioGroup2.Visible:=True; end;
2: begin Label1.Caption:='3 вопрос. Элементной базой процессоров ЭВМ 2-ого поколения являлись:'; RadioGroup3.Visible:=True; end;
3:begin Label1.Caption:='4 вопрос. Какое устройство не предназначено для обработки информации?'; RadioGroup4.Visible:=True; end;
4:begin Label1.Caption:='5 вопрос. За минимальную единицу измерения количества информации принят:'; RadioGroup5.Visible:=True; end;
5:begin Label1.Caption:='6 вопрос. Сколько байтов занимает в памяти ПК слово ПОБЕДА?:';
RadioGroup6.Visible:=True; end;
6:begin Label1.Caption:='7 вопрос. Производительность работы компьютера зависит от:';
RadioGroup7.Visible:=True; end;
7:begin Label1.Caption:='8 вопрос. Какое устройство может оказывать вредное воздействие на здоровье человека?'; RadioGroup8.Visible:=True; end;
8:begin Label1.Caption:='9 вопрос. При выключении компьютера вся информация стирается:';
RadioGroup9.Visible:=True; end;
9:begin Label1.Caption:='10 вопрос. В целях сохранения информации дискеты необходимо оберегать от:'; RadioGroup10.Visible:=True; Button2.Visible:=True;Label2.Visible:=False; end; end;
end;
{подсчёт правильных ответов и вывод результата тестирования}
procedure TForm1.Button2Click(Sender: TObject);
begin p:= a+b+c+d+f+g+j+l+m+n; if p=10 then
begin Label1.Caption:=IntToStr(p)+' правильных ответов из 10 вопросов.'+' Отлично!'; end
else if p>=8 then
begin Label1.Caption:=IntToStr(p)+' правильных ответов из 10 вопросов.'+' Хорошо!'; end
else if p=7 then
begin Label1.Caption:=IntToStr(p)+' правильных ответов из 10 вопросов.'+' Удовлетворительно.';
end else if p<7 then
begin Label1.Caption:=IntToStr(p)+' правильных ответов из 10 вопросов.'+' Плохо! Учите!'; end;
end;
{выход из программы по кнопке Button1}
procedure TForm1.Button1Click(Sender: TObject); begin close; end;
{выход из программы по щелчку пункта главного меню "Выход"}
procedure TForm1.N2Click(Sender: TObject);
begin close; end;
{подключение формы AboutBox}
procedure TForm1.N4Click(Sender: TObject);
begin AboutBox.show; end;
{вывод информационного окна по пункту главного меню "Инструкция"}
procedure TForm1.N5Click(Sender: TObject);
begin MessageDlgPos('Будьте внимательны при выборе варианта ответа! Повторный выбор ответа на вопрос недоступен!',mtInformation,[mbOK],0,300,200); end; end.
4.Сохраните форму и проект в своей папке.
Создание тестирующей программы с использованием компонентов
TLabel, TButton, TRadioGroup, TPageControl, TImage, TPanel, TMainMenu
Создание интерфейса приложения
1.Создайте проект 3 (презентация).
Для этого добавьте на форму следующие компоненты:
- компонент MainMenu, состоящий из пунктов: Тест (Результат, Выход) и Помощь (Инструкция, О программе);
- метку для вывода результата теста в виде строки ":правильных ответов из 6 вопросов";
- компонент PageControl (страница WIN32), который содержит вкладки с номерами вопросов;
- на каждую вкладку поместите метку с текстом вопроса и группу зависимых переключателей для вариантов ответов (RadioGroup) с 3-4 вариантами ответов;
- кнопку выхода из программы;
- компонент Image (страница ADDITIONAL);
- шесть компонентов Panel разместить таким образом, чтобы закрыть компонент Image.
2.Задайте объектам следующие свойства.
Объект | Свойство | Значение |
Форма | Name | Form1 |
Caption | Тестирующая программа по информатике | |
Color | clSkyBlue | |
MainMenu | Name | MainMenu1 |
Label | ||
(метка) | Name | Label1 |
Caption | - | |
Font | MS Sans Serif, полужирный курсив, размер 14, цвет красный | |
Label | ||
(метка) | Name | Label2,:, Label7 |
Caption | :(текст вопроса) | |
Font | MS Sans Serif, полужирный курсив, размер 12, цвет тёмно-синий | |
Button | ||
(кнопка) | Name | Button1 |
Caption | Выход | |
Font | MS Sans Serif, полужирный курсив, размер 14, цвет чёрный | |
Image | Name | Image1 |
Visible | True | |
Stretch | True | |
Picture | указать путь к рисунку | |
Panel | Name | Panel1,:,Panel6 |
Caption | 1,:6 | |
PageControl | Name | PageControl1 |
Active Pages | TabSheet1 | |
Visible | True | |
TabSheet1,:, TabSheet6 | Name | TabSheet1,:,TabSheet6 |
Caption | вопрос1,:,вопрос6 | |
RadioGroup | Name | RadioGroup1, :, RadioGroup6 |
Caption | - | |
Items | :(варианты ответов) | |
ItemIndex | 0,1,2,3 (индекс выбранного переключателя) |
3.Сохраните проект (File -> Save All) в своей папке.
Написание кода
1. При написании кода программы следуйте инструкции:
- повторный выбор ответа на вопрос недоступен;
- при правильном выборе ответа на вопрос открывается часть рисунка (компонент Image);
- пункт главного меню "Результат" выводит в метке Label1 результат тестирования;
- пункт главного меню "Выход" закрывает программу;
- пункт главного меню "О программе" выводит окно формы About Box (для этого необходимо выполнить команду File -> New-> Other, закладка Forms, форма About );
- пункт главного меню "Инструкция" выводит информационное окно.
2. Напишите программу теста в окне кода.
var Form1: TForm1;
{указание типа переменных (правильных ответов)}
m,n,k,w,l,s,z:integer; implementation uses Unit2; {$R *.dfm}
{выход из программы по кнопке Button1}
procedure TForm1.Button1Click(Sender: TObject);
begin close; end;
{проверка правильности ответов на поставленные вопросы и при правильном выборе ответа на вопрос открытие части рисунка }
procedure TForm1.RadioGroup1Click(Sender: TObject);
begin n:=0; if RadioGroup1.ItemIndex=0 then begin n:=n+1; Panel1.Visible:=False; end else n:=n;
RadioGroup1.Visible:=False; end;
procedure TForm1.RadioGroup2Click(Sender: TObject);
begin m:=0; if RadioGroup2.ItemIndex=2 then begin m:=m+1;Panel2.Visible:=False; end else m:=m;
RadioGroup2.Visible:=False; end;
procedure TForm1.RadioGroup3Click(Sender: TObject);
begin k:=0; if RadioGroup3.ItemIndex=0 then begin k:=k+1; Panel4.Visible:=False; end else k:=k;
RadioGroup3.Visible:=False; end;
procedure TForm1.RadioGroup4Click(Sender: TObject);
begin w:=0; if RadioGroup4.ItemIndex=0 then begin w:=w+1; Panel3.Visible:=False; end else w:=w;
RadioGroup4.Visible:=False;end;
procedure TForm1.RadioGroup5Click(Sender: TObject);
begin s:=0; if RadioGroup5.ItemIndex=1 then begin s:=s+1; Panel5.Visible:=False; end else s:=s;
RadioGroup5.Visible:=False; end;
procedure TForm1.RadioGroup6Click(Sender: TObject);
begin z:=0; if RadioGroup6.ItemIndex=1 then begin z:=z+1; Panel6.Visible:=False; end else z:=z;
RadioGroup6.Visible:=False;end;
{подсчёт правильных ответов и вывод результата тестирования по пункту главного меню "Результат"}
procedure TForm1.N3Click(Sender: TObject);
begin l:=m+n+k+w+s+z; Label1.Caption:=IntToStr(l)+' правильных ответов из 6 вопросов'; end;
{выход из программы по пункту главного меню "Выход"}
procedure TForm1.N4Click(Sender: TObject);
begin close; end;
{подключение формы AboutBox}
procedure TForm1.N7Click(Sender: TObject);
begin AboutBox.show; end;
{вывод информационного окна по пункту главного меню "Инструкция"}
procedure TForm1.N6Click(Sender: TObject);
begin MessageDlgPos('Будьте внимательны при выборе варианта ответа!
Повторный выбор ответа на вопрос недоступен!',mtInformation,[mbOK],0,300,200); end; end.
3.Сохраните форму и проект в своей папке.
Литература
1. Анеликова Л.А. Тесты. Информатика и информационные технологии. - Москва: Дрофа, 2004.
2. Валеева Ю.А. Объектно-ориентированное программирование в среде Delphi. - Новокузнецк, 2003.
3. Дробахина А.Н., Можаров М.С. Структурирование содержания профессиональной подготовки учителя информатики средствами современного гипертекста. - Новокузнецк, 2003.