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

Содержание

	

Перечень вопросов, подлежащих разработке

1. Анализ исходных данных и разработка ТЗ

1.1 Основание и назначение разработки

1.2 Требования к функциональным характеристикам

1.3 Рекомендуемые требования к составу и параметрам технических средств, программной совместимости

1.4 Теоретические сведения

2. Внешняя спецификация

2.1 Входные данные

2.2 Выходные данные

2.3 Функциональная схема

3. Руководство пользователя

3.1 Назначение программы

3.2 Описание интерфейса программы

4. Руководство программиста

4.1 Организация ввода данных в программу и вывода результатов

4.2 Схема данных

4.3 SQL запрос и его описание

4.4 Описание процедур и их параметров

5. Тестовый пример

Приложения




Перечень вопросов, подлежащих разработке



Закрепление и углубление теоретических знаний и практических навыков по курсу «База данных», связанных с программированием в среде MS Access;

Самостоятельное решение задачи, как алгоритмического программирования, так и разработки программ;

Развитие навыков самостоятельного использования справочной литературы, справочной системы MS Access;

Получение навыков в составлении текстовой программной документации в соответствии с существующими стандартами.




1. Анализ исходных данных и разработка ТЗ



1.1 Основание и назначение разработки



Курсовая работа является результатом подведения итогов по курсу «Базы данных». Назначением разработки является закрепление и углубление практических знаний и навыков, связанных с программированием в среде MS ACCESS.



1.2 Требования к функциональным характеристикам



Программа должна обеспечить:

ввод данных (добавление новых книг, авторов, издательств и тем литературных произведений);

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

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



1.3 Рекомендуемые требования к составу и параметрам технических средств, программной совместимости



Microsoft Windows 98;

Microsoft Access 97;

CPU 266 Celeron;

16 Мб оперативной памяти.


1.4 Теоретические сведения



Данная база данных включает в себя одиннадцать таблиц. Для выполнения операций над данными, хранящимися в таблице, каждая запись имеет уникальный идентификатор (главный ключ), значение которого однозначно определяет только эту запись в границах таблицы. Главный ключ может состоять как из одного поля (например, для полей таблице «тблКнига» главным ключом является значение поля «Код книги»), так и из нескольких полей (например, для полей таблице «тблРасположение» главным ключом является значения полей «Код книги» и «Код отдела»). Таблицы соединены между собой следующими видами связи:

«один – ко – многим» (например, «тблЖанры» и «тблКнига» - существует много книг имеющих один вид жанра, но каждая книга имеет только один вид жанра);

«многие – к – одному» (например, «тблРасположение» и «тблКнига» - разные отделы библиотеки могут иметь книгу данного вида, но конкретная книга может находиться только в одном отделе);

«многие – ко – многим» (например, «тблАвторы» и «тблКнига» - каждый автор может написать много книг и у одной книги может быть несколько авторов).

Последний вид связи в MS Access реализуется с помощью третьей таблице, куда включаются ключевые поля исходных таблиц. При объединении таблиц обеспечивается:

условие целостности данных, которое не позволяет вводить во внешнее ключевое поле таблицы (со стороны «многие») значения, отсутствующего в ключевом поле справочника (со стороны «один»);

каскадное удаление связанных записей, которое позволяет удалить записи из всех связанных таблиц;

каскадное обновление связанных полей, которое позволяет обновить данные во всех связанных таблицах.

Данная база данных поддерживает следующий формат объединения данных в запросах: объединение только тех записей, в которых связанные поля обеих таблиц совпадают. 




2. Внешняя спецификация



Входные данные



Количество

	для формы «Добавление автора» - по одному значению для полей «Фамилия», «Имя», «Отчество», «Пол», «Дата рождения», «Дата смерти»;

	для формы «Добавление книги» - по одному значению для полей «Шифр», «Автор книги», «Название книги», «Год создания», «Аббревиатура отдела», «Год издания», «Название издательства», «Количество страниц», «Жанр произведения», «Тема произведения», «Степень участия в создании книги»;

	для формы «Добавление издательства» - по одному значению для полей «Название», «Город», «Адрес», «Телефон»;

	для формы «Добавление города» - по одному значению для полей «Название города», «Телефонный код»;

	для формы «Добавление темы» - одно значение для поля «Название темы».

Тип – строковый для всех полей форм, кроме:

	«Дата рождения», «Дата смерти» (форма «Добавление автора») – дата;

	«Год создания», «Год издания» (форма «Добавление книги») – дата, «Количество страниц» (форма «Добавление книги») – числовой;

	«Телефонный код» (форма «Добавление города») – числовой.

Формат данных

«Дата рождения», «Дата смерти» (форма «Добавление автора») – длинный формат даты (например, 12 августа 1856 г.) или краткий формат даты (например, 12.07.1856);

«Год создания», «Год издания» (форма «Добавление книги») – короткий формат (например, 2000 г.).


2.2 Выходные данные



