Смекни!
smekni.com

Создание справочника Парфюмерный магазин при помощи программы Turbo Pascal (стр. 3 из 7)

– Программа, считывает доступные разделы и подразделы из файла, который находится в корневой папке с программой и добавляет их в массив PodRaz. Если программа только запущенна, то выводятся разделы из файла имеющие код 0, если, к примеру, выбран раздел «детские товары», то из файла разделов считываются подразделы, которым соответствует код 3.

– Закрытие файла.

– Вывод элементов меню. Вывод элементов меню осуществляется из массива PodRaz и каждый элемент массива закрашивается определенным цветом. Первоначально первый пункт белым цветом, а остальные зеленым.

7.2.2 Перемещение внутри раздела или подраздела.

Операции по перемещению заключаются в следующем (приложение 5, схема 4):

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

– Пользователю предлагается ввести при помощи курсора направления перемещения.

– Если, пользователь выбрал направление вниз, то текущий элемент меню становится зеленым, а элемент стоящий внизу, становится белым, и программа запоминает новую текущую строку. Если вверх, то соответственно, текущий становится зеленым, а верхний белым, при условии что это не первый пункт меню.

– При работе с разделами и подразделами у пользователя есть еще три допустимых операций: помощь, поиск и вход (см. п. 7.3).

7.3 Выбор режима работы.

Во время перемещения по позициям меню пользователю доступны три операции (Приложение 5, схема 5):

– Помощь;

– Поиск;

– Вход.

7.3.1 Помощь.

Вход в режим справки осуществляется по нажатию клавиши F1 (Приложение 4, рисунок 3).

Данная операция реализована в процедуре Help, следующим образом (приложение 5, схема 8):

– Открывается файл help.dat для чтения. Данный файл содержит справочную информацию о работе с программой.

– Файл справки достаточно большой и, следовательно, не влезает в одно окно, для этого существует ограничения, когда экран заполнен, то дальнейшее считывание не происходит, до тех пор, пока пользователь не прочтет все и не нажмет клавишу ввод. После этого на экран выводится следующая часть файла справки.

– По завершению работы с файлом справки, он закрывается и на экран выводится разметка, разделы или подразделы, для дальнейшего выбора пользователем.

7.3.2 Поиск.

В ход в режим поиска осуществляется по нажатию клавиши F3 (Приложение 4, рисунок 5).

Данная операция реализована в процедуре Poisk, следующим образом (приложение 5, схема 7):

– Пользователю предлагается выбрать, по каким условиям будет осуществлен поиск: по серии товара, по производителю, или по названию.

– Далее пользователю предлагается ввести текст для поиска.

– После ввода текста поиска, программа открывает файл BD.dat для чтения.

– Далее происходит считывание каждой позиции из БД и сравнение с введенным текстом.

– Если очередная позиция товара соответствует условию поиска, то алгоритм приостанавливается и данный товар выводится на экран при помощи процедуры Tablo (см. п. 7.4.4), и поиск дальнейших товаров продолжается лишь, после того как будет нажата клавиша Page Down (Далее);

– После завершения поиска файл БД закрывается и на экран выводится сообщение, что больше совпадений не найдено.

– Далее на экран выводится разметка и элементы меню для дальнейшей работы.

7.3.3 Вход.

Вход в данный режим осуществляется, после того как пользователь перешел на нужный раздел и подраздел и нажал клавишу Enter.

Обработка действий при нажатии клавиши Enter, осуществляется в процедуре Vhod. Алгоритм данной процедуры заключается в следующем (приложение 5, схема 6):

– Проверяется, если открыт подраздел, а не раздел, то выводится на экран товары данного подраздела. Данный пункт осуществляется при помощи процедуры Vivod (см. п. 7.4);

– Если открыт, радел, то программа считывает, какой раздел был выбран и в зависимости от выбора раздела программа определяет подразделы, которые соответствуют выбранному пользователем разделу. Реализуется данная операция при помощи процедуры Podrazdel (п. 7.2.1);

– Если открыт режим подразделов и нажата клавиша Backspace, то на экран выводятся разделы.

7.4 Вывод на экран товаров соответствующих разделу и подразделу.

Вывод товаров на экран осуществляется, после того как пользователь нажмет клавишу Enter на нужном подразделе (Приложение 4, рисунок 2). Данная операция реализована в процедуре Viviod, алгоритм которой заключается в следующем (приложение 5, схема 9):

– Считывается количество товаров в данном подразделе. Данная операция осуществляется в процедуре Schet (см. п. 7.4.1);

– Считывается первый товар из подраздела и код первого товара добавляется в список (см. в п. 6.3.3). Данная операция реализована в процедуре PR (см. п. 7.4.2);

– Вывод на экран товара соответствующего последнему, коду товара из списка, реализуется данная операция в процедуре WriteSpisok (см. в п. 7.4.4). Таким образом, на экране выводится первый товар из БД, соответствующий разделу и подразделу.

