Введение
Дорогой Александр Григорьевич если вы читаете это введение, значит я наконец – то закончил свой курсовой проект. Он называется «База данных 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, этот параметр определяет, какой объект программы вызывает данную процедуру.
procedure TForm1.ComboBox2Change(Sender: TObject);
В данной процедуре осуществляется выбор и запуск необходимой процедуры сортировки, путём нажатия одного из пунктов выпадающего списка ComboBox. Процедура содержит входную переменную Sender - тип tobject, этот параметр определяет, какой объект программы вызывает данную процедуру.
procedure TForm1.N8Click(Sender: TObject);
Данная процедура завершает работу программы из меню в случае положительного ответа на появляющееся сообщение. Процедура содержит входную переменную Sender - тип tobject, этот параметр определяет, какой объект программы вызывает данную процедуру.
procedure TForm1.N7Click(Sender: TObject);
Данная процедура выводит информацию из файла при помощи при помощи процедуры vivod из меню. Процедура содержит входную переменную Sender - тип tobject, этот параметр определяет, какой объект программы вызывает данную процедуру.
procedure TForm1.N14Click(Sender: TObject);
procedure TForm1.N15Click(Sender: TObject);
procedure TForm1.N16Click(Sender: TObject);
procedure TForm1.N17Click(Sender: TObject);
procedure TForm1.N18Click(Sender: TObject);
Процедуры приведённые выше отвечают за запуск процедур сортировки sort_1(derect+'db_disk.db'),sort_2(derect+'db_disk.db'), sort_3(derect+'db_disk.db')sort_4(derect+'db_disk.db'), sort_5(derect+'db_disk.db'), из меню, соответственно. Процедуры содержат входную переменную Sender - тип tobject, этот параметр определяет, какой объект программы вызывает данную процедуру.
procedure TForm1.N5Click(Sender: TObject);
Данная процедура отвечает за запуск процедуры удаления deletef и вывод обновлённой информации с помощью процедуры vivod из меню. Процедура содержит входную переменную Sender - тип tobject, этот параметр определяет, какой объект программы вызывает данную процедуру.
procedure TForm1.N4Click(Sender: TObject);
Данная процедура отвечает за добавление информации в файл с помощью процедуры input из меню. Процедура содержит входную переменную Sender - тип tobject, этот параметр определяет, какой объект программы вызывает данную процедуру.
procedure TForm1.N2Click(Sender: TObject);
Данная процедура запускает процедуру вывода vivod, путём нажатия на необходимый пункт во всплывающем меню над областью таблицы. Процедура содержит входную переменную Sender - тип tobject, этот параметр определяет, какой объект программы вызывает данную процедуру.
procedure TForm1.N10Click(Sender: TObject);
procedure TForm1.N11Click(Sender: TObject);
procedure TForm1.N12Click(Sender: TObject);
procedure TForm1.freg1Click(Sender: TObject);
procedure TForm1.fcincom1Click(Sender: TObject);
Процедуры, приведенные выше, сходны по своему принципу. Каждая из них вызывает конкретную процедуру сортировки (sort_1, sort_2, sort_3, sort_4, sort_5), путём нажатия на пункт, всплывающего меню над областью таблицы. Процедура содержит входную переменную Sender - тип tobject, этот параметр определяет, какой объект программы вызывает данную процедуру.
procedure TForm1.N9Click(Sender: TObject);
Данная процедура запускает процедуру очистки списка clearlist, путём нажатия на необходимый пункт во всплывающем меню. Процедура содержит входную переменную Sender - тип tobject, этот параметр определяет, какой объект программы вызывает данную процедуру.
procedure TForm1.N23Click(Sender: TObject);
Данная процедура запускает процедуру очистки списка clearlist, путём нажатия на необходимый пункт в меню. Процедура содержит входную переменную Sender - тип tobject, этот параметр определяет, какой объект программы вызывает данную процедуру.
procedure TForm1.N6Click(Sender: TObject);
Данная процедура запускает процедуру редактирования redactor из меню. Процедура содержит входную переменную Sender - тип tobject, этот параметр определяет, какой объект программы вызывает данную процедуру.
procedure TForm1.N21Click(Sender: TObject);
Данная процедура отображает окно с информацией о программе.
procedure tform3.input(var f:recordfile; var dvdfile:string);
Данная процедура осуществляет запись данных в файл.
Параметр “f” – типизированный файл типа recordfile. Dvdfile – деректория файла.
Алгоритм:
1. Привязываем к файловой переменной “g” временный файл derect+'buffer.db' и перезаписываем его. Привязываем к файловой переменной “f” переменную dvdfile и открываем на чтение.
2. Если в файле находится что-либо, копируем содержимое “f” в “g” и закрываем “f”, если нет, перезаписываем и закрываем “f”.
3. Присваиваем переменным записей введенные поля.
4. Проверяем наличие введённого dvd в файле, путем сравнения названия введённой диска с уже находящимися в файле в цикле достижения конца файла. Если поля равны, присваиваем переменной k значение 1, если нет, то оставляем по умолчанию равной нулю.
5. Далее проверяем значение переменой k. Если k=1, то выводится сообщение о том что данный диск существует и запись не осуществляется, если иначе, то происходит запись в файл.
6. В конце закрываем “g” и удаляем “f”. Переприсваиваем директорию dvdfile переменной “g”. И выводим обновлённый список с помощью процедуры vivod.
Таблица 8. Локальные переменные.
Идентификатор | Тип | Назначение |
s | disk | Запись |
q | disk | Запись |
procedure tform1.search_1(dvdfile:string; var g:recordfile);
procedure tform1.search_2(dvdfile :string; var g:recordfile);
procedure tform1.search_3(dvdfile:string; var g:recordfile);
procedure tform1.search_4(dvdfile:string; var g:recordfile);
procedure tform1.search_5(dvdfile:string; var g:recordfile);
Процедуры, приведены выше, почти одинаковы и различается лишь поле, по которому происходит поиск. Во всех процедурах, кроме второй, на экран выводится только те записи, поля которых полностью совпадают, с введёнными нами данными. В третьей, четвёртой и пятой процедурах список выводится отсортированным по названию модели. Параметр “g” – типизированный файл типа recordfile. Параметр dvdfile – директория файла.
procedure TForm1.Button4Click(Sender: TObject);
Данная процедура отвечает за функцию изменения информации. При нажатии на кнопку курсором вызывается процедура editzap.
procedure TForm1.Button7Click(Sender: TObject);
Данная процедура закрывает полностью программу. При нажатии на кнопку отображается окно подтверждения
... к первой фазе и является наиболее трудным и длительным во времени этапом процесса проектирования. Однако он является наиболее важным, т.к. на его базе строится большинство проектных решений. Основной задачей является сбор требований, предъявляемых к содержанию и процессу обработки данных пользователями всех уровней. Анализ требований обеспечивает согласованность целей пользователей, а также ...
... форме. 1.3 Обоснование необходимости автоматизации Естественно отметить в вышеперечисленных этапах процессы, которые легко подвергаются автоматизации и в которых целесообразно создание электронных баз данных (например, регистрация заказов, данные о клиенте, ведение статистики заказов и прочее). С экономической точки зрения необходимо отметить, что подобное нововведение позволит значительно ...
... на создание таблицы создает новую таблицу на основе всех или части данных из одной или нескольких таблиц. Запрос на создание таблицы полезен при создании таблицы для экспорта в другие базы данных Microsoft Access или при создания архивной таблицы, содержащей старые записи. 4.1.3 Формы Формы являются типом объектов базы данных, который обычно используется для отображения данных в базе данных ...
... в нижней половине отображается большая панель для текста заметок. 3. Проектная часть. Создание презентации процесса разработки базы данных «Деканат ВУЗа» 3.1 Основные правила создания презентации Рассмотрим общие правила, которыми пользовались при создании презентации базы данных деканата [12, С.53]: Прежде чем приступить к созданию презентации, следует четко представлять (понимать), ...
0 комментариев