Общая характеристика и описание математической модели. Выбор и обоснование среды программирования, анализ входных и выходных данных. Структурное проектирование приложений и интерфейса пользователя. Реализация и оценка защитного программирования.
Аннотация к работе
Создать приложение «Энциклопедия киномана», содержащую базу данных со сведениями о фильмах, панели администрирования, предоставляющую возможность проведения поиска, сортировки и фильтрации данных. Приложение «Энциклопедия Киномана» может быть использовано как для личного ведения базы данных о фильмотеке, так и быть применено в различных магазинах, салонах, библиотеках, имеющих определенный набор фильмов. Таблица базы данных имеет следующую структуру: интерфейс пользователь программирование приложение Начиная с 2007 года уже язык Delphi (производный от Object Pascal) начал жить своей самостоятельной жизнью и претерпевал различные изменения, связанные с современными тенденциями (например, с развитием платформы.NET) развития языков программирования: появились class helpers, перегрузки операторов и другое. Поэтому для обеспечения доступа приложения к данным достаточно лишь правильно указать провайдер соединения ADO и затем переносить программу на любой компьютер, где имеется требуемая база данных, и, конечно, установленная ADO.Итогом выполнения курсового проекта стало написание приложения «Энциклопедия киномана».
С начала 60-70хх началось бурное развитие компьютеризации всех крупных промышленных центров. Ближе к 80-ым, компьютеры стали появляться и в учебных заведениях, предмету «Информатика» стали уделять огромное внимание. Стали появляться языки программирования высокого уровня такие, как Delphi, C .
Далее пойдет речь о языке программирования Delphi и о базах данных.
В России Borland Delphi появляется в конце 1993 г. и сразу же завоевывает широкую популярность. Новые версии выходят практически каждый год. В них реализуются все новые мастера, компоненты и технологии программирования.
В Delphi используется язык Object Pascal, который постоянно расширяется и дополняется Borland. Язык в полной мере поддерживает все требования, предъявляемые к объектно-ориентированному языку программирования. Как и положено строго типизированному языку, классы поддерживают только простое наследование, но зато интерфейсы могут иметь сразу несколько предков. К числу особенностей языка следует отнести поддержку обработки исключительных ситуаций (exceptions), а также перегрузку методов и подпрограмм (overload) в стиле C .
Среду Delphi можно использовать как для написания небольших простых приложений, так и для создания крупных, корпоративных проектов, предназначение которых стоит в обслуживании десятков и даже сотен пользователей. Стоит отметить, что для получаемых приложений можно использовать самые разнообразные технологии с минимальными затратами времени и ресурсов, в том числе и базы данных.
Целью курсовой работы является создание приложения «Энциклопедия киномана», суть которой состоит в ведении базы данных фильмов, возможности редактирования, просмотра информации, а так же различных видов фильтрации для ускоренного поиска.
Постановка задачи
Создать приложение «Энциклопедия киномана», содержащую базу данных со сведениями о фильмах, панели администрирования, предоставляющую возможность проведения поиска, сортировки и фильтрации данных.
1. Описание математической модели
Приложение «Энциклопедия Киномана» может быть использовано как для личного ведения базы данных о фильмотеке, так и быть применено в различных магазинах, салонах, библиотеках, имеющих определенный набор фильмов.
Приложение представляет собой таблицу базы данных, гже хранится информация о фильмах. Таблица базы данных была спроектирована в СУБД Access и хранится в папке BD под именем kinoman.mdb.
Таблица базы данных имеет следующую структуру: интерфейс пользователь программирование приложение
Таблица 1. Структура таблицы базы данных kinoman
Имя поля Тип поля Примечания
Kod Числовое Код фильма. Ключевое поле
Name Тестовое Название фильма
Director Текстовое Режиссер
Actor Текстовое Актеры
God Числовое Год выпуска фильма janr Текстовое Жанр
2. Технология разработки приложения
2.1 Выбор и обоснование среды программирования
Delphi - императивный, структурированный, объектно-ориентированный язык программирования, диалект Object Pascal. Начиная со среды разработки Delphi 7.0, в официальных документах Borland стала использовать название Delphi для обозначения языка Object Pascal. Начиная с 2007 года уже язык Delphi (производный от Object Pascal) начал жить своей самостоятельной жизнью и претерпевал различные изменения, связанные с современными тенденциями (например, с развитием платформы.NET) развития языков программирования: появились class helpers, перегрузки операторов и другое.
Object Pascal - результат развития языка Турбо Паскаль, который, в свою очередь, развился из языка Паскаль. Паскаль был полностью процедурным языком, Турбо Паскаль, начиная с версии 5.5, добавил в Паскаль объектно-ориентированные свойства, а в Object Pascal - динамическую идентификацию типа данных с возможностью доступа к метаданным классов (то есть к описанию классов и их членов) в компилируемом коде, также называемом интроспекцией - данная технология получила обозначение RTTI. Так как все классы наследуют функции базового класса TOBJECT, то любой указатель на объект можно преобразовать к нему, после чего воспользоваться методом CLASSTYPE и функцией TYPEINFO, которые и обеспечат интроспекцию.
Также отличительным свойством Object Pascal от С является то, что объекты по умолчанию располагаются в динамической памяти. Однако можно переопределить виртуальные методы NEWINSTANCE и FREEINSTANCE класса TOBJECT. Таким образом, абсолютно любой класс может осуществить «желание» «где хочу - там и буду лежать». Соответственно организуется и «многокучность».
Object Pascal (Delphi) является результатом функционального расширения Turbo Pascal.
Delphi позволяет создавать приложения интерактивным выбором необходимых компонентов из Component Palette и перетягиванием их на форму. Основное же достоинство этого метода заключается в том, что Delphi при этом самостоятельно создает необходимый код. Это напоминает по своим возможностям Visual Basic и другие подобные языки программирования, однако в случае Delphi - это настоящий объектно - ориентированный код и все возможности этого подхода, включая расширение функциональных возможностей компонентов Delphi до уровня, удовлетворяющего ваши запросы. Есть возможность использовать компоненты Delphi, наследовать их и добавлять собственные методы, а кроме того, существует возможность использования управляющих элементов Active X.
База данных создавалась в программе Microsoft Access. Для доступа к данным в Delphi использовалась технология ACTIVEX Data Objects (ADO).
Технология ADO поддерживается в Delphi версий 5,6, 7 которая в последнее время усиленно развивается корпорацией Microsoft. Базовый набор интерфейсов имеется в каждой операционной системе Microsoft. Поэтому для обеспечения доступа приложения к данным достаточно лишь правильно указать провайдер соединения ADO и затем переносить программу на любой компьютер, где имеется требуемая база данных, и, конечно, установленная ADO. Использование данной технологии не требуют развертывания и настройки BDE на компьютере.
ADO - представляет собой часть универсального механизма доступа к данным Microsoft (Microsoft Universal Data Access) Основное назначение ADO - обеспечение простого универсального механизма доступа к данным.
2.2 Входные и выходные данные
Входными данными для приложения «Энциклопедия киномана» являются данные о фильме. Эта информация может быть получена из сети интернет, приложение к фильму или личных ассоциаций.
Выходные данные представлены на экранной форме и содержат сведения о фильме, а именно: · Название фильма;
· Режиссер фильма;
· Актеры, играющие главные роли в фильме;
· Год выпуска;
· Жанр фильма.
Выходные данные могут быть представлены в виде полного перечня фильмов или отфильтрованного списка, характеристики которого задаются самим пользователем.
3. Структурное проектирование приложений
3.1 Проектирование интерфейса пользователя
Интерфейс пользователя должен быть интуитивно понятным и ориентированным на пользователя не имеющего опыта работы с компьютером. Из этого следует, что приложение должно содержать: · Удобное расположение элементов окна;
· Интуитувно понятные кнопки и пункты меню;
· Баланс в использовании цветовой палитры при проектировании дизайна приложения.
Согласно поставленной задачи, в состав пользовательского интерфейса должны войти такие элементы, как: · Кнопки управления приложением;
· Таблица отображения данных;
· Меню выбора;
· Поля ввода данных.
Приложение имеет однопользовательский режим доступа. Пользователь, при входе в приложение может иметь несколько вариантов к действию. Эти действия представлены на рисунке 1 в виде диаграммы вариантов диалога.
Рис. 1. Диаграмма варинатов диалога
4. Методы программирования
При проектировании приложения были использованы различные подходы к созданию. Опишем эти методы: · Подключение базы данных
Связь базы данных Access и приложения Delphi осуществляется с использованием технологии ADO. Необходимо, чтобы на главной форме приложения были размещены компоненты: - TDBGRID - Компонент предназначен для отображения данных БД в приложении, расположен на вкладке DATACONTROLS;
- TDATASOURCE - Компонент предназначен для связи сетки отображения данных, с самой БД, расположен на вкладке Data Assecc;
- TADOCONNECTION - Компонент предназначен для подключения БД по определенному провайдеру, расположен на вкладке ADO;
- TADOQUERY - Компонент предназначен для извлечения нужных результатов из БД, расположен на вкладке ADO.
TADOQUERY в свойстве Connection связывается с TADOCONNECTION. TDATASOURCE в свойстве DATASET связывается с TADOQUERY. TDBGRID в свойстве DATASOURCE связывается с TDATASOURCE. Для осуществления связи все указанные свойства выбираются из выпадающего списка.
Для компонента TADOCONNECTION в свойстве LOGINPROMT было установлено значение False, чтобы при подключении к БД не запрашивался пароль. Для соединения с базой данных в свойстве CONNECTIONSTRING было вызвано окно следующего вида (см. рис. 2):
Рис. 2. Настройка подключения к базе данных
Далее, был выбран провайдер Microsoft Jet 4.0 OLE DB Provaider.
В следующем окне был указан путь к БД и имя пользователя по умолчанию (Admin). Если БД находится в корневом каталоге с программой, то в данном поле достаточно указать ее имя с расширением, база данных находится в подкаталоге BD, поэтому указываем имя BD\kinoman.mdb
В свойстве компонента TDBGRID было выбрано Options и в подствойстве DGEDITING установлено значение False (запрет редактирования в таблице), а в подсвойстве DGROWSELECT установлено значение True (выделяется вся строка в таблице)
Для компонента TADOCONNECTION - в свойстве Mode выбрано значение CMSHAREDENYNONE (из выпадающего списка)
· Перемещение по БД
Для возможности перехода по записям в таблице были созданы четыре кнопки «Следующая запись», «Предыдущая запись», «В начало», «В конец»
Их работоспособность обеспечивается благодаря следующему коду: ADOQUERY1. Next;
ADOQUERY1. Prior;
ADOQUERY1. First;
ADOQUERY1. Last.
· Добавление, удаление данных
Для возможности добавления и удаления данных была проведена дополнительная настройка объекта TDBGRID. После этого, для кнопки «Добавить» был написан следующий код: try if (Trim (Edit1. Text)="") or (Trim (Edit2. Text)="") or (Trim (Edit3. Text)="") or (Trim (Edit4. Text)="") or (Trim (Edit5. Text)="") or (Trim (Edit6. Text)="") then begin exit;
После добавления информации она должны быть дополнительно сохранена, для этого на кнопке «Сохранить» был написан следующий код: try
ADOQUERY1. Active:=True;
ADOQUERY1. Post;
except on e: Exception do end;
Для удаления текущей записи был использован следующий код: try if Application. MESSAGEBOX ("Подтвердите удаления записи", "ADO", MB_YESNO) = IDYES then begin
В зависимости от выбранного пункта элемента RADIOGROUP1 сортировка проводится по разным полям
Программный код, реализующий сортировку: case radiogroup1.itemindex of
0:ADOQUERY1. Sort:="kod";
1:ADOQUERY1. Sort:="name";
2:ADOQUERY1. Sort:="director";
3:ADOQUERY1. Sort:="god";
4:ADOQUERY1. Sort:="janr";
· Фильтрация данных
Поле, по которому будет производиться фильтрация, определяется с помощью объекта RADIOGROUP2.
Программный код, реализующий фильтрацию: if length (edit7.text)>0 then begin
ADOQUERY1.SQL. Clear;
if radiogroup2.itemindex=0 then ADOQUERY1.SQL. Add ("SELECT * FROM Kinoman where name like " #39 " % " edit7. Text " % " #39);
if radiogroup2.itemindex=1 then ADOQUERY1.SQL. Add ("SELECT * FROM Kinoman where director like " #39 " % " edit7. Text " % " #39);
if radiogroup2.itemindex=2 then ADOQUERY1.SQL. Add ("SELECT * FROM Kinoman where actor like " #39 " % " edit7. Text " % " #39);
ADOQUERY1. Active:=True;
end;
edit7.text:="";
Для восстановления всех записей используем программный код: ADOQUERY1.SQL. Clear;
ADOQUERY1.SQL. Add ("SELECT * FROM Kinoman");
ADOQUERY1. Active:=True;
· Поиск данных
Поиск данных выполняется с помощью двух кнопок «Искать» и «Искать дальше». По умолчанию кнопка «Искать дальше» сделана неактивной (свойству Enable установлено значение false), она становится доступной в том случае, если найдено первое значение. Если искомое значение не найдено, выводится искомый текст и сообщение о том, что он не найден.
FOUNDREC:=False;
case radiogroup3. ITEMINDEX of
0: s:="kod";
1: s:="name";
2: s:="director";
3: s:="god";
4: s:="janr";
end;
ADOQUERY1. First;
while not ADOQUERY1. Eof do begin if ANSILOWERCASE (ADOQUERY1. FIELDVALUES[s]) = ANSILOWERCASE (Edit7. Text) then begin
FOUNDREC:=True;
Button13. Enabled:=True;
break;
end;
ADOQUERY1. Next;
end;
if not FOUNDREC then begin
ADOQUERY1. First;
SHOWMESSAGE (edit7. Text " не найдено");
end;
В случае если первое значение будет найдено, кнопка «Искать дальше» становится активной и нажатие на нее переводит курсор на следующее найденное значение.
Программный код: ADOQUERY1. Next;
while not ADOQUERY1. Eof do begin if ANSILOWERCASE (ADOQUERY1. FIELDVALUES[s]) = ANSILOWERCASE (Edit7. Text) then break;
ADOQUERY1. Next;
end;
if ADOQUERY1. Eof then ADOQUERY1. First;
end;
5. Реализация защитного программирования
5.1 Аномалии
Приложение рассчитано на работу с базой данных о фильмах. Следовательно, должна быть обеспечена работа с самой базой данных - kinoman.mdb
Таблица 2. Перечень ситуаций и реакция приложения
Ситуация Реакция приложения
Отсутствует файл с базой данных Вывод сообщения об ошибке
Файл с базой данных поврежден Вывод сообщения об ошибке
Не соответствует формат базы данных Вывод сообщения об ошибке
5.2 Оптимизация программы
Для удобной работы в приложении все функции и возможности при работе с данными были разделены на группы. Это позволяет пользователю легче ориентироваться в выполняемых функциях приложения. Кроме того, приложение по умолчанию имеет неактивные кнопки, которые только при выполнении определенных условий становятся активными. Это сделано специально для того, чтобы предотвратить ошибочное нажатие.
6. Тестирование программы
Любое приложение должно обеспечивать бесперебойную работу в любых ситуациях. Кроме того, приложение должно учитывать вероятные ошибки пользователя при работе с данными и по возможности предотвращать их. В приложении «Энциклопедия киномана» так же были учтены некоторые возможные ошибки пользователя: Таблица 3. Действия пользователя и реакция приложения
Действия пользователя Реакция приложения
Была произведена попытка удаления фильма Вывод сообщения-предупреждения об удалении
Была произведена попытка сохранения без внесения каких-либо изменений Вывод сообщения об ошибке
Было задано пустое окно ввода Сообщение об ошибке
Окно поиска не заполнено Сообщение об отсутствии сведений
7. Инструкция пользователя
Для нормального функционирования приложения должны учитываться системные требования персонального компьютера.
Системные требования: · Операционная система WINDOWSXP, Vista, 7, 8
· Процессор с тактовой частотой 800 МГЦ
· 70 Мб ОЗУ
· Не менее 16 Мб свободного места на жестком диске
Для установки приложения достаточно скопировать папку с всеми данными на жесткий диск компьютера.
Для начала работы с приложением, необходимо запустить файл Project1.exe. После этого, пользователь получит доступ к главному окну приложения (см. рис. 3)
Рис. 3. Главное окно приложения Энциклопедия киномана
Таблица представляет собой список всех фильмов, имеющихся в базе данных. Приложение исключает изменение данных в этой таблице. Перемещение по записям таблицы происходит нажатием кнопок «Следующая запись», «Предыдущая запись», «В начало», «В конец».
Добавление данных в базу данных происходит путем заполнения полей Код фильма, Название фильма, Режиссер, Актеры, Год выпуска, Жанр (см. рис. 4).
Рис. 4. Заполнение полей для последующего добавления данных
После того, как все данные были заполнены, необходимо нажать кнопку «Добавить». Если хотя бы одно из полей не было заполнено, данные не добавятся. После добавления данных, поля ввода очистятся (см. рис. 5).
Рис. 5. Добавление данных о фильме
Во избежание ошибок редактирование данных непосредственно в таблице запрещено. Для возможности внести изменения в данные существует кнопка «Редактировать», нажатие на кнопку приводит к тому, что активная запись переносится в форму, при этом она удаляется из таблицы.
После редактирования данных в форме нужно переместить информацию обратно в таблицу с помощью команды «Добавить», а затем сохранить изменения, нажимая на кнопку «Сохранить».
Поиск, Фильтрация и Сортировка данных выполняется путем установки флажка в соответствующее окно, заполнение поля поиска или сортировки. После чего необходимо нажать на кнопку «Поиск», «Фильтрация» или «Сортировка».
По умолчанию, кнопка «Искать дальше» не доступна. Она активируется только в том случае, если при поиске данных было найдено более одного значения по заданному критерию.
Вывод
Итогом выполнения курсового проекта стало написание приложения «Энциклопедия киномана». Приложение полностью отвечает требованиям, представленным в техническом задании.
Так как приложение было создано для хранения сведений о фильмах, то применение может распространяться как на личное использование, так и частное, например, в магазинах, библиотеках, салонах. Оно будет обеспечивать предоставление полной информации об интересующих фильмах, позволит производить учет фильмотеки, а так же позволит быстро получать необходимую информацию, посредством фильтрации.
Таким образом, главная цель курсовой работы была достигнута.
Список литературы
1) А. Архангельский. Программирование в Delphi. Учебник по классическим версиям Delphi. М.: Бином. Лаборатория Знаний, 2008 г. - 816 с.
2) А.Н. Боровский. Программирование в Delphi. Сп-б.: БХВ-Петербург, 2005 г. - 448 с.
3) На примерах. Delphi. Под. Ред.: В.М. Пестриков, А.Н. Маслобоев. Сп-б.: БХВ-Петербург, 2012 г. - 496 с.
4) Тюкачев Н.В. Программирование в Delphi для начинающих. Сп-б.: БХВ-Петербург, 2007 г. - 672 с
5) Фленов М.Е. Библия Delphi. 3-е издание. Сп-б.: БХВ-Петербург, 2012 г., 688 с.
6) Аникеев С. Разработка приложений баз данных в Delphi. М.: Диалог-МИФИ? 2013 г.
7) Осипов Д.Л. Базы данных и Delphi. Теория и практика. Сп-б.: БХВ-Петербург, 2011 г., 752 с.
8) Бекаревич Ю. Access 2010. Сп-б.: БХВ-Петербург, 2011, 432 с.
9) Гончаров А.Ю. Access 2007: справочник с примерами. М.: Кудиц-образ, 2008 г., 296 с.