Скачиваний:
74
Добавлен:
02.05.2014
Размер:
1.41 Mб
Скачать

 

СОДЕРЖАНИЕ

 

1.

Постановка задачи

2

 

 

 

2.

Среда программирования

2

 

 

 

3.

Концепция программы

2

 

 

 

4.

Внешние данные

5

 

 

 

5.

Работа программы

5

 

 

 

6.

Результаты

9

 

 

 

7.

Вывод

10

 

 

 

8.

Текст кода программы

11

 

 

 

9.

Список литературы

18

 

 

 

1. Постановка задачи

Вариант 74: "Разработать программу для управления базой данных «Домашняя библиотека». Реализовать функции создания в ней записи, ее редактирования, удаления и поиска записи по значению поля. Запись в базе данных содержит следующие поля: автор, название произведения, жанр, год издания".

2. Среда программирования

Данный курсовой проект выполнен в среде программирования Borland C++ Builder Development Environment версии 6.0.10.161, разработанной фирмой Borland Software Corporation. В его состав помимо компилятора и интерпретатора языкаС/С++ стандарта ANSI входят также графическая среда разработки, отладчик и другие вспомогательные программы, облегчающие труд разработчика. Широкий набор как встроенных библиотек (MFC, VCL, CLX) так и подключаемых внешне компонентов (ActiveX, COM) позволяют использовать, наверное, все возможные технологии, методы и компоненты в области разработки программ.

3. Концепция программы

Основным структурным элементом программы работы с БД "домашняя библиотека"

является понятие "книга". Каждая книга содержит шесть полей: уникальный номер; автор; название; год издания; жанр и расположение. Все книги объединены в массив книг, с которым и работает программа. Наглядно структуру программы можно представить так: (рис.1)

Рисунок 1 – Внутренняя структура программы.

Для реализации подобной структуры введены классы: class cJanr // класс жанров

