Правильная ссылка на эту страницу
http://az-design.ru/Projects/AzBook/src/005/02YEA03.shtml

Приложение В. Задача модификации главного файла

КОМУ: Суперпрограммисту Горацио
ОТ КОГО: От владельца фирмы
ДАТА: 19 августа 1974 г.
СОДЕРЖАНИЕ: Задание на программирование

I. Введение и общее описание
       Ваше задание состоит в том, чтобы написать программу индивидуальной модификации отдельных полей в задаваемых записях нашего главного файла клиентов. Этот файл является последовательно организованным файлом и размещается на нескольких бобинах магнитной ленты. Файл построен в порядке возрастания номеров счетов клиентов.
       Модификации главного файла должны выполняться вашей программой на основе данных, вводимых с перфокарт (или каким-либо другим способом, но в формате карт), представляемых в свободном формате. В каждой карте будет задаваться номер счета того клиента, чья запись должна быть модифицирована; вслед за номером счета будут задаваться одно или несколько полей, подлежащих модификации. В силу сложившегося порядка группа подготовки пользовательских данных выдает нам карты модификации, уже упорядоченные по номерам счетов клиентов.
       Ваша программа должна считывать данные с этих карт, выполнять определенные проверки на правильность и затем в соответствии с заданными указаниями производить модификацию главного файла. Кроме того, ваша программа должна выдавать на печать краткую справку о любых ошибках, возникших при ее выполнении.

II. Структура главного файла
       Как уже упоминалось главный файл является последовательно организованным, размещен на магнитной ленте и упорядочен по номерам счетов. клиентов. На каждого клиента в главном файле имеется одна запись; каждая запись состоит из 142 символов. Структура записи показана в табл. П.В.1.
       Для большей универсальности ваша программа не должна иметь дело с такими деталями, как буферирование, группирование, ленточные метки и прочие, связанными с главным файлом. Такого рода функции будут выполняться подпрограммами, которые ваша программа может вызывать или выполнять.

Таблица П.B.1 СТРУКТУРА ГЛАВНОГО ФАЙЛА

Поле Тип информации Длина поля Алфавитная или цифровая информация Изменяется программой модификации
1 Номер счета 5 Цифровая Нет
2 Имя клиента 30 Алфавитно-цифровая Да
3 Адрес клиента—улица 30 То же Да
4 Город 20 То же Да
5 Штат (сокращенно) 2 Алфавитная Да
6 Код 5 Цифровая Да
7 Номер телефона (с кодом области) 10 То же Да
8 Статус: активный или неактивный 1 Алфавитная Нет
9 Торговый агент, ведущий этот счет 5 Цифровая Да
10 Дата последней заявки 6 То же Нет
И Дата последнего платежа 6 То же Нет
12 Текущий баланс 8 То же Нет
13 Общая сумма сделок за текущий год 3 То же Нет
14 Предельная сумма кредита 6 То же Нет

Каждая запись содержит 14 полей, общая длина которых 142 символа. Назначениекаждого поля указано в таблице.

       Далее приводится описание этих подпрограмм:

MFOPEN
       открывает входной главный файл и выходной главный файл; выполняет контроль меток, инициализацию буферов и т.д.

MFCLOSE
       закрывает входной и выходной главные файлы

MFREAD
       считывает одну запись из входного главного файла в область, задаваемую программистом

MFWRITE
       записывает одну запись в выходной главный файл из области, задаваемой программистом
       Обе подпрограммы и MFREAD и MFWRITE будут формировать переменную MFAAG, которая может принимать следующие значения:

0   чтение/запись закончены успешно.
1   возникла ошибка четности, которая 
    не исправляется автоматически.
2   обнаружена метка конца файла (EOF)
    (имеет место только при выполнении
     подпрограммы MFREAD).

III. Структура данных, вводимых с перфокарт.
       Как уже упоминалось, модификация главного файла будет выполняться на основе данных, вводимых с перфокарт. Ваша программа может получать доступ к этим перфокартам путем вызова (или выполнения) следующих подпрограмм:

CROPEN
       открывает входной файл устройства чтения

CRCLOSE
       закрывает входной файл устройства чтения

CREAD
       считывает содержание одной 80-колонной карты в область, задаваемую программистом
       Кроме того, подпрограмма CREAD будет формировать переменную, которая может принимать следующие значения:

        0    операция закончена успешно.
GRFLAG =1    возникла ошибка ввода-вывода,
             которая не исправляется автоматически
        2   обнаружена метка конца файла (EOF)


       Данные на карте имеют следующий формат. Колонки 1—5 указывают номер счета записи, подлежащей модификации. Колонки 6—9 оставляются незаполненными и должны игнорироваться программой. Начиная с колонки 10, записывается переменное число полей в форме:

xxabcd.. .xyz * xxabc. ..xyz* и т.д.

       где хх представляет собой 2-значное целое число, указывающее, какое из 14 полей записи должно быть смодифицировано, a abc. . .xyz — последовательность символов переменной длины, которая должнк заменить соответствующее поле в главной записи.
       Каждое поле оканчивается знаком звездочка (*), Длина поля ограничивается сверху границей перфокарты. Таким образом, поле не может переходить с одной карты на другую. Последнее поле на карте обозначается двумя звездочками в конце.

       Кроме того, следует добавить, что может иметь место ситуация, когда несколько карт задают модификацию одной и той же главной записи. В этом случае допустимой является следующая последовательность.

IV. Требования к формату
       В процессе обработки ваша программа должна следить за возникновением ошибок явного вида. При обнаружении ошибки должно печататься соответствующее сообщение об ошибке; формат этих сообщений будете определять вы. Сообщение об ошибках должно выводиться на высокоскоростное печатающее устройство с помощью следующих подпрограмм:

PROPEN
       открывает файл, печати

PRCLOSE
       закрывает файл печати

PRWRITE
       производит вывод сообщения в файле печати на устройство печати из области, задаваемой программистом.
       Ваша программа должна обнаруживать следующие типы ошибок:
       1. Недействительные номера счетов. Если номер счета, представленный на карте, отсутствует в главном файле или записан с отступлениями от правил, вся карта должна отвергаться, а на печать должно выдаваться соответствующее сообщение.
       2. Недействительные номера полей. Номер поля должен находиться в пределах от 1 до 14. Если это не так, то данное поле должно игнорироваться, а сообщение об этом выдаваться на печать. Последующие поля должны обрабатываться при условии, конечно, что они отвечают правилам.
       3. Недействительный вид данных. В табл. П.В.1 показано, что различные поля должны заполняться символами вполне определенного вида — цифровыми, алфавитными или алфавитно-цифровыми. Ваша программа должна проверять это и отвергать те поля, которые заполнены знаками не того вида.
       4. Изменение полей, не подлежащих изменению. В табл. П.В.1 показано, что пользователю рассматриваемой программы разрешено изменять не все поля; например, пользователю не разрешается изменять номер счета. Если все же пользователь попытается смодифицировать какое-либо из этих полей, такая попытка должна быть отвергнута.
       5. Неправильная длина поля. Поле данных на карте может быть короче, длиннее или одинаковой длины с соответствующим полем в главном файле. Если поле на карте длиннее, должно формироваться сообщение об ошибке, а само поле или должно игнорироваться, если в нем содержится цифровая информация, или укорачиваться, если в нем содержится алфавитно-цифровая или алфавитная информация.




<<< Пред. Оглавление
Начало раздела
След. >>>

Дата последнего изменения:
Thursday, 21-Aug-2014 09:11:10 MSK


Постоянный адрес статьи:
http://az-design.ru/Projects/AzBook/src/005/02YEA03.shtml