– Далее пользователю предлагается выбрать дальнейшие действия, которые можно разделить на передвижение и операции. Об операциях над товарами более подробно будет описано в п. 7.5, а передвижение, в случае, если товаров более одного, осуществляется при помощи клавиш Page Up (назад), Page Down (вперед);

– Если нажата клавиша Page Down, то программа ищет в БД следующий товар, который соответствует, разделу и подразделу (если они вообще существуют), но с условием, что ранее показанные товары отображаться не будут, т.е. те товары, коды которых находятся в списке. Данная операция реализована в процедуре PoiskFPR (см. п. 7.4.3, поиск в списке см. п. 6.3.4);

– После того как найден очередной товар, соответствующий разделу и подразделу и он ранее не был отображен, то код этого товара добавляется в список. Реализовано данная операция в процедуре AddSpisok (см. в п. 6.3.3);

– Далее на экран выводится товар с кодом товара, записанным последним в список. Реализована данная операция при помощи процедуры WriteSpisok (см. п. 7.4.4);

– Если нажата клавиша PageUp, то проверяется, не первый ли это товар, в данном разделе и подразделе. Если нет, то удаляется последний элемент из списка (процедура DelSpisok, см. в п. 6.3.5) и выводится товар, с кодом товара, который теперь уже стал первым (процедура WriteSpisok, см. п. 7.4.4);

– По мимо передвижения доступны и другие функции, которые будут описаны в п. 7.5.

7.4.1 Процедура Schet.

Данная процедура выводит общее количество товаров в выбранном пользователем разделе и подразделе. Реализована данная процедура следующим образом (приложение 5, схема 10):

– Обнуляется счетчик;

– Открываем файл БД для чтения;

– Считывается очередной товар;

– Если раздел и подраздел очередного товара, соответствуют выбранному пользователем разделу и подразделу, то счетчик увеличивается на единицу;

– Закрываем файл БД

7.4.2 Процедура PR.

Данная процедура добавляет код первого товара в список. Реализовывается данная процедура следующим образом (приложение 5, схема 11):

– Открывается файл для чтения;

– Считывается очередной товар;

– Если раздел и подраздел очередного товара, соответствуют выбранному пользователем разделу и подразделу, то добавляем код товара в список, используя процедуру AddSpisok (см. в п. 6.3.3).

7.4.3 Процедура PoiskFPR.

Данная процедура ищет товар, соответствующий разделу и подразделу, выбранным пользователем, с условием, что код этого товара не занесен в список, т.е. уже был выведен на экран. Реализуется данная процедура следующим образом (приложение 5, схема 13):

– Открывается файл БД;

– Считывается очередной товар;

– Если раздел и подраздел очередного товара, соответствуют выбранному пользователем разделу и подразделу, то проверяется, является ли код данного товара в списке, т.е. осуществляется поиск в списке (см.п. 6.3.4).

– Если код текущего товара из БД отсутствует в списке, то процедура прерывается. И затем код этого товара добавляется в список (процедура AddSpisok п. 6.3.3).

7.4.4 Процедура WriteSpisok.

Данная процедура выводит товар на экран. Реализована она следующим образом (приложение 5, схема 9):

– Выводит в верхнюю часть экрана общее количество товаров в подразделе;

– Открывается файл БД для чтения;

– Считывается последний код товара из списка;

– Поиск в БД и вывод на экран, товара с кодом из списка. Вывод на экран осуществляется при помощи процедуры Tablo. В данной процедуре отсутствуют, какие либо циклы или условия, там лишь вывод в необходимую координату экрана текста из БД, по этому останавливаться на данной процедуре нет смысла.

– Закрытие файла БД.

7.5 Операции над товарами.

При работе с товарами доступны следующие операции:

– Новый товар в текущий раздел и подраздел;

– Отчет;

– Удалить товар.

7.5.1 Новый товар в текущий раздел и подраздел.

Данная операция вносит информацию о новом товаре в текущий раздел и подраздел (Приложение 4, рисунок 4). Реализована данная операция при помощи процедуры NewTovar, алгоритм которой заключается в следующем (приложение 5, схема 4):

– На экране появляется форма для заполнения информации о товаре;

– После ввода информации у пользователя спрашивают, сохранить или нет.

– Если нажата, кнопка сохранить, то открывается файл для чтения kod.dat.

– Из выше указанного файла считывается последний внесенный код товара.

– Файл kod.dat, находящийся в режиме чтения, закрывается;

– Файл kod.dat открывается в режиме добавления;

– Последний считанный код товара увеличивается на единицу и последний сохраняется в файл;

– Файл kod.dat закрывается;

– Открывается файл БД в режиме добавления и в конец файла добавляется новый товар;

– Закрывается файл БД;

– На экран выводится разметка и подразделы.

7.5.2 Отчет.

Описание создание отчетов описано в п. 5.2. Реализована функция создания отчетов в процедуре PrintF, алгоритм которой заключается в следующем (приложение 5, схема 16):