Из опыта создания универсальных тестовых редакторов
; Write(b);
End;
Readln(c);
Writeln;
Writeln('Заменить на:');
Writeln(z,')'); {ввод нового вопроса}
Writeln(y,z,')');
Readln(f);
Writeln(y,f);
Window(55,10,80,15); {окно ответов}
TextBackGround(cyan);
clrscr;
Write('количество ответов на ',z,'-й вопрос ');
Readln(e); {ввод количества ответов}
Window(10,10,53,20); {окно вопросов}
TextBackGround(lightgray);
clrscr;
For j:=1 to e do Begin {ввод ответов на вопрос}
Write(' ',j,')');
Readln(a);
Str(j,f);
a:=' '+f+')'+a;
Write(y,a);
End;
Writeln(y,'&');
Window(55,10,80,15); {окно ответов}
TextBackGround(cyan);
clrscr;
Write('Правильный ответ: ');
Readln(b); {ввод правильного ответа}
Window(55,10,80,15); {закрытие окна ответов}
TextBackGround(black);
clrscr;
Writeln(a1,b);
repeat
while not EOLN(c) do Begin {дозапись значений}
Read(c,b);
Write(y,b);
End;
Readln(c);
Writeln(y);
until EOF(c);
Readln(u);
while not EOF(u) do Begin {дозапись значений в копируемый
файл}
Readln(u,b);
Writeln(a1,b);
End;
Window(10,10,53,20); {закрытие окна вопросов}
TextBackGround(black);
clrscr;
close(c); {закрытие файлов}
Erase(c); {стирание старого файла вопросов}
close(u);
Erase(u); {стирание старого файла ответов}
close(y);
Rename(y,a2); {переименование файла вопросов}
a2:=a2+'o';
close(a1);
Rename(a1,a2); {переименование файла ответов}
End;
Для корректной работы процедуры требовалось реализовать чтение требуемого
вопроса, здесь и пригодилось построчное чтение, о котором рассказывалось в
предыдущей главе. Кроме того, требовалось скопировать данные из одного
файла, исключая требуемый вопрос с последующим добавлением нового вопроса.
Я реализовал это в циклах, что вы можете видеть в программном коде.
Функция просмотра результатов. Организует просмотр результатов
тестирования. Просит ввести вашу фамилию. Если она есть в списке, выводит
полную информацию о тесте, об оценке, о дате и т. д. Программа использует
файл registr.dat для внесения туда ваших результатов. При желании файл
также может быть распечатан.
Procedure SearchF;
Begin
Assign(b1,'c:pascalregistr.dat'); {связь переменной с файлом
отчета}
Reset(b1); {открытие файла для чтения}
Window(10,10,53,15); {закрытие всех окон}
TextBackGround(black);
TextColor(black);
clrscr;
Window(5,10,70,13); {окно поиска}
TextBackGround(green);
clrscr;
Write('Ваша Фамилия');
Readln(a); {ввод фамилии}
while not EOF(b1) do Begin {поиск фамилии}
Readln(b1,f); {считывание строки}
For i:=1 to length(a) do f1:=f1+f[i];
{выделение фамилии}
If a=f1 Then Begin {проверка
совпадения}
| | скачать работу |
Из опыта создания универсальных тестовых редакторов |