Из опыта создания универсальных тестовых редакторов
Структурная программа.
Первым этапом разработки программы стало написание текста структурной
программы. Структурная программа- последовательность простых команд,
операторов, реализующая ядро, то есть действие программы. Уже на этом этапе
программа работает с текстовыми файлами. Для осуществления связей между
отдельными частями программы, реализующими функции редактора, я использовал
оператор безусловного перехода GoTo.
Ниже приведена схема структурной программы тестового редактора,
объясняющая соответствующий подход к программированию. Основной список
операторов вырезан и заменен на <набор операторов>. Конечный вид программы
будет приведен в главе “Объектное программирование” объектов.
Program redactor;
uses crt,printer; {подключениемодулей}
label l1,l2,l3,l4; {метки}
Var a,f,f1,a2:string; {разделописаний}
b,k:char;
c,u,y,a1,b1:text;
d,e,i,j,p,z:integer;
c1:boolean;
Procedure oform; {процедура оформления начала программы}
Begin
<набор операторов>
End;
Begin
oform; {оформление начала программы}
<набор операторов>
Writeln('Новый файл(New),Открыть файл(Open),Редактирование(Redact),');
{вывод
альтернативных функций}
Writeln('Просмотр результатов(Search),Выход(Any key)');
b:=readkey; {выбор нужной функции}
case b of {оператор варианта}
По нажатию соответствующей клавиши происходит выбор функции.
'n','в':Begin
l1:<набор операторов> {выполнение функции}
End;
'o','й':Begin
l2:<набор операторов> {выполнение функции}
End;
'r','Є':Begin
l3:<набор операторов> {выполнение функции}
End;
's','ы':Begin
l4:<набор операторов> {выполнение функции}
End;
End;
<набор опреаторов>
Writeln('Новый файл(New),)Открыть файл(Open),Редактировать(Redact)');
{запрос о выборе перед
выходом}
Writeln('Просмотр результатов(Search),Выход(Any key)');
b:=readkey; {выбор варианта}
<набор операторов>
case b of {оператор варианта}
'n','т':GoTo l1; {ссылка на метку}
'o','щ':GoTo l2;
'r','к':GoTo l3;
's','ы':GoTo l4;
End;
Набор операторов безусловного перехода для возвращения к той или иной
функции.
<набор операторов>
End.
На экран выводится список возможных функций программы. Для выбора
определенной функции необходимо нажать соответствующую клавишу (указана в
скобках заглавной буквой). Затем оператор варианта запускает нужную
функцию. Как видно, учтен случай непереключенного алфавита (буквы вводятся
как латинские, так и русские).
Перед выходом вновь выводится данный запрос (так как цикл неуместен) и в
случае выбора определенной функции происходит ссылка на функцию.
Интерфейс структурной
программы
Доработка программы.
После отладки начальной программы потребовалось ввести дополнительные
функции. Помимо стандартной функции создания и открытия готового теста,
появились такие как редактирование тестов, подсчет результатов и
выставление оценки, таймер, составление отчета, защита тестов от просмотра.
Но самое главное- это усовершенствование интерфейса, введение оконной
диалоговой системы.
Рассмотрим перечисленные функции. Функция подсчета результата записана
так:
z:=p*100 div z; {расчет количества правильных ответов}
Writeln('количество правильных ответов: ',p);
Write('оценка '); {выставление оценки}
If z>=90 Then Begin
Writeln('5')
Writeln(b1,’5’);
End;
else If z>=70 Then Begin
Writeln('4')
Writeln(b1,’4’);
End;
else If z>=40 Then Begin
Writeln('3')
Writeln(b1,’3’);
E
| | скачать работу |
Из опыта создания универсальных тестовых редакторов |