Вспомните и запишите примерный текст программы на псевдокоде




  1. Процедуры работы с файлами

 

Pascal Delphi Значение
Assign Assignfile Процедура связки файловой переменной с файлом на диске
Reset Reset Процедура чтения из файла
Rewrite Rewrite Процедура записи в файл
Сlose Closefile Процедура завершения работы с файлами

 

Откройте систему программирования, например Free Pascal и напечатайте следующие строки:

 

Var a,b,c:integer; f,f1:text;

Begin

Assign (f,’C:\in.txt’); Assign (f1,’C:\out.txt’);

Reset (f); Rewrite (f1);

If (a > b) and (a > c) then writeln(f1,a);

If (b > a) and (b > c) then writeln(f1,b);

If (c > a) and (c > b) then writeln(f1,c);

Close (f); Close (f1);

End.

Что изменилось, чего нет в тексте программы? Правильно ли написана программа? Если нет, то почему?

Мы повторили разделы, важные для изучении новой темы и теперь приступим к разбору программы «Тестирование», но для этого еще раз повторим и раскроем следующие принципы:

Принципы тестирующей системы:

1. Хорошая тестирующая система, должна быть изменяема и/или расширяема, т.е. вопросы, содержание вопроса, ответ, содержание ответа и их количество могут меняться достаточно легко без изменения исходного кода проекта. Это значит, что чтение вопросов, ответов на них и ресурсы теста должны загружаться из файла, чья структура должна быть достаточно понятна, для человека который захочет редактировать приложение.

2. Хороший тест должен содержать не только текстовое содержание вопроса и текстовое содержание ответов на вопрос, но и дополняться графическим изображением, формулой или видеоклипом, др. мультимедийным объектом. Приложение может быть дополнено компонентами отображения мультимедийной информации (изображения, аудио-видеофайлы, веб-страницы), чьи пути к ресурсам (сами файлы) будут содержаться в текстовом файле с вопросами и ответами

3. Хороший тест должен показывать результат ответов на вопрос, как в простом количестве правильных ответов, так и в процентном и бальном соотношении после его завершения. Исходный текст программы должен содержать процедуру подсчета количества правильных ответов, а так же расчет балла (оценки) по выбранной шкале оценивания, с использованием выражений на языке Delphi

4. Хороший тест должен быть регламентируемым, т.е. позволять администратору теста (чаще всего программисту на этапе разработки) указывать время, отводимое на тестирование. При открытии приложения и выборе теста, должна отображаться информация о времени отведенного на тестирование. Данная возможность приложения может быть достигнута с использованием компонента Timer (закладка System) для отсчета времени, и компонентов Label для отображения текущего времени.

 

Приступим к разработке программы тестирования. Для этого еще раз повторим:

- Процедуры работы с файлами? Названия текстовых файлов (входные/выходные)?

- Условные операторы? Примеры решения задач?

- Сохранение проекта? Размещение файлов с конфигурациями?

Программы тестирования бывают разные. Есть статичные с одной неизменной страницей, где нужно выбрать правильные варианты ответов или просто отметить понравившееся варианты. А бывают и такие, которые при нажатии на кнопку «Вперед» меняют и вопрос, и его сопровождение. Разберем оба варианта и найдем отличия использования RadioButton и СheckBox.

Пример 1. Программа перевода из мм в сантиметры и метры

Пример 2. Расчет сопротивления в электрической цепи

Пример 3. Расчет поездки на дачу и обратно.

 

Яркий пример использование компонента CheckBox (флажок) с помощью которого можно выбрать один или несколько правильных вариантов ответа. Основное отличие СheckBox от RadioButton в том что последний является переключателем, т.е. несколько пунктов уже не выделишь.

Пример 4. Программа «Тестирование»

  1. Создайте новый пустой проект в системе программирования Delphi
  2. Сохраните проект
  3. Перейдите в папку с сохранненым проектом и создайте текстовый файл с названием test.txt
  4. Откройте text.txt в программе Блокнот
  5. Заполните файл test.txt следующей информацией

 

Вопрос1. В каком году основан Костанай?