{public: int ID; //уникальный (порядковый) номер жанра String NAM; //название (наименование) жанра}

class cPolka // класс полок

{public: int ID; //уникальный (порядковый) номер полки

String NAM; //название (расположение) полки}

class cBook // класс книг

{public: int ID; //уникальный (порядковый) номер книги

String NAME; // название книги String AVTOR; // автор(ы) книги int GOD; // год издания книги cJanr JANR; //жанр книги

cPolka POLKA; // расположение книги}

Относительно полей жанра и полки: для каждого из этих полей есть свой

справочник, который пользователь может изменять по своему усмотрению. Концепция расположения книг в виде полок предполагает, что все возможные местоположения книг в пределах одного дома (квартиры) неким образом каталогизируются (описываются) пользователем, например, делаются небольшие наклейки с указанием номера, и заносятся в дополнительный справочник полок.

Внутренний механизм работы программы выглядит так: при запуске программы основной массив книг и дополнительные справочники заносятся в "глобальную" базу книг. Различные действия пользователя не влияют на данные, находящиеся во

внешних файлах, а изменяют лишь глобальную базу. По окончании работы информация из глобальной базы полностью переписывается во внешние файлы.

Кявным недостаткам следует отнести необходимость держать в оперативной памяти одновременно всю базу. Однако это не настолько серьезно: программа предполагает эксплуатацию в основном дома, а размер базы данных домашней

библиотеки составляет незначительную часть доступной оперативной памяти домашних компьютеров, следовательно, подобный подход вполне отвечает

поставленным задачам.

Кдостоинствам можно отнести тот факт, что при возможном отключении питания,

что в нашей стране не редкость :), будут утеряны лишь изменения, сделанные в текущем сеансе, а база в целом сохранится, что гораздо важнее. Кроме того, риск потери изменений минимизирован за счет сохранения/перезагрузки базы в результате определенных действий пользователя.

Итак, подобная концепция отличается наглядностью, простотой и удобством использования.

4. Внешние данные

Внешние данные, используемые программой, хранятся в трех "физических" файлах: bBook.hlb – файл базы книг. Состоит из строк-записей, разделенных символом переноса строки '\n'. Имеет формат: ID$AVTOR$NAME$GOD$JANR$POLKA.

Использование символа '$' в качестве разделителя дает определенное удобство, т.к. поля записи предполагают наличие пробелов, а он установлен в качестве символа- разделителя по умолчанию. Первая строка файла контрольная сумма записей.

bJanr.hlb – файл базы жанров. Состоит из строк-записей, разделенных символом переноса строки '\n'. Имеет формат: ID$NAM. Использование символа '$' в качестве разделителя дает определенное удобство, т.к. поля записи предполагают наличие пробелов, а он установлен в качестве символа-разделителя по умолчанию.

bPolka.hlb – файл базы полок. Состоит из строк-записей, разделенных символом переноса строки '\n'. Имеет формат: ID$NAM. Использование символа '$' в качестве разделителя дает определенное удобство, т.к. поля записи предполагают наличие пробелов, а он установлен в качестве символа-разделителя по умолчанию.

Использование специфического расширения файлов '*.hlb' (HomeLiBrary) позволяет обезопасить файлы от некорректных действий неквалифицированного пользователя,

решившего поковыряться в настройках. В тоже время файлы без проблем можно

изменить с помощью любого текстового редактора, что, несомненно, порадует опытного пользователя.

5. Работы программы

В данном разделе будет описан процесс работы с программой, затрагивающий

использование всех предусмотренных функций. Предполагается, что программа корректно установлена, контрольные суммы внешних файлов совпадают с их содержанием, пользователь умеет работать в Win системах.

При запуске программы появляется её главное окно: (рис.2)

Рисунок 2 – Основное окно программы

Пользователю предлагается начать работу с выбора записи. После этого станет доступной функция изменения записи: (рис.3) В данном случае пользователь меняет жанр книги с первоначального 'Фантастика' на 'История'. Аналогично можно изменить и другие поля записи.

Рисунок 3 – Изменение полей записи

Добавление новой записи: после нажатия кнопки 'Добавить' поля области 'Активная запись' очищаются и готовы для ввода новых данных. После заполнения пользователь нажимает кнопку 'Создать' и в базе появляется прибавление (рис.4).

Рисунок 4 – Добавление новой записи

Удаление записи: чтобы защитить базу от случайного нажатия встроено дополнительное окно, которое требует пользователя подтвердить свои намерения.

Рисунок 5 – Удаление записи

В программе заложен поиск по подстроке с использованием стандартных функций поиска. Строка формируется из всех полей записи, подстроку вводит пользователь. Регистр значения не имеет. Найденные записи выделяются темным цветом (рис.6).

Рисунок 6 – Поиск по подстроке

Базу книг для удобства использования можно отсортировать по полям 'Автор', 'Название' и 'Год издания' (рис.7). Сортировка проводится методом Шелла. При завершении программы результаты сортировки не учитываются.

Рисунок 7 – Сортировка по полю

Авторство: при нажатии на информационную строку в центре списка Книг появляется информационное сообщение с указанием реквизитов программы (рис.8).

По решению автора программа распространяется бесплатно и не сопровождается технической поддержкой в дальнейшем.

Рисунок 8 – Информационное окно

На этом работа с программой закончена. Реализованы все заданные функции, их выполнение проверено и корректно. "Программную" часть курсовой работы считаю завершенной.

6.Результаты

Вкачестве результатов работы программы можно рассматривать предыдущий раздел. Дополнительно приводятся скриншоты содержимого файлов данных полученные после работы программы (рис.9).

Рисунок 9 – Файлы данных

Как видно корректность все записи корректны и верны. Программа сработала правильно.

7.Вывод

Врамках данной работы реализована программа управления БД "домашняя библиотека". Программа работает правильно и корректно, имеет четкую и понятную структуру, использует необходимые ей функции как операционной системы так и написанные специально для нее. Программа будет распространяться свободно (FreeWare) и не подразумевает технической поддержки со стороны автора, будет приятно, если кому-нибудь пригодится для упорядочивания своей домашней

библиотеки :).

Соседние файлы в папке пояснилка