3.О п и с а н и е п р о г р а м м ы K u r s r a b
Программа Kursrab состоит из пяти модулей:
- DesUnit - глобальные описания констант, типов и переменных;
- BasUnit - сервисные процедуры и функции;
- ChekUn - ввод и контроль корректности текстовых файлов;
- WorkUnit - обрабатывающие процедуры и функции;
- Kursrab - основная программа.
.
Количество хранимых и обрабатываемых документов в АУС является переменной величиной. В процессе эксплуатации АУС типичными операциями являются добавление новых документов к имеющемуся архиву, удаление части документов, изменение содержания некоторых документов.
В программе Kursrab используются 5 файлов. В текстовом файле FileInput содержатся исходные документы. Текстовый файл FileAdd предназначен для документов, добавляемых в архив; строки этого файла имеют такой же вид, как и строки файла FileInput. Файл FileOut является типизированным. В текстовый файл FileRes могут быть записаны по указанию пользователя результаты обработки архива. В файл FileError, объявленный локально в модуле ChekUn, производится запись протокола проверки корректности исходных данных.
Информация для текстовых файлов подготавливается вручную с клавиатуры ПЭВМ, что заранее предполагает наличие в ней различного рода ошибок. Содержимое текстового файла легко изменить с помощью любого текстового редактора, что создает опасность внесения в исходную информацию умышленных или неумышленных искажений. Поэтому использоватъ текстовые файлы как непосредственный источник обрабатываемых данных в АУС нецелесообразно.
В реальных системах исходные документы, содержащиеся в текстовых файлах, тщательно контролируются в программе с целью обнаружения возможных ошибок. После исправления обнаруженных ошибок содержимое текстового файла выдается на печать для визуального контроля; тщательно проверенные документы программно переписываются в типизированные файлы, представляющие собой архив системы.
С точки зрения машинной обработки типизированные файлы имеют ряд преимуществ по сравнению с текстовыми файлами:
- возможность прямого доступа;
- более экономное размещение данных в памяти;
- более быстрое выполнение операций ввода-вывода.
В текстовом файле информация имеет литерное представление (каждый символ текста или цифра числа занимают отдельный байт). В типизированном файле представление информации не отличается от внутримашинного. Поэтому при обращении к текстовому файлу затрачивается значительное машинное время на преобразование информации из внешнего представления во внутреннее (или наоборот).
В программе Kursrab для хранения архива предусмотрен файл FileOut. При переписи информации из файла FileInput в файл FileOut предварительно производится контроль корректности исходных данных. Контролю подвергается также содержимое текстового файла FileAdd. Результаты обработки архива выдаются на экран, а также по указанию пользователя могут печататься на принтере и записываться в выходной текстовый файл FileRes.
В программе Kursrab предусмотрены следующие режимы работы:
- контроль текстовых файлов;
- создание архива;
- сортировка компонентов архива;
- печать архива;
- добавление компонентов в архив;
- удаление компонента из архива;
- изменение компонента в архиве;
- обработка архива.
Выбор режимов работы реализован в основной части программы. Вначале на экран выдается запрос о режиме; после ввода с клавиатуры ответа (0..9) оператор Case выполняет обращение к процедуре, определяющей соответствующий режим.
При вводе числового ответа с клавиатуры существует определенная вероятность ошибочного набора (например, буква вместо цифры). При вводе ответа с помощью оператора Read это вызвало бы прерывание программы и, как следствие, необходимость ее повторного запуска.
Чтобы блокировать такое прерывание, ввод переменной KeyRegime производится с помощью процедуры GetNumber, выполняющей контроль формата вводимого числа и допустимого диапазона его представления.
При ошибке ввода программа выдает соответствующее сообщение и предлагает пользователю повторить ввод.
Запрос режима работы повторяется оператором Repeat до тех пор, пока не будет получен ответ KeyRegime=0. Это дает возможность пользователю любое количество раз и в любом порядке задавать необходимые режимы работы программы.