Количество – по одному значению для полей «Фамилия», «Имя», «Отчество», «Пол», «Дата рождения», «Дата смерти» и список имеющихся в библиотеке книг этого автора, с указанием их шифра, названия, отдела, где они расположены, жанра, темы, года создания, издательства, в котором они были изданы, года издания и количества страниц.

Для «Справочника по издательствам» - по одному значению для полей «Название издательства», «Город», «Адрес», «Телефонный код», «Номер телефона», а также список всех имеющихся в библиотеке книг, изданных этим издательством, с указание автора.

Тип – строковый для всех полей формы, кроме:

	«Дата рождения», «Дата смерти» – дата;

	«Год создания», «Год издания»– дата, «Количество страниц» – числовой.

Формат данных

«Дата рождения», «Дата смерти» – длинный формат даты (например, 12 августа 1856 г.) или краткий формат даты (например, 12.07.1856);

«Год создания», «Год издания» – короткий формат (например, 2000 г.).



2.3 Функциональная схема



Функциональная схема представлена в Приложении Б (см. рисунок Б.1).




3. Руководство пользователя



3.1 Назначение программы



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



3.2 Описание интерфейса программы



Форма «Литературные произведения»

Форма изображена на рисунке А.1 (см Приложение А). Для того, чтобы передвигаться по записям в левом верхнем углу формы приведены четыре кнопки перехода по записям (первая запись, предыдущая запись, следующая запись, последняя запись). При этом в текстовых полях формы приводится информация об авторе произведения, а в таблице – информация о книгах этого автора, имеющихся в библиотеке. Сверху, на панели инструментов приведены кнопки добавления записей (добавить автора, добавить книгу, добавить издательство), редактирования записей (редактирование автора, редактирование книги, редактирование издательства, редактирование города, редактирование темы), кнопки по работе с отчетами (просмотр отчета об авторах – его вид представлен на рисунке А9 (см Приложение А), печать отчета об авторах, просмотр отчета об издательствах (см рисунок А10 Приложения А), печать отчета об издательствах), а также кнопки «Удаление записи», «Найти запись», «Справочник по издательствам», «Выйти из приложения». Для того чтобы найти нужную запись необходимо передать фокус текстовому полю, по которому будет происходить поиск, и нажать кнопку «Найти запись». В строке «Образец» ввести искомое значение, в строке «Совпадения» выбрать, как будет происходить поиск, и нажать кнопку «Найти далее». 

Форма «Добавление автора»

Форма изображена на рисунке А.2 (см Приложение А). Для добавления информации об авторе, введите в соответствующие поля фамилию, имя, отчество писателя, дату рождения, дату смерти (если писатель уже умер), выберете из выпадающего списка его пол. Кнопка «Вернуться к главной форме» открывает форму «Литературные произведения» и закрывает «Добавление автора». А кнопка «Добавить книгу» закрывает текущую форму и открывает форму «Добавление книги». 

Форма «Добавление книги»

Форма изображена на рисунке А.3 (см Приложение А). Для добавления новой книги введите в соответствующие поля формы библиотечный шифр книги, название, год создания, год издания, количество страниц, а также выберете из выпадающих списков автора произведения, аббревиатуру отдела, где расположена книга, название издательства, жанр и тему произведения, степень участия автора в создании книги. Если требуемый автор, издательство, тема произведения отсутствуют в выпадающих списках, то, нажав соответствующую кнопку, их можно добавить в списки. После заполнения всех полей необходимо нажать на кнопку «Добавить запись». Кнопка «Вернуться к главной форме» закрывает текущую форму и открывает главную. 

Форма «Добавить издательство»

Форма изображена на рисунке А.4 (см Приложение А). Для добавления нового издательства введите в соответствующие поля формы его название, адрес по которому оно расположено, и телефон, а также выберете из выпадающего списка город, в котором находится издательство. Если требуемого города в списке нет, то вы можете добавить его, нажав кнопку «Добавить город». Кнопка «Закрыть форму» закрывает текущую форму, а кнопка «К главной форме» закрывает текущую и открывает главную форму.

Форма «Добавление города»

Форма изображена на рисунке А.5 (см Приложение А). Для добавления нового города введите в соответствующие поля формы его название и телефонный код и нажмите кнопку «Выход» для закрытия формы.

Форма «Добавление темы»

Форма изображена на рисунке А.6 (см Приложение А). Для добавления новой темы введите в соответствующее поле формы её название и нажмите кнопку «Выход» для закрытия формы.

Форма «Справочник по издательствам»

Форма изображена на рисунке А.7 (см Приложение А). Для просмотра информации об издательстве найдите нужное издательство с помощью кнопок перехода по записям, расположенных снизу. При этом в текстовых полях будет отображаться информация об издательстве, а в таблице приводиться список книг, выпущенных этим издательством и имеющихся в наличии в библиотеке. Кнопки «Просмотр отчёта» и «Печать отчета» позволяют соответственно просматривать и печатать отчёт об издательствах. Кнопка «К главной форме» закрывает текущую форму и открывает главную.

Форма «Удаление книги»

