49956 (609792), страница 2
Текст из файла (страница 2)
7
Дезодорант
Это запись означает, что в седьмом разделе есть подраздел «Дезодорант»
4.2.3 Kod.dat – это файл, хранящий коды товара. При создании нового товара программа считывает последний код, увеличивает на единицу и сохраняет в файле. Таким образом, код каждого товара уникален.
4.2.4 help.dat – файл справки.
4.2.5 BDVR.DAT – это файл временной БД. Этот файл необходим при удалении товара, когда товары переносятся во временный файл. За исключением удаленного товара, а затем основной файл БД перезаписывается.
-
Описание программы формирование выходного документа
К выходным документам относятся:
-
Вывод информации на экран;
-
Вывод информации в файл.
5.1 Вывод информации на экран
Пример формирования выходного документа на экран см. в приложении 4 рис. 2
Экран в данной программе состоит из пяти частей:
-
Заголовок. Заголовок находится в верхней части экрана и показывает, в каком разделе пользователь находится в настоящий момент. Так же при выборе пользователем подраздела в правой части заголовка выводится количество позиций (товаров) в данном подразделе.
-
Меню. Меню находится в левой части экрана и отображает пользователю существующие разделы и подразделы, перемещение в которых осуществляется при помощи курсора.
-
Подсказка. Подсказки находятся в левой части экрана под Меню. Здесь отображается клавиши управления для навигации по программе.
-
Клавиши управления. Каждая клавиша имеет свой цвет и доступна только в тех случаях, когда данными функциями можно воспользоваться. Клавиши управления находятся в нижней части экрана и содержат следующие пункты:
-
Помощь F1;
-
Новый F2;
-
Поиск F3;
-
Отчет F4;
-
Удалить F5;
-
Назад PageUp;
-
Далее PageDown;
-
Выход F10.
-
Окно. Окно занимает основную часть экрана. Здесь отображается информация о товаре и сообщение, что товаров нет, если таковые отсутствуют в выбранном пользователем подразделе.
5.2 Вывод информации в файл
Информация в файл выводится при создании файла отчета. Отчет создается по двум критериям:
-
По текущему товару;
-
По текущему подразделу.
Данная опция доступна только при условии, что пользователь находится в режиме работы с товарами. Т.е. пользователь выбрал требуемый подраздел и нажал ввод.
При нажатии в режиме работы с товарами кнопки F4 пользователю предлагается выбрать варианты отчета, по текущему товару или по текущему подразделу. После выбора условия отчета, пользователю предлагается ввести имя файла, в который будет сохранен отчет. Файл будет иметь расширение txt и находится в корневой папке с программой. Данные в файле будут отформатированы и неплохо оформлены.
Пример формирования выходного документа в файл см. в приложении 4 рис. 7.
6 Описание программы формирование списковой структуры
6.1 Область применения списковой структуры
Списковая структура применяется для передвижения по товарам внутри подраздела. Когда пользователь входит в подраздел формируется запрос, результатом которого будут товары, найденные в БД, каждый из которых, будет соответствовать выбранным пользователем раздела и подраздела. Причиной необходимости использования динамической структуры явилось то, что при программировании не известно какое количество товаров будет в выбранном разделе и подразделе. По этому, когда находится очередной товар, удовлетворяющий выбранному пользователем разделом и подразделом, код этого товара просто добавляется в список. А на экран выводится товар, код которого последний в списке.
6.2 Принцип работы
В данной программе работу с динамическим списком можно охарактеризовать в виде стека. Общий принцип работы следующий:
-
Когда пользователь выбирает нужный ему подраздел, программа ищет в файле БД первый товар, если таковой вообще существует, который удовлетворяет выбранному пользователем разделу и подразделу и код этого товара добавляется в динамический список – стек.
-
Далее программа выводит на экран информацию о товаре, код которого находится в вершине стека.
-
При нажатии пользователем клавиши PageDown, вновь осуществляется поиск товара в БД, который соответствует выбранному пользователем разделу и подразделу, но уже программа проверяет, не находится ли код этого товара уже в стеке. Если нет, то код товара добавляется в стек и на экран выводится товар, код которого находится в вершине стека, т.е. зашедший в стек последний. При повторном нажатии на PageDown, проделывается все то же самое.
-
Если нажата клавиша PageUp, то код товара, который является вершиной стека, просто удаляется и вершиной стека становится, уже предыдущий код товара, если, конечно же, это был не первый товар. А далее, как и в случае с PageDown выводится товар, код которого находится в вершине стека.
Подводя итог можно сказать, что фактически перемещение происходит в стеке, а на экран выводится лишь товар с кодом товара из вершины стека.
6.3 Процедуры, используемые при работе со списком.
Полностью описывать весь алгоритм данных процедур в данном разделе не будем, затронем только те их части, которые взаимодействуют непосредственно со списком.
При работе со списком используются следующие функции:
-
Чтение элемента из списка;
-
Добавление элемента в список;
-
Поиск элемента в списке;
-
Удаление элемент из списка.
6.3.1 Описание списка
Type
Integ=^integer;
Int:integer; {код товара}
Next:integ; {ссылка на следующий элемент}
end;
6.3.2 Чтение элемента из списка
В данном разделе указатель перемещается на последний элемент и считывается хранящийся там код товара. Далее, с этим кодом товара происходит либо, какое то сравнение, условие, либо присваивается некоторой переменной, либо удаляется код из списка.
6.3.3 Добавление элемента в список
Добавление кода товара в список происходит в процедуре AddSpisok, алгоритм которой заключается в следующем (Приложение 5, схема 12):
-
Создается новый элемент;
-
Записывается код товара из файла в список;
-
Устанавливается указатель для поддержания целостности списка;
6.3.4 Поиск элемента в списке
Поиск осуществляется в процедуре PoiskFPR. Алгоритм поиска заключается в следующем:
-
Переход на последний элемент списка – вершину стека;
-
До тех пор пока не конец стека делать;
-
Если текущий код товара из файла БД равен коду товара из списка, то условие выполнено, если нет, то считывается следующий элемент из списка и т.д.
6.3.5 Удаление элемента из списка.
Удаления кода товара из списка происходит в процедуре DelSpisok, в данной процедуре удаляется только последний элемент, который являлся вершиной стека, алгоритм данной процедуры заключается в следующем:
-
Переход на последний элемент списка – вершина стека;
-
Создание связи, со следующим элементом;
-
Удаление элемента;
-
Присваивание нового последнего элемента.
7 Технология обработки данных
Последовательность операций с данными заключается в следующем (приложение 5 схема 1):
-
Создания разметки экрана (Приложение 4, рисунок 1);
-
Создания и управление разделами и подразделами;
-
Выбор режима работы;
-
Вывод на экран товаров соответствующих разделу и подразделу;
-
Операции над товарами;
7.1 Разметка экрана.
Разметка экрана реализуется при помощи процедуры Shapka. В данной процедуре реализуется следующее (приложение 5, схема 2):
-
Создаются линии, которые разделяют экран;
-
Создаются копки управления – кнопки управления с доступными функциями. Если на определенном этапе работы кнопка имеет серый цвет, то данная функция недоступна;
-
Создается заголовок – раздел экрана, в котором выводится название раздела, в котором пользователь работает в настоящий момент;
-
Создаются окно подсказки – в данном окне выводятся подсказки для пользователя, необходимые для работы в определенный момент.
7.2 Управление разделами и подразделами.
Управление разделами и подразделами реализовано в процедуре Perem, следующим образом:
-
Вывод на экран разделов или подразделов;
-
Перемещение внутри раздела или подраздела;
-
Выбор режима работы.
7.2.1 Вывод на экран разделов или подразделов.
Данный раздел осуществляется при помощи процедуры PodRazdel. Реализация в данной процедуре происходит следующим образом (приложение 5, схема 3):
-
Открытие файла razdel.dat для чтения. В данном файле содержится название всех разделов и подразделов и специальные коды для распознавания (структуру файла см. п. 4.2.2). Например, если стоит код 0, то данная позиция относится к разделу, и будет выводиться только, в случае отображение разделов. Если стоит единица, то это означает, что данный подраздел соответствует первому разделу и т.д.
-
Программа, считывает доступные разделы и подразделы из файла, который находится в корневой папке с программой и добавляет их в массив 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 для чтения. Данный файл содержит справочную информацию о работе с программой.
-
Файл справки достаточно большой и, следовательно, не влезает в одно окно, для этого существует ограничения, когда экран заполнен, то дальнейшее считывание не происходит, до тех пор, пока пользователь не прочтет все и не нажмет клавишу ввод. После этого на экран выводится следующая часть файла справки.
-
По завершению работы с файлом справки, он закрывается и на экран выводится разметка, разделы или подразделы, для дальнейшего выбора пользователем.
-
Поиск.
В ход в режим поиска осуществляется по нажатию клавиши F3 (Приложение 4, рисунок 5).
Данная операция реализована в процедуре Poisk, следующим образом (приложение 5, схема 7):
-
Пользователю предлагается выбрать, по каким условиям будет осуществлен поиск: по серии товара, по производителю, или по названию.
-
Далее пользователю предлагается ввести текст для поиска.
-
После ввода текста поиска, программа открывает файл BD.dat для чтения.
-
Далее происходит считывание каждой позиции из БД и сравнение с введенным текстом.
-
Если очередная позиция товара соответствует условию поиска, то алгоритм приостанавливается и данный товар выводится на экран при помощи процедуры Tablo (см. п. 7.4.4), и поиск дальнейших товаров продолжается лишь, после того как будет нажата клавиша Page Down (Далее);
-
После завершения поиска файл БД закрывается и на экран выводится сообщение, что больше совпадений не найдено.
-
Далее на экран выводится разметка и элементы меню для дальнейшей работы.
7.3.3 Вход.