Вопрос1. В каком году открыта ШОД «Озат»?

 

  1. Сохраните документ. Сделайте короткий вывод по содержимому файла
  2. Перейдите к проекту Delphi. Измените размеры формы, сделав ее прямоугольной
  3. Разместите на форме Label1, RadioButton1, RadioButton2, RadioButton3, RadioButton4, Button1

 

 

  1. Перейдите в ObjectTreeView к форме Form1. Перейдите к событиям Events компонента Form1
  2. Выберите событие OnCreate, событие, возникающее при инициализации приложения (действие – открытие программы пользователем). Появятся следующие строки:

 

procedure TForm1.FormCreate(Sender: TObject);

Begin

end;

End.

Пролистайте листинг вверх, до раздела переменных var. Добавьте в раздел переменных следующие переменные. После добавления переменных вернитесь к procedure TForm1.FormCreate …

k:integer; f:textfile; s,p:string;

  1. Добавьте следующие строки после оператора begin

 

p:=extractfilepath(application.exename); //абсолютная адресация к файлам, например конфигурации или входным файлам находящимся в папке с проектом

Assignfile (f,’test.txt’); // cвязка файловой переменной и файла

Reset (f); // открытие файла в режиме чтения

Readln(f,s); // чтение 1 строки из файла (чтение начинается с начала документа)

Label1.Caption:=s; // присваивание cтроки считанной из файла (свойство Сaption - т.д. string)

Readln(f,s);

RadioButton1.Caption:=s;

Readln(f,s);

RadioButton2.Caption:=s;

Readln(f,s);

RadioButton3.Caption:=s;

Readln(f,s);

RadioButton4.Caption:=s;

 

После ввода текста программы она примет следующий вид

 

 

  1. Если вы все сделали правильно – запустите приложение.

 

50% задания выполнено! Программа запустилась, вопросы загрузились, ответы отобразились, но кнопка, благодаря которой мы можем перейти к следующему вопросу все еще не активна. Перейдем к следующему этапу.

 

  1. Событие OnClick, процедура procedure TForm1.Button1Click(Sender: TObject)

 

If eof (f) then showmessage (’количество правильных ответов= ’+inttostr(k)) else readln(f,s); // если достигнут конец входного файла, т.е. если достигли последнего вопроса и пользователь выбрал ответ и нажал на кнопке для проверки условия то выводится сообщение с преобразованием количества прав. ответов, подсчитываемых ниже в условии, иначе программа продолжает считывать следующую строку из файла после вариантов ответов, являющуюся правильным вариантом ответа

If (radiobutton1.caption=s) and (radiobutton1.checked) then inc(k); // проверка условия на сравнение указанного пользователем ответа с правильным ответом считанным из файла, хранимого до перехода к след. вопросу в переменной s

If (radiobutton2.caption=s) and (radiobutton2.checked) then inc(k);

If (radiobutton3.caption=s) and (radiobutton3.checked) then inc(k);

Readln(f,s); // чтение 1 строки из файла (чтение начинается с начала документа)

Label1.Caption:=s; // присваивание cтроки считанной из файла (свойство Сaption - т.д. string)

Readln(f,s);

RadioButton1.Caption:=s;

Readln(f,s);

RadioButton2.Caption:=s;

Readln(f,s);

RadioButton3.Caption:=s;

Readln(f,s);

RadioButton4.Caption:=s;

 

  1. Сохраните проект. Запустите приложение. Ответьте на все вопросы правильно и получите «5».

 

 

Примечание. Если вы хотите изменить вопросы и ответы на них закройте программу, отредактируйте тест и снова запустите приложение. Количество вопросов можно увеличивать.

Закрепление. Используя следующий расчет на естественном языке, напишите процедуру для подсчета количества правильных ответов. Для этого используйте компонент Button2 и событие OnClick. Функция trunc – отброс дробной части вещественного числа.

Процент выполненного задания:=trunc(количество правильных ответов/количество вопросов * 100); Если (процент выполнненого задания<=100) и (процент выполнненого задания >=75) тогда оценка:=5; Если (процент выполнненого задания<=75) и (процент выполнненого задания >=50) тогда оценка:=4; Если (процент выполнненого задания<75) и (процент выполнненого задания >=30) тогда оценка:=3; Если процент выполнненого задания<20 тогда оценка:=2;



Поделиться:




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

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


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