Создание справочника "Парфюмерный магазин" при помощи программы Turbo Pascal
Создание справочника "Парфюмерный магазин" при помощи программы Turbo Pascal
Содержание
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):
– У пользователя уточняется,
действительно ли он хочет удалить товар;
– Если да то открывается файл БД для
чтения и открывается временный файл в режиме перезаписи;
– Каждый элемент из БД копируется во
временный файл, за исключением того которого, хотят удалить, т.е. того код,
которого находится в вершине списка;
– Закрываются оба файла;
– Открытие файла БД в режиме перезаписи
и временного файла в режиме чтения;
– Вся информация из временного файла,
целиком копируется в файл БД;
– Файлы закрываются;
– Выводится сообщение, что запись
удалена;
– Обновление информации на экране.
8 Заключение
Подведем
итог того, что все-таки удалось в данном курсовом проекте:
– Удалось создать неплохую сортировку,
что облегчает работу с товарами, на мой взгляд, эта основа любой БД;
– Удалось создать достаточно простой и
интуитивно понятный интерфейс, без каких либо излишеств;
– В программе реализованы основные
функции работы с БД – удаление, добавление, отчетность, поиск;
– Показано когда, какая функция доступна;
– Отражено, в каком разделе
осуществляется работа, т.к. некоторые разделы содержат одинаковые подразделы и
можно запутаться;
– Существует справочная система и
система подсказок. Хотя над справкой можно было еще поработать;
– Достаточно простое управление
товарами;
Конечно,
можно было еще поработать над справкой, отчетами и поиском. Действительно отчет
всего по двум критериям, для БД конечно маловато, и достаточно примитивный
поиск. Но, подводя итог можно сказать, что основная цель, на мой взгляд, все-таки
выполнена, эти функции показаны и реализованы.
Ко
всему прочему можно с уверенностью сказать, что данную программу можно
приспособить под большинство справочников. Для этого достаточно открыть файл
разделов и создать другие, например жанры книг и точно также разделы, и подразделы,
т.е. сортировку. Затем изменить некоторые позиции в товаре, поиске и отчетности
и в принципе все. В итоге, как мне кажется, за день другой, данную программу
можно очень быстро переделать.
В
итоге конечная цель все-таки достигнута. Была создана универсальная БД со всем
набором необходимых функций. Конечно же, в Turbo Pascal достаточно сложно создавать БД и БД получаются
достаточно примитивные, но принцип создания БД, описан очень хорошо.
9 Список литературы
9.1 Учебное пособие. «Структуры и
алгоритмы обработки данных в ЭВМ», А. Н. Горитов, г. Томск
9.2 Самоучитель. «Программирование в Turbo Pascal», Н. Культин.
9.3 Открытие Интернет
источники.
Приложение 1 - Графическое описание
данных
Разделы
Подразделы у каждого раздела
Товара
у каждого подраздела
Схема 1 – Общая схема описания хранения
данных
Каждый раздел имеет иерархическою
структуру представленную на схеме 2
Схема 2 – структура раздела
Приложение 2 - Представление данных в
памяти ЭВМ
nomer:integer;
- 2 байта;
i:integer;
- 2 байта;
ch:char; - 1 байт;
Rozd:string; - 2 байта;
nabor:integer; - 2 байта;
men:array[1..16] of integer; - 2х16 - 32 байта;
strok:integer; - 2 байта;
lom:integer; - 2 байта;
vof:boolean; - 1 байт;
Razdel:integer; - 2 байта;
PodRazd:integer; - 2 байта;
MRazdel:integer; - 2 байта;
ScetRP:integer; - 2 байта;
hod:integer; - 2 байта;
kolvo:integer; - 2 байта;
Text1:string[19]; - 2 байта;
Text2:string[19]; - 2 байта;
Text3:string[19]; - 2 байта;
Text4:string[19]; - 2 байта;
f1:integer; - 2 байта;
f2:integer; - 2 байта;
f3:integer; - 2 байта;
f4:integer; - 2 байта;
f8:integer; - 2 байта;
pd:integer; - 2 байта;
pu:integer; - 2 байта;
f10:integer; - 2 байта;
Prin:boolean; - 1 байт;
Fsim:string; - 2 байта;
FKod:integer; - 2 байта;
FRazdel:integer; - 2 байта;
FPodRazdel:integer; - 2 байта;
FName:String; - 2 байта;
FSeria:string; - 2 байта;
FProizvod:string; - 2 байта;
FOpisan:string; - 2 байта;
FMany:string; - 2 байта;
MainName:string; - 2 байта;
PodRaz:array[1..16] of string; - 2 х 16 – 32 байта;
z:integer; - 2 байта;
d:string; - 2 байта;
opis1:string; - 2 байта;
opis2:string; - 2 байта;
opis3:string; - 2 байта;
Good,Nal:boolean; - 1 байт;
zed:integer; - 2 байта;
fname1:string; - 2 байта;
fname2:string; - 2 байта;
fname3:string; - 2 байта;
kod:integer; - 2 байта;
hod:integer; - 2 байта;
punkt:integer; - 2 байта;
NSP:string; - 2 байта;
fol:integer; - 2 байта;
k:string; - 2 байта;
n:integer; - 2 байта;
В итоге 168 байт.
Приложение 3 - Рисунок списковой
структуры
Страницы: 1, 2
|