Создание тестирующих программ в среде программирования Delphi

Разделы: Информатика


Предлагаемые методические рекомендации отображают проектирование, оформление и разработку тестирующих программ в среде программирования 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.