Форма изображена на рисунке А.8 (см Приложение А). Для удаления книги, с помощью кнопок перехода по записям, расположенных снизу, выберете нужную книгу и щелкните по кнопке "Удаление книги". Кнопка «Закрыть форму» закрывает текущую форму и открывает главную.

Формы редактирования записей

Данные формы аналогичны формам добавления записей, но у них имеется кнопка «Найти и заменить запись». Алгоритм работы с этой кнопкой описан в пункте 4.2.1, но с той разницей, что на вкладке «Замена», кроме поля «Образец» нужно ввести значение поля «Заменить на:» и нажать кнопку «Заменить», а затем закрыть обе формы. Если при заполнении было не правильно выбрано значение из выпадающего списка, то при редактировании нужно выбрать новое значение и закрыть форму. Исключение составляют значения полей «Автор произведения» и «Аббревиатура отдела» формы «Редактирование книги», которые редактировать нельзя.




4. Руководство программиста



4.1 Организация ввода данных в программу и вывода результатов



Ввод данных в программу осуществляется при помощи мыши и с клавиатуры в объекты типа TextBox.

Для вывода результатов используется объекты типа ComboBox, TextBox, таблицы MS Access и текстовые файлы.



4.2 Схема данных 



Схема данных приведена в Приложении Б (см. рисунок Б.2).



4.3 SQL запрос и его описание



Выбирают поля из таблиц тблКнига, тблАвторы и тблМестоРасположения, которые следует объединить в запросе.



SELECT тблКнига.Шифр, [Фамилия] & " " & Left([Имя],1) & ". " & Left([Отчество],1) & "." AS ФИО, тблКнига.[Название книги], тблКнига.[Код издательства], тблКнига.[Год издания], тблКнига.[Код темы], тблКнига.[Код жанра], тблКнига.[Количество страниц], тблМестоРасположения.[Аббревиатура отдела]



Описывается способ объединения полей таблиц в запросе. INNER JOIN означает, что объединятся будут только те записи, в которых связанные поля обеих таблиц совпадают.



FROM тблМестоРасположения INNER JOIN ((тблКнига INNER JOIN тблРасположение ON тблКнига.[Код книги] = тблРасположение.[Код книги]) INNER JOIN (тблАвторы INNER JOIN тблСвязи ON тблАвторы.[Код автора] = тблСвязи.[Код автора]) ON тблКнига.[Код книги] = тблСвязи.[Код книги]) ON тблМестоРасположения.[Код отдела] = тблРасположение.[Код отдела]



Определяется порядок сортировки записей в запросе по полям «ФИО» и «Название книги» по возрастанию



ORDER BY [Фамилия] & " " & Left([Имя],1) & ". " & Left([Отчество],1) & ".", тблКнига.[Название книги];



4.4 Описание процедур и их параметров



Рассмотрим процедуру нажатия на кнопку «Добавление автора»:



Private Sub Кнопка27_Click()

On Error GoTo Err_Кнопка27_Click



Выделяем переменную под имя формы



Dim strdocname As String



Конкретизириум переменную



strdocname = "Добавление автора"



Открытие формы "Добавление автора" в режиме ввода данных.



DoCmd.OpenForm strdocname,,,, acAdd


Закрытие формы "Литературные произведения".



DoCmd.Close acForm, "Литературные произведения"



Делаем невидимой кнопку "Найти запись"



Forms![Добавление автора]!Кнопка25.Visible = False



Передача фокуса текстовому полю "Фамилия".



Forms![Добавление автора]!Фамилия.SetFocus

Exit_Кнопка27_Click:



Выход из процедуры 



Exit Sub

Err_Кнопка27_Click:



В случае появления ошибки вывод на экран сообщения



MsgBox Err.Description

Resume Exit_Кнопка27_Click

End Sub




5. Тестовый пример



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

Крылов И. А. «Басни», 78.56, дет. ч/з, басни, классическая литература, 1850 г., Просвещение, 2000 г., 75 стр.

Щелкаем мышью по кнопке «Добавить книгу», расположенную на форме «Литературные произведения». В появившейся форме «Добавление книги» вводим в текстовое окно «Шифр» библиотечный шифр книги – 78.56. При этом поле «Код книги» обновляется автоматически. Убеждаемся в том, что в выпадающем списке «Автор книги» отсутствует Крылов И. А. Добавим его в список с помощью кнопки «Добавить автора». Вводим в поля появившейся формы «Добавление автора» следующие значения:



Фамилия		-	Крылов

Имя			-	Иван

Отчество		-	Андреевич

Пол			- 	мужской

Дата рождения	-	24.05.1823

Дата смерти	-	13.03.1890



И нажимаем кнопку «Добавить книгу». Из списка «Автор книги» выбираем, Крылов И.А. Аналогично заполняются другие поля формы «Добавление книги», а затем нажимаем кнопку «Добавить запись». Далее в форме «Литературные произведения» можно просмотреть информацию об этой книге.




Приложение





рисунок А.1





рисунок А.2



рисунок А.3




рисунок А.4





рисунок А.5





рисунок А.6





рисунок А.7




рисунок А.8





рисунок А.9





рисунок А.10





15