Введение
Дорогой Александр Григорьевич если вы читаете это введение, значит я наконец – то закончил свой курсовой проект. Он называется «База данных DVD – фильмов». Скорее всего, он ни кому, ни будет, нужен и денег я на нем не заработаю. Это очень печально. Хотя если взглянуть на это с другой стороны, то почти у каждого человека в этом мире есть своя коллекция DVD - фильмов и мысль, что эта программа может им пригодиться, меня очень радует. Как говорится, нет худа, без добра. Программа очень проста в использовании и ест очень мало ресурсов. Работает почти на любой операционной системе и на любом компьютере. Теперь поговорим о самой программе. Она многофункциональна. Занесенную информацию о DVD – фильмах можно изменять, удалять и редактировать. Информация о дисках записывается в базу данных по пяти полям: название диска, цена, год выпуска, фамилия режиссера, кинокомпания, которая создавала фильм. Также можно сортировать диски по этим же полям. В общем, она настолько проста, что даже ребенок может в ней разобраться. А самое главное, что программа написана на русском языке да еще русским студентом третьего курса, АФРГСУ который учится на факультете ИТиР. Как это расшифровывается, я до сих пор не могу запомнить!!!
1. Общая часть
1.1 Краткое описание работы
При запуске программы отображается главное окно, в котором имеются четыре кнопки и область обработки информации, управляемые кнопками.
1. Кнопка вывода информации.
Вся информация, находящаяся в файле и выводится в данную таблицу.
2. Кнопка поиска информации.
При нажатии кнопки поиск отображается окно поиска. Поиск происходит по пяти параметрам. Выбираем один из параметров, вводим данные и начинается поиск, найденные данные выводятся в этом же окне в таблице.
3. Кнопка удаления.
Удаление происходит следующим образам: выбираем курсором, какой DVD – фильм вы хотите удалить и следовательно нажимаем кнопку удаление.
4. Область редактирования.
Для редактирования одного из полей, необходимо ввести в первое поле его название из списка, выбрать из выпадающего списка параметр для изменения и во второе поле ввести новую информацию. Обновленная информация появляется мгновенно в таблице.
5. Кнопка добавления информации.
Отображается окно добавления информации. Информация также добавляется по пяти полям. Добавленная информация мгновенно выводится в главном окне.
1.2 Выбор языка и среды программирования
Данная программа разрабатывалась в среде программирования Delphi. Она содержит богатый набор различных типов данных и компонентов, облегчающих создание программного продукта под MS Windows.
Краткость языка, легкость программирования на нем, мобильность написанных программ, возможность эффективной реализации и пригодность с точки зрения формальных методов отладки программ обеспечили языку Object Pascal и конкретно среде Delphi успех в тех делах, для которых он предназначался.
2. Основная часть
2.1 Структура данных
type disk=record
name:string[50];
reg: string[30];
cincom: string[30];
stoim:integer;
year:integer;
end;
Тип записи disk является представлением информации: stoim - стоимость DVD - фильма, name -название DVD – фильма, reg – фамилия режиссера, cincom – название кинокомпании, year – год выхода фильма на DVD.
tdvd=array[1..300] of disk
Тип tdvd является одномерным массивом, содержащим 300 элементов типа disk , т.е. этот массив содержит информацию о 300ах DVD - фильмах, полученную в результате заполнения файла с информацией.
recordfile=file of disk
Типизированный файл «recordfile» содержит записи типа disk , т.е. содержит исходную информацию о каждом DVD - фильме .
Описание файлов
При работе программа использует постоянный файл с информацией
‘db_ disk.db’ – файл с исходной информацией;
2.2 Структурные элементы программы
Описание глобальных переменных используемых в модуле kursovik.pas приведено в таблице 1.
Таблица 1. Глобальные переменные.
Идентификатор | Тип | Назначение |
n | integer | Переменная – счётчик |
m | integer | Переменная – счётчик |
dvdfile | string | Название файла |
f | recordfile | Файл с записями |
g | recordfile | Файл с записями |
Form1 | Tform1 | Идентификатор формы |
but | integer | Определяет нажатую кнопку при появлении сообщения |
h | HWND | Дескриптор окна |
horizon | integer | Номер строки в таблице |
k | integer | Проверка существования телефона |
Таблица 2. Константа.
Идентификатор | Значение | Назначение |
detect | ‘savedvd\’ | Путь к файлам необходимым для работы программы |
Таблица 3. Глобальные переменные модуля Unit2.рas.
Идентификатор | Тип | Назначение |
Form2 | Tform2 | Идентификатор формы |
Таблица 3. Глобальные переменные модуля unit search.pas
Идентификатор | Тип | Назначение |
Form4 | Tform4 | Идентификатор формы |
dvdfile | string | Название файла |
n | integer | Переменная – счётчик |
f | recordfile | Файл с записями |
g | recordfile | Файл с записями |
Таблица 4. Глобальные переменные модуля unit Input.pas
Идентификатор | Тип | Назначение |
Form3 | Tform3 | Идентификатор формы |
dvdfile | string | Название файла |
n | integer | Переменная – счётчик |
k | integer | Переменная – счётчик |
f | recordfile | Файл с записями |
g | recordfile | Файл с записями |
Описание процедур
Модуль kursovik.pas
procedure tform1.clearlist;
Данная процедура очищает таблицу вывода информации.
procedure tform1.vivod (dvdfile:string);
Данная процедура осуществляет вывод данных записанных в файл. Параметр dvdfile – директория файла.
Алгоритм:
1. Привязываем к файловой переменной “f” переменную dvdfile и открываем на чтение.
2. Если файл обнаружен, то в цикле, до тех пор, пока не достигнут конец файла, запускаем счётчик и выводим в ячейки таблицы данные из файла. Если счётчик равен нулю, следовательно, файл пустой, запускается процедура clearlist.
3. В случае не обнаружения файла, он создаётся в необходимой директории.
Таблица 5. Локальные переменные.
Идентификатор | Тип | Назначение |
s | disk | Запись |
f1 | recordfile | Файл с записями |
count | integer | Номер по списку |
procedure tform1.deletef (horizon:integer);
Данная процедура осуществляет удаление записи из фала.
Алгоритм.
1. В параметр d передаётся введённая модель телефона.
2. Открываем на чтение основной файл “db_disk.db” на чтение и создаём временный “new.db”. Перезаписываем его.
3. До тех пор, пока не достигнут конец файла, читаем записи и если поле записи обозначающей имя не равно переменной “d”, пишем во временный файл все наши записи. Удаляем основной файл и переприсваиваем его директорию временному файлу.
Таблица 5. Локальные переменные.
Идентификатор | Тип | Назначение |
el | tdvd | Запись |
f1 | recordfile | Файл с записями |
procedure tform1.sort_1(dvdfile: string);
procedure tform1.sort_2(dvdfile: string);
procedure tform1.sort_3(dvdfile: string);
procedure tform1.sort_4(dvdfile: string);
procedure tform1.sort_5(dvdfile: string);
Процедуры, перечисленные выше почти одинаковы различны только по полям сортировки Во всех процедурах используется алгоритм сортировки методом вставки. Параметр dvdfile – директория файла.
Таблица 6. Локальные переменные.
Идентификатор | Тип | Назначение |
f | file of disk | Типизированный файл с записями |
q | file of disk | Типизированный файл с записями |
c | integer | Счётчик записей |
i | integer | Элемент массива |
n | integer | Элемент массива |
buf | disk | Запись |
el | tdvd | Массив с записями |
procedure Tform1.editzap;
Данная процедура осуществляет редактирование данных записанных в файл.
Алгоритм.
1. Открываем на чтение основной файл с информацией и в переменную name заносим название dvd, один из параметров которого нам необходимо заменить.
2. Пока нет конца файла, запускаем счётчик n. Сравниваем введённое название, с имеющимися в dvd. При совпадении присваиваем переменной m значение счётчика. Переменная m будет отвечать за позицию записи в фале. Далее переменной new присваиваем данные, которые надо записать в вместо исходных.
3. Переходим с помощью функции seek на позицию m-1, то есть над необходимой записью. Читаем из файла запись.
4. Затем в case comboBox3.ItemIndex выбираем поле которое необходимо заменить и присваиваем ему значение переменной new. Если параметр не символьный переводим переменную new в цифровой формат при помощи функции.
5. Перезаписываем запись в файле. Закрываем его и выводим на экран при помощи процедуры vivod.
Таблица 7. Локальные переменные.
Идентификатор | Тип | Назначение |
f1 | recordfile | Временный файл с записями |
q | disk | Запись |
s | disk | Запись |
new | string | Новые введённые данные |
name | string | Введённое название dvd |
procedure TForm1.FormCreate(Sender: TObject);
Данная процедура вызывается при создании окна и запускает процедуру nanol. Процедура содержит входную переменную Sender - тип tobject, этот параметр определяет, какой объект программы вызывает данную процедуру.