Как сделать тесты в делфи
Создание тестирующих программ в среде программирования Delphi
Предлагаемые методические рекомендации отображают проектирование, оформление и разработку тестирующих программ в среде программирования Delphi.
Рекомендуются учителям информатики, учителям школьных предметов, учащимся старших классов общеобразовательных средних школ с углубленным изучением информатики.
Введение
Ощутимые шаги в раскрытии глубинных закономерностей человеческого обучения, сделанные мировой дидактикой, а также бурный прогресс в области развития персональных компьютеров выводят педагогов на необходимость создания электронных тестирующих программ для самоконтроля и самопроверки знаний обучающихся.
Основная цель данных методических рекомендаций состоит в том, чтобы дать знания о технологии создания тестирующих программ в среде программирования Delphi.
В результате использования этих рекомендаций могут быть сформированы умения и навыки проектирования тестирующих программ в среде программирования Delphi.
Создание тестирующей программы с использованием компонентов
TLabel, TButton, TRadioGroup
Создание интерфейса приложения
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 | Выход |
Написание кода
1. Напишите программу теста в окне кода.
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
Написание кода
1. Запрограммируйте метку Label2 («Следующий вопрос») так, чтобы в метке Label1 выводился следующий вопрос, варианты ответа на него, и при достижении последнего вопроса метка Label2 становилась недоступной.
3.Напишите программу теста в окне кода.
a,b,c,d,f,g,j,l,m,n,k,p:integer; implementation uses Unit2;
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;
procedure TForm1.Label2Click(Sender: TObject);
1: begin Label1.Caption:=’2 вопрос. Массовое производство компьютеров началось в:’;
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 вопрос. Сколько байтов занимает в памяти ПК слово ПОБЕДА?:’;
6:begin Label1.Caption:=’7 вопрос. Производительность работы компьютера зависит от:’;
7:begin Label1.Caption:=’8 вопрос. Какое устройство может оказывать вредное воздействие на здоровье человека?’; RadioGroup8.Visible:=True; end;
8:begin Label1.Caption:=’9 вопрос. При выключении компьютера вся информация стирается:’;
9:begin Label1.Caption:=’10 вопрос. В целях сохранения информации дискеты необходимо оберегать от:’; RadioGroup10.Visible:=True; Button2.Visible:=True;Label2.Visible:=False; 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
begin Label1.Caption:=IntToStr(p)+’ правильных ответов из 10 вопросов.’+’ Хорошо!’; end
begin Label1.Caption:=IntToStr(p)+’ правильных ответов из 10 вопросов.’+’ Удовлетворительно.’;
end else if p
Объект | Свойство | Значение |
Форма | 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 (индекс выбранного переключателя) |
Написание кода
2. Напишите программу теста в окне кода.
m,n,k,w,l,s,z:integer; implementation uses Unit2;
procedure TForm1.Button1Click(Sender: TObject);
procedure TForm1.RadioGroup1Click(Sender: TObject);
begin n:=0; if RadioGroup1.ItemIndex=0 then begin n:=n+1; Panel1.Visible:=False; end else n:=n;
procedure TForm1.RadioGroup2Click(Sender: TObject);
begin m:=0; if RadioGroup2.ItemIndex=2 then begin m:=m+1;Panel2.Visible:=False; end else m:=m;
procedure TForm1.RadioGroup3Click(Sender: TObject);
begin k:=0; if RadioGroup3.ItemIndex=0 then begin k:=k+1; Panel4.Visible:=False; end else k:=k;
procedure TForm1.RadioGroup4Click(Sender: TObject);
begin w:=0; if RadioGroup4.ItemIndex=0 then begin w:=w+1; Panel3.Visible:=False; end else w:=w;
procedure TForm1.RadioGroup5Click(Sender: TObject);
begin s:=0; if RadioGroup5.ItemIndex=1 then begin s:=s+1; Panel5.Visible:=False; end else s:=s;
procedure TForm1.RadioGroup6Click(Sender: TObject);
begin z:=0; if RadioGroup6.ItemIndex=1 then begin z:=z+1; Panel6.Visible:=False; end else z:=z;
procedure TForm1.N3Click(Sender: TObject);
begin l:=m+n+k+w+s+z; Label1.Caption:=IntToStr(l)+’ правильных ответов из 6 вопросов’; end;
procedure TForm1.N4Click(Sender: TObject);
procedure TForm1.N7Click(Sender: TObject);
begin AboutBox.show; end;
procedure TForm1.N6Click(Sender: TObject);
begin MessageDlgPos(‘Будьте внимательны при выборе варианта ответа!
Повторный выбор ответа на вопрос недоступен!’,mtInformation,[mbOK],0,300,200); end; end.
3.Сохраните форму и проект в своей папке.
Литература
Как сделать тест на delphi
как сделать тест на delphi
помогите пожалуйста, написала тест, оценка, и бал выводятся, но необходимо также чтобы еще.
Delphi 7. Сделать тест по русскому языку
(Перенесено из раздела «Turbo Pascal») Сделать тест по русскому языку. Написать программу для.
Можно ли создать тест в программе My Test Student и запустить этот тест через Delphi?
Здравствуйте! Мне нужна помощь! Я сейчас делаю курсовую, и мне нужно сделать тест, и я хотела бы.
да тут лучше считать формулой какой-то, скажем например 6 вариантов ответа и 4 правильных, если отметили только 3, то 1 недостает, тоже уже получается недочет, лишний тыкнул, тоже получается недочет
У меня тест недавно был на компьютере, там вопрос был поставлен так, что ты хоть что не тыкай ты прав, хоть какую галочку поставь ты снова прав 100% правильный ответ, хоть ничего не отметь, тоже правильно 100%. Плохие программеры программировали тест наверно
ViNew, Мне интересно! Если есть такая возможность, скиньте пожалуйста дистрибутив вместе с программой
ЗАРАНЕЕ ОЧЕНЬ БЛАГОДАРЕН.
Комментарий модератора | ||
|
HyperZen,
Здравствуйте,очень нужен тест с сайта http://st-programming.ru.
Проблема в том что автор того теста выложил нерабочие исходники.Если у вас есть рабочий вариант, выложите его, пожалуйста!
Конкретно ошибка при открытии проекта:
Error reading mainform.DoubleBuffered. Далее либо игнорируем либо продолжаем..
Запускаем старт либо компиляцию, ошибка:
[Error] StData.pas(64): Field definition not allowed after methods or properties
[Error] StData.pas(65): ‘,’ or ‘:’ expected but ‘CONSTRUCTOR’ found
[Error] StData.pas(66): Field definition not allowed after methods or properties
[Error] StData.pas(67): ‘,’ or ‘:’ expected but ‘CLASS’ found
[Error] StData.pas(68): ‘IMPLEMENTATION’ expected but ‘;’ found
[Error] StData.pas(70): ‘.’ expected but ‘IMPLEMENTATION’ found
[Error] StData.pas(17): Unsatisfied forward or external declaration: ‘TStQuestion.Create’
[Hint] StData.pas(46): Private symbol ‘XMLDocument’ declared but never used
[Hint] StData.pas(49): Private symbol ‘LoadData’ declared but never used
[Error] StData.pas(51): Unsatisfied forward or external declaration: ‘TStData.Load’
[Error] StData.pas(52): Unsatisfied forward or external declaration: ‘TStData.LoadFromXml’
[Error] StData.pas(53): Unsatisfied forward or external declaration: ‘TStData.LoadEmpty’
[Error] StData.pas(54): Unsatisfied forward or external declaration: ‘TStData.Save’
[Error] StData.pas(56): Unsatisfied forward or external declaration: ‘TStData.AppendQuestion’
[Error] StData.pas(57): Unsatisfied forward or external declaration: ‘TStData.DeleteQuestion’
[Error] StData.pas(59): Unsatisfied forward or external declaration: ‘TStData.GetInstance’
[Error] StData.pas(65): Unsatisfied forward or external declaration: ‘TStData.Create’
[Fatal Error] MainUnit.pas(7): Could not compile used unit ‘..\lib\StData.pas’
В комментариях к исходникам кто-то написал,что там не хватает деструктора.
Практическая работа № 35 «Тест»
Delphi site: daily Delphi-news, documentation, articles, review, interview, computer humor.
Проект должен содержать последовательность форм, реализующих диалог с тестируемым учащимся.
На первой форме происходит регистрация учащегося.
Фрагмент программы (unitl): uses Unit2;
На второй форме предлагается выбрать один из тестов.
Фрагмент программы (unit2):
На третьей форме предлагается проути тест по информатике.
Фрагмент программы (unit3): uses Unit4, Unit2;
if (Form3.Edit1.Text=’монитор’) or (Form3.Edit1.Text=’Монитор’) or
(Form3.Edit1.Text=’МОНИТОР’) then k:=k+1; if (Form3.Edit2.Text=’Клавиатура’) or (Form3.Edit2.Text=’клавиатура’)
or (Form3.Edit2.Text=’КЛАВИАТУРА’) then k:=k+1; if Form3.Edit3.Text=’8′ then k:=k+1; Form4.Label2.Caption:=IntToStr(k); if k=0 then Form4.Label1.Caption:=’Очень плохо’ else
if k=1 then Form4.Label1.Caption:=’Плохо’ else
if k=2 then Form4.Label1.Caption:=’Хорошо’ else
На следующей форме отображается результат тестирования и предложение о промотре ответа.
Фрагмент программы (unit4): uses Unit1, Unit5, Unit3, Unit2;
На следующей форме отображаются правильные ответы.
Фрагмент программы (unit5):
Если учащийся выбрал тест по математике, то ему предлагается проверить свои знания таблицы умножения. На следующей форме случайным образом выбираются числа. Учащийся должен ввести значение произведения в текстовое поле. С помощью кнопки «проверка» выясняется правильность введенного ответа. Если ответ правильный, то можно сгенерировать следующий пример. После нескольких примеров можно проверить свой рейтинг.
Фрагмент программы (unit6): uses Unit7, Unitl;
При нажатии на кнопке «Ваш рейтинг» на следующей форме появляется результаты рейтенга. Тестирование можно завершить.
Фрагмент программы (unit7): uses Unit6;
Обратите внимание на подключение модулей в строке Uses. Таким образом, происходит обращение к соответствующей форме. Для отображения формы используется функция
Данная функция позволяет показывать форму в работе режима диалога.
Как сделать тесты в делфи
РАЗРАБОТКА ПРОГРАММЫ КОМПЬЮТЕРНОГО ТЕСТИРОВАНИЯ НА ЯЗЫКЕ DELPHI
Автор работы награжден дипломом победителя III степени
введение
В данной работе представлен материал по разработке проекта “Программа компьютерного тестирования”.
Практической целью данной работы является разработка программы тестирования полученных знаний на языке визуального программирования Delphi.
При выполнении этого задания из трёх предложенных вариантов ответа необходимо выбрать один верный. Выбор осуществляется при помощи переключателей.
Для выполнения поставленной цели необходимо решить следующие задачи:
Для подготовки текстового файла подобрать практический материал по теме: ”Визуальный язык программирования Delphi”.
Разработать проект: “Программа компьютерного тестирования”, выполнив последовательно следующие шаги:
— создать текстовый файл;
— создать графический интерфейс;
— создать событийные процедуры;
— компилировать проект в приложение и запустить его на выполнение.
Таким образом, последовательно представлен материал по проектированию: разработка формальной и компьютерной модели с использованием языка программирования Delphi и приведены конкретные примеры компьютерного эксперимента.
Тема достаточно актуальна и представляет практический интерес для учащихся в профильных классах при проверке полученных знаний.
основная часть
разработка программы компьютерного
тестирования на языке delphi
1. описание формальной модели проекта
Проект позволяет контролировать полученные знания учащихся с помощью компьютерного тестирования.
Основные характеристики проекта:
проект обеспечивает работу с тестом произвольной длины (нет ограничений на количество вопросов и ответов в тесте);
вопрос может сопровождать иллюстрацией;
для каждого вопроса может быть до 3-х возможных вариантов ответов со своей оценкой в баллах;
результат тестирования может быть отнесен к одному из 4-х уровней, например, “отлично”, ”хорошо”, ”удовлетворительно” или ”плохо”;
тест представляет собой текстовый файл, созданный в текстовом редакторе Блокнот;
программа инвариантна к различным тестам (имя файла теста указывается как параметр при вызове программы);
в программе не обеспечена возможность возврата к предыдущему вопросу. Если вопрос предложен, то на него должен быть дан ответ.
2. компьютерная модель проекта
2.1. Создать текстовый файл
Тест представляет собой последовательность вопросов, на которые испытуемый должен ответить путем выбора правильного ответа из нескольких предложенных вариантов.
Файл теста состоит из 3-х разделов:
Файл теста начинается заголовком, который содержит общую информацию о тесте, например, о его назначении. Заголовок может состоять из нескольких строк.
За заголовком следует раздел оценок, в котором приводятся названия оценочных уровней и количество баллов, необходимое для достижения этих уровней. Название уровня должно располагаться в одной строке. За разделом оценок следует раздел вопросов теста. Каждый вопрос начинается текстом вопроса, за которым может следовать имя файла иллюстрации, размещаемое в отдельной строке. После вопроса следуют альтернативные ответы. Текст альтернативного ответа может занимать несколько строк. В строке, следующей за текстом ответа, располагается оценка (количество баллов) за выбор этого ответа.
Пример текстового файла:
Программирование на языке Delphi
Назначение библиотечного модуля StdCtrls
Работа с математическими функциями
Дополнительные свойства командной кнопки
Работа в графическом режиме
Назначение объекта Button
Кнопка для компиляции программы
Кнопка для запуска программы
Назначение объекта Label
Для вывода текста в текстовое окно
Для вывода текста в графическое окно
Для вывода текста на форму
Назначение объекта RadioButton
Форма, на которой размещены управляющие элементы
Окно Инспектора объектов
Панель управляющих элементов
Что преобразует функция StrToInt()
Строковый тип в целое число
Строковый тип в число с плавающей точкой
Символьный тип в число с плавающей точкой
Для чего используется процедура ShowMessage()?
Для вывода окна с сообщением и командной кнопкой ОК
В каком текстовом редакторе необходимо создать тест?
Как создать исполняемый файл?
Как запустить исполняемый файл?
Дважды щёлкнуть по исполняемому файлу
Дважды щёлкнуть по Ярлыку исполняемого файла
Cохранить текстовый файл с именем INFORM в отдельную папку.
2.2. Создать графический интерфейс
Поместить на форму (вкладка Standart):
командную кнопку Button1 (OK) для подтверждения выбора альтернативного ответа и перехода к следующему вопросу;
надпись Label1 (буква A) для вывода текста вопроса, начальной информации о тесте и результатов тестирования;
три надписи Label2, Label3, Label4 для вывода текста альтернативных ответов;
три переключателя RadioButton1, RadioButton2, RadioButton3 (круг) для выбора варианта ответа.
В диалоговом окне Инспектор объектов форме Form1 свойству Caption дать значение – Проверка знаний; командной кнопке Button1 свойству Caption дать значение – Дальше.
Чтобы задать значения шрифта, необходимо выделить объект, дважды щёлкнуть по сложному свойству Font со знаком “плюс”, потом щёлкнуть на командную кнопку с тремя точками. В появившемся диалогом окне для Label1: шрифт – MS Sans Serif, начертание – полужирный, размер – 12 (рис. 1); для Label2 – Label4: начертание – обычный, размер – 12; для Button1: шрифт – MS Sans Serif, начертание – обычный, размер – 12; для всех меток свойству AutoSize дать значение False, свойствам ParentFont и WordWrap – True.
Рис. 1. Для метки Label1 выбрать шрифт и задать его параметры
Окончательный вид формы разрабатываемого проекта представлен на (рис. 2).
Рис. 2. Форма разрабатываемого проекта
2.3. Создать событийные процедуры
После создания формы в окно редактора кода следует поместить описание глобальных переменных программы и процедур общего назначения. Для использования дополнительных свойств командной кнопки Button1 в раздел интерфейса (interface) после слова uses в перечень библиотечных модулей добавить модуль StdCtrls. Затем можно приступить к созданию программного кода с описанием процедур обработки событий:
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure RadioButton1Click(Sender: TObject);
procedure RadioButton2Click(Sender: TObject);
procedure RadioButton3Click(Sender: TObject);
Программный код проекта в Приложении 1.
Сохранить проект в отдельную папку вместе с текстовым файлом INFORM. Для сохранения проекта из меню Файл (File) выбрать команду Сохранить проект как… (Save Project As…). При первом сохранении откроется диалоговое окно Сохранить модуль (Save Unit1 As). В поле Имя файла ввести значение TEST01 и щёлкнуть по кнопке Сохранить. После сохранения файла модуля проекта открывается диалоговое окно Сохранить проект (Save Project As). В поле Имя файла следует ввести имя проекта TEST.
3. компьютерный эксперимент
Запуск проекта из приложения Delphi.
После запуска Delphi из меню Файл (File) выбрать команду Открыть (Open). В открывшемся окне выбрать путь к папке с проектом, в которой находится выполняемый и текстовый файлы. Щёлкните по имени файла TEST и кнопке Открыть (Open). На экране высветится форма с управляющими элементами и программный код.
При запуске программного кода из Delphi имя файла inform.txt надо ввести в поле диалогового окна, которое доступно при выборе в меню Выполнить (Run) пункта команды Параметры (Parameters) (рис. 3).
Рис. 3. Ввод имени текстового файла
Для выполнения проекта необходимо выбрать команду Выполнить (Run) в пункте меню Выполнить (Run).
Запуск проекта с помощью исполняемого файла TEST.exe
Папку с проектом и текстовым файлом разместить на диске D:
На рабочем столе исполняемому файлу TEST.exe создать Ярлык
Щёлкнуть правой кнопкой по Ярлыку и войти в Свойства
Рис. 4. Путь исполняемого файла в Ярлыке приложения (.exe)
Для запуска программы дважды щёлкнуть по ярлыку.
Рис. 5. Первый шаг выполнения программы
Приступить к прохождению тестирования.
Файл открывается с помощью инструкции открытия файла для чтения. После успешного открытия файла вызывается процедура, которая считывает информацию из файла и выводит её присваиванием прочитанного текста свойству Caption поля метки Label1. Затем вызывается процедура, которая считывает из файла теста информацию об уровнях оценки. Эта процедура заполняет соответствующие массивы.
Для начала тестирования и открытия командной кнопки Button1 (Дальше)выбрать один из вариантов ответа(рис. 6).
Для обработки события переключателей в программе используется общая процедура, получающая объект, на котором произошло событие. Сравнивая полученное значение с именами объектов-переключателей, процедура присваивает значение глобальной переменной для увеличения набранной суммы баллов. Кроме того эта процедура делает доступной кнопку Button1, которая после вывода очередного вопроса вновь недоступна.
Таким образом, командную кнопку Button1 в программе можно использовать для начала тестирования, перехода к следующему вопросу и для завершения программы.
Рис. 6. Открытие командной кнопки
Далее испытуемый последовательно отвечает на все вопросы, которые находятся в текстовом файле INFORM.txt. После выбора ответа на последний вопрос при нажатии на кнопку Дальше, на форму выводится сообщение о результатах тестирования в зависимости от набранных баллов (рис. 7 – рис. 10) и командная кнопка Button1 меняет своё название – Завершить.
В конце тестирования щёлкнуть по командной кнопке Завершить.
заключение
Данная программа предназначена для обобщения и систематизации имеющихся знаний у учащихся по программированию на языке Delphi. Специальная литература, а также стандартное оборудование кабинета информатики являются базой для проведения контроля, который является одной из основных форм проверки и оценки знаний. Такая форма контроля за уровнем достижений в рамках предлагаемого курса строится на том основании, что выпускники должны быть включены в них субъектно. Для этого разработаны альтернативные программы по различным типам заданий.
При желании представленную разработку можно использовать по другим темам и предметам, предварительно подготовив соответствующие текстовые файлы.
Ожидаемый результат:
В итоге тестирования учащиеся самостоятельно получают возможность
Знать:
основные темы, входящие в учебный курс по программированию на языке Delphi;
Уметь:
У педагогов появляется возможность проанализировать полученные результаты.
Такие работы проводились в 11-м физико-математическом классе Тверского лицея. Качество выполненных работ достаточно высокое.
приложение 1. Программный код проекта
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure RadioButton1Click(Sender: TObject);
procedure RadioButton2Click(Sender: TObject);
procedure RadioButton3Click(Sender: TObject);
f: TextFile; // файл теста (вопросы и варианты ответов)
title: string; // название теста
nq: integer; // количество вопросов в тесте
right: integer; // количество правильных ответов
// количество правильных ответов, необходимых для достижения уровня
level: array[1..10] of integer;
mes: array[1..4] of string; // сообщение об оценке
// читает из файла вопрос, варианты ответа и выводит их в поля формы
function NextQw : boolean;
nq:= nq + 1; // счетчик общего количества вопросов
// прочитать и вывести вопрос
// прочитать и вывести варианты ответов
Readln(f,buf); // прочитать 1-й вариант ответа
// кнопка «Дальше» не доступна, пока не выбран один из вариантов ответа
// ни один из переключателей не выбран
Form1.RadioButton1.Checked := False; Form1.RadioButton2.Checked := False;
Form1.RadioButton3.Checked := False; NextQw := TRUE;
else NextQw := FALSE;
// событие FormCreate возникает в момент создания формы
procedure TForm1.FormCreate(Sender: TObject);
// При запуске программного кода из Delphi имя файла inform.txt надо
// ввести в поле диалогового окна, которое доступно при выборе в меню
// Run (Выполнить) пункта команды Parameters (Параметры)
fname := ParamStr(1); // взять имя файла теста из командной строки
ShowMessage(‘В командной строке запуска программы’ +#13+
‘надо указать файл теста.’);
Application.Terminate; // завершить программу
// в процессе открытия файла возможны ошибки
Reset(f); // эта инструкция может вызвать ошибку
ShowMessage(‘Ошибка обращения к файлу теста: ‘ + fname);
Application.Terminate; // завершить программу
// файл теста успешно открыт
// прочитать оценки и комментарии
right := 0; // правильных ответов
nq := 0; // всего вопросов
NextQW; // прочитать и вывести первый вопрос
// щелчок на кнопке «Дальше»
procedure TForm1.Button1Click(Sender: TObject);
if Button1.Caption = ‘Завершить’ then Close;
// добавим оценку за выбранный вариант ответа
// оценка находится в свойстве Button.Tag
if RadioButton1.Checked then right := right + RadioButton1.Tag;
if RadioButton2.Checked then right := right + RadioButton2.Tag;
if RadioButton3.Checked then right := right + RadioButton3.Tag;
// вывести следующий вопрос
// NextQW читает и выводит вопрос
// NextQw = FALSE, если в файле теста вопросов больше нет
if not NextQW then
// здесь значение NextQw = FALSE
// скрыть переключатели и поля меток
RadioButton1.Visible := False; RadioButton2.Visible := False;
RadioButton3.Visible := False; Label2.Visible := False;
Label3.Visible := False; Label4.Visible := False;