– Выбор критерий отчета: по текущему товару или по текущему подразделу (Приложение 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 - схема списковой структуры - стек
Приложение 4 – Формат выходного документа.
Рисунок 1 – Разметка экрана
Рисунок 2 – Просмотр товаров
Рисунок 3 – Помощь
Рисунок 4 – Добавление товара
Рисунок 5 – Критерии поиска
Рисунок 6 – Отчет
Рисунок 7 – Выходной документ в файл
Приложение 5 – Схема последовательности обработки данных.
Схема 1 – Общая схема
Схема 2 – Разметка экрана
Схема 3 – вывод разделов и подразделов