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 и каждый элемент массива закрашивается определенным цветом. Первоначально первый пункт белым цветом, а остальные зеленым.
0 комментариев