Содержание
1. Введение
2. Содержательная постановка и описание задачи
3. Атрибуты объекта и предоставление данных в программ
4. Описание программы создания набора данных
5. Описание программы формирование выходного документа
6. Описание программы формирование списковой структуры
7. Технология обработки данных
8. Заключение
9. Список литературы
Приложение 1 - Графическое описание данных
Приложение 2 - Представление данных в памяти ЭВМ
Приложение Рисунок списковой структуры
Приложение 4 – Формат выходного документа
Приложение 5 – Схема последовательности обработки данных
Приложение 6 Листинг программы
1. Введение
Цель выполнения курсового проекта состоит в том, чтобы научится описывать предметную область реального мира – объект и его атрибуты, закрепить навыки использования основных структур данных, способов их описания и основных операций над ними. Освоить разработку удобного пользовательского интерфейса.
Действительно при помощи Turbo Pascal достаточно не просто создать программу, которая бы демонстрировала работу с базами данных (далее БД). Для этого в настоящий момент существует огромное количество специализированных программ. Но все-таки основу и саму сущность формирования БД при помощи Turbo Pascal, реализовать, возможно.
К сожалению темы курсовых работ, были не произвольными, а выбирались по общим правилам. В связи с этим моей темой стал Справочник «Парфюмерный магазин». Я, конечно, слабовато знаю данную область, но с другой стороны в дальнейшей работе, придется создавать такие программы, предметной области которых я могу не знать совсем. Поэтому я постарался изучить данную предметную область и реализовать ее в программном продукте.
2. Содержательная постановка и описание задачи
Парфюмерный магазин – это магазин с конкретно ориентированными товарами, предназначенными, в первую очередь, для личной гигиены и уходом за телом.
Программа должна обладать следующими функциями:
– Удобная справочная система и система подсказок;
– Возможность добавление в БД нового товара;
– Возможность поиска по выбранным критериям;
– Возможность удобной сортировки товаров;
– Возможность создания отчетности;
– Возможность удаления ненужного товара.
При этом в конечном программном продукте должен быть интуитивно понятный и доступный любым пользователем, интерфейс, с использованием подсказок. Удобная сортировка, а также удобное управление в режиме работы непосредственно с товарами.
Сортировки товаров в любой БД необходимо уделять особое внимание. Связано это в первую очередь с необходимостью оперативного доступа к требуемой информации из БД.
3. Атрибуты объекта и предоставление данных в программе
Определим необходимый набор атрибутов. Условно их можно разделить на 3 части:
– Сортировка – деление на разделы и подразделы;
– Интерфейс – создание удобного и функционального интерфейса;
– Функции программы – добавление и удаления товара, поиск и отчетность.
3.1 Сортировка.
Наиболее сложной задачей при создании программы – справочника «Парфюмерный магазин» является создание сортировки товаров.
В настоящий момент существует бесчисленное множество различных Интернет – магазинов. Каждый подобный сайт применяет собственную систему сортировки и навигации. Мы возьмем концептуальную основу деления товаров из различных Интернет источников и попробуем создать свою уникальную систему.
Условно все товары парфюмерного (косметического) магазина, можно разделить на 9 разделов:
– Уход за лицом;
– Уход за кожей;
– Детские товары;
– Маникюр;
– Парфюмерия;
– Уход за телом;
– Товары для мужчин;
– Уход за волосами;
– Другие товары.
3.1.1 Уход за лицом;
В данном разделе представляются товары, предназначенные непосредственно для ухода за лицом. Условно данный раздел можно разделить на 13 подразделов:
– Гель;
– Лосьоны и пена;
– Молочко;
– Бальзам;
– Крем;
– Масло;
– Маска, скраб;
– Подводка, карандаш;
– Румяна, тушь
– Тени пудра;
– Помада, маска;
– Блеск;
– Другие товары.
3.1.2 Уход за кожей;
В данном разделе представляются товары, предназначенные непосредственно для ухода за кожей. Условно данный раздел можно разделить на 8 подразделов:
– Гель;
– Лосьоны и пена;
– Молочко;
– Бальзам;
– Крем;
– Масло;
– Другие товары.
3.1.3 Детские товары;
В данном разделе представляются товары, предназначенные непосредственно для детей. На самом деле детям не рекомендуется пользоваться косметикой, по этому подразделов в данном разделе будет всего 3:
– Ароматы;
– Крема и мази;
– Другие товары.
3.1.4 Маникюр;
В данном разделе представляются товары, предназначенные непосредственно для ухода за ногтями. Условно данный раздел можно разделить на 4 подраздела:
– Крем;
– Лак;
– Масло;
– Другие товары.
3.1.5 Парфюмерия;
В данном разделе представляются парфюмерные товары:
– Туалетная вода;
– Духи;
– Дезодорант;
– Одеколон;
– Другие товары.
3.1.6 Уход за телом;
В данном разделе представляются товары, предназначенные непосредственно для ухода за телом. Условно данный раздел можно разделить на 8 подразделов:
– Гель;
– Лосьоны и пена;
– Молочко;
– Мыло;
– Бальзам;
– Крем;
– Масло;
– Другие товары
3.1.7 Товары для мужчин;
В данном разделе представляются товары, предназначенные непосредственно для мужчин. Условно данный раздел можно разделить на 8 подразделов:
– Дезодорант;
– Одеколон;
– Гель;
– Лосьоны и пена;
– Шампунь;
– Бальзам;
– Крем;
– Другие товары.
3.1.8 Уход за волосами;
В данном разделе представляются товары, предназначенные непосредственно для ухода за волосами. Условно данный раздел можно разделить на 9 подразделов:
– Гель;
– Мыло;
– Шампунь;
– Кондиционер;
– Бальзам;
– Спрей;
– Лак;
– Блеск;
– Другие товары.
3.1.9 Другие товары.
Всех товаров не учтешь, особенно с современным, довольно бурным развитием сферой парфюмерии и косметики. В связи с этим необходим раздел, в котором можно добавлять, то новое, что может появиться со временем. Но даже в данном разделе было создано 3 подраздела:
– Бижутерия;
– Технические средства;
– Другие товары.
Нельзя сказать, что была острая необходимость делить данный раздел, впрочем, как и детские товары, но это в первую очередь связано с концепцией работы программы, которая постоянно считывает разделы и подразделы. И без наличия подразделов, программу пришлось бы усложнять.
В итоге сортировка предусматривает деление на разделы и подразделы. Каждый товар должен находиться только в одном определенном разделе и соответственно подразделе. Когда пользователю появится необходимость найти нужный ему товар не обязательно прибегать к поиску, т.к. условия поиска не всегда удобно записать, достаточно определится к какому разделу, относится товар, который необходимо найти. Очень важную роль при этом необходимо отвести к заполнению БД. Товары должны быть грамотно занесены в БД и тогда проблем при поиске нужного товара, недолжно возникать.
3.2 Интерфейс
При создании вышеуказанной сортировки необходимо создать интерфейс пользователя, обладающий следующими свойствами:
- Удобство;
- Простота;
- Интуитивно понятная навигация;
- Отсутствие «захламленности».
Поставленную задачу можно решить следующим образом:
- Создание разметки экрана – линии, которые должны разделять экран, для его целесообразного размещения;
- Создание кнопок управления – как у большинства подобных справочников внизу экрана отображаются кнопки управления, доступные в определенный момент;
- Создание меню разделов и подразделов, при чем так чтоб пользователь при помощи курсора мог осуществить навигацию по разделам и подразделам, а не нажимать цифры меню;
- Создание справочной системы и системы подсказок;
После реализации вышеуказанных позиций, программа – справочник должна получиться удобной и интуитивно понятной.
3.3 Функции программы
Данная программа – справочник должна обладать следующими функциями (помимо сортировки и навигации, которые описаны ранее):
- Добавление нового товара в БД;
- Поиск нужного товара по заданным критериям;
- Создание отчетности по заданным критериям;
- Удаление ненужного товара;
3.4 Поля объекта
Основным объектом в данной программе является товар, все остальные объекты в программе так или иначе связаны с товаром.
Как показало изучение предметной области, критерии товаров должны быть следующими:
- Код товара – целое число, которое должно быть уникальное для каждого товара, т.е. не повторятся;
- Раздел – целое число, которое свидетельствует о принадлежности к определенному разделу, каждое из которых имеет свой уникальный номер;
- Подраздел - целое число, которое свидетельствует о принадлежности к определенному подразделу, каждое из которых имеет свой уникальный номер;
- Название – строковое данное, характеризует общее название товара;
- Серия – это строковое данное, характеризует принадлежность товара к определенной серии;
- Производитель - строковое данное, описывает название производителя;
- Описание - строковое данное, которое описывает товар более подробно;
- Цена товара – это строковое данное указывает цену товара. Цена товара будет именно строковым данным, сделано это для того, чтоб не указывать валюту (рубли, У.Е., евро, доллар США и т.д.) и деление на рубли и копейки.
4. Описание программы создания набора данных
В данной программе записью будет являться товар, а полями записи будет информация о товаре. Поля товаров описаны в п. 3.4.
4.1 Программная организация записи
Программная организация записи описывается следующим образом:
Baza:record
FKod:integer;
FRazdel;
FPodRazdel;
FName:string;
FSeria:string;
FProizvod:string;
FOpisan:string;
FMany:string;
FSim:string; - символ разделитель в БД
End;
4.2 Файлы данных
Файлов данных работающих с программой можно разделить на основные и вспомогательные.
К основным относятся:
- bd.dat;
- Razdel.dat.
К вспомогательным относятся:
- Kod.dat;
- help.dat;
- BDVR.DAT.
4.2.1 bd.dat – это основной файл БД. В данном файле хранится информация о товарах. Каждая позиция товаров хранится в отдельной строке, и товары разделены символом «*».
Пример хранение информации о товаре:
1 – код товара;
1 – раздел «Уход за лицом»;
1 – подраздел «Гель»;
Гель для лица – название товара;
Власть над временем – Серия товара;
Oriflame – производитель;
Гель для лица, замедляющий процесс старения кожи. Почувствуйте моментальный эффект лифтинга. – Описание товара;
200.25 – цена товара;
* - символ разделитель.
4.2.2 Razdel.dat – это файл, хранящий разделы и подразделы. В первой строке стоит код раздела и подраздела, а за ней стоит название раздела и подраздела и т.д.
Пример:
7
Дезодорант
Это запись означает, что в седьмом разделе есть подраздел «Дезодорант»
4.2.3 Kod.dat – это файл, хранящий коды товара. При создании нового товара программа считывает последний код, увеличивает на единицу и сохраняет в файле. Таким образом, код каждого товара уникален.
4.2.4 help.dat – файл справки.
4.2.5 BDVR.DAT – это файл временной БД. Этот файл необходим при удалении товара, когда товары переносятся во временный файл. За исключением удаленного товара, а затем основной файл БД перезаписывается.
5. Описание программы формирование выходного документа
К выходным документам относятся:
- Вывод информации на экран;
- Вывод информации в файл.
5.1 Вывод информации на экран
Пример формирования выходного документа на экран см. в приложении 4 рис. 2
Экран в данной программе состоит из пяти частей:
– Заголовок. Заголовок находится в верхней части экрана и показывает, в каком разделе пользователь находится в настоящий момент. Так же при выборе пользователем подраздела в правой части заголовка выводится количество позиций (товаров) в данном подразделе.
– Меню. Меню находится в левой части экрана и отображает пользователю существующие разделы и подразделы, перемещение в которых осуществляется при помощи курсора.
– Подсказка. Подсказки находятся в левой части экрана под Меню. Здесь отображается клавиши управления для навигации по программе.
– Клавиши управления. Каждая клавиша имеет свой цвет и доступна только в тех случаях, когда данными функциями можно воспользоваться. Клавиши управления находятся в нижней части экрана и содержат следующие пункты:
1) Помощь F1;
2) Новый F2;
3) Поиск F3;
4) Отчет F4;
5) Удалить F5;
6) Назад PageUp;
7) Далее PageDown;
8) Выход 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 для чтения. Данный файл содержит справочную информацию о работе с программой.
– Файл справки достаточно большой и, следовательно, не влезает в одно окно, для этого существует ограничения, когда экран заполнен, то дальнейшее считывание не происходит, до тех пор, пока пользователь не прочтет все и не нажмет клавишу ввод. После этого на экран выводится следующая часть файла справки.
– По завершению работы с файлом справки, он закрывается и на экран выводится разметка, разделы или подразделы, для дальнейшего выбора пользователем.
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):
– Выбор критерий отчета: по текущему товару или по текущему подразделу (Приложение 4, рисунок 6);
– Пользователю предлагается ввести имя файла, в который будет сохранен отчет (Файл будет сохранен в корневой каталог с программой, и будет иметь расширение txt);
– Создание файла с вышеуказанным именем и расширением;
– Если выбрана по текущему подразделу, то все товары того подраздела, в котором пользователь находится в настоящий момент, будут сохранены в файл отчета, если текущий товар, то в файл отчета будет сохранен только товар, открытый в настоящий момент;
– По окончании выводится последний, просматриваемый товар.
7.5.3 Удалить товар.
Реализована функция удаления товара в процедуре Del, алгоритм которой заключается в следующем (приложение 5, схема 15):
– У пользователя уточняется, действительно ли он хочет удалить товар;
– Если да то открывается файл БД для чтения и открывается временный файл в режиме перезаписи;
– Каждый элемент из БД копируется во временный файл, за исключением того которого, хотят удалить, т.е. того код, которого находится в вершине списка;
– Закрываются оба файла;
– Открытие файла БД в режиме перезаписи и временного файла в режиме чтения;
– Вся информация из временного файла, целиком копируется в файл БД;
– Файлы закрываются;
– Выводится сообщение, что запись удалена;
– Обновление информации на экране.
































(zip - application/zip)









