Создание и внедрение в работу библиотеки автоматизированной системы "Учет библиотечного фонда"
Функциональная схема системы "Учет библиотечного фонда". Описание поставленных задач. Выбор среды программирования и этапы разработки библиотеки автоматизированной системы. Логическая и физическая модель данных. Структура и описание программных модулей.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 27.10.2012 |
Размер файла | 1,7 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Первичный
Идентификатор выбытия из фонда
Внешний
Идентификатор расчетов
Внешний
Идентификатор по счетам
Дата записи выбытия
Номер акта списания
Дата утверждения акта
Примечание (списан, заменен)
Расчеты
Первичный
Идентификатор расчетов
Количество экземпляров книг
Общая стоимость
Количество книг по названиям
Количество журналов по экземплярам
Количество журналов по названиям
Количество учебных книг по ББК 1,6-65,74,86,87
Количество учебных книг по ББК 3
Количество учебных книг по ББК 2,4,5
Количество учебных книг по ББК 75,85
Количество учебных книг по ББК 80-83
Количество учебных книг по ББК 92
Количество научных книг по ББК 1,6-65, 74, 86, 87
Количество научных книг по ББК 3
Количество научных книг по ББК 2,4,5
Количество научных книг по ББК 75,85
Количество научных книг по ББК 80-83
Количество научных книг по ББК 92
Количество ГОСТов по названиям 6
Количество ГОСТов по экземплярам 6
Количество названий художественной литературы 84
Количество экземпляров художественной литературы 84
Общее количество экземпляров учебной литературы
Общее количество экземпляров научной литературы
Общее количество названий научной литературы
Общее количество названий учебной литературы
Журналы
Внешний
Идентификатор
Номер поступления
Дата поступления
Заглавие журнала
Год издания
Место издания
Город
Общая цена
Количество
Признак списания
Журнал замены
Первичный
Инвентарный номер выбывшей книги
Внешний
Идентификатор книг по названиям
Внешний
Идентификатор выбытия из фонда
Цена книги
Фамилия
Имя
Отчество
Дата
Книги взамен
Внешний
Инвентарный номер выбывшей книги
Внешний
Инвентарный номер
Списаны по старости
Внешний
Идентификатор книг по названиям
Внешний
Идентификатор выбытия из фонда
Инвентарный номер книги спис. по старости
Цена книги
Итоги движения фонда
Внешний
Идентификатор по счетам
Внешний
Идентификатор расчетов
Поступило
Выбыло
Состоит
Первый квартал
Второй квартал
Третий квартал
Четвертый квартал
За год
Год
Состоит на 1 января
Состоит на 1 апреля
Состоит на 1 августа
Состоит на 1 октября
Количество всей литературы в библиотеке, включая журналы и ГОСТы
Проверка фонда
Номер приказа директора
Дата приказа
Дата проверки
Номер акта “Проверка фонда”
Номер акта “О недосдаче”
Общая стоимость
Имеется количество на книжных полках
Имеется количество в инвентарной книге
Количество книг числящихся за читателями
Количество отсутствующих
Признак осуществления проверки фонда
Расчеты по счетам
Первичный
Идентификатор по счетам
Количество по счету 018-1
Количество по счету 063-1
Количество по счету 060-1
Количество по счету 018-2
Количество по счету 063-2
Количество по счету 060-2
Количество по счету 018-3
Количество по счету 063-3
Количество по счету 060-3
Стоимость по счету 018-1
Стоимость по счету 063-1
Стоимость по счету 060-1
Стоимость по счету 018-2
Стоимость по счету 063-2
Стоимость по счету 060-2
Стоимость по счету 018-3
Стоимость по счету 063-3
Стоимость по счету 060-3
Предметы и книги
Внешний
Идентификатор книг по названиям
Внешний
Идентификатор предмета
Предметы
Первичный
Идентификатор предмета
Наименование предмета
Фамилия
Имя
Отчество
Специальности
Внешний
Идентификатор предмета
Наименование специальности
Номер курса
1 семестр
2 семестр
3 семестр
4 семестр
5 семестр
6 семестр
7 семестр
8 семестр
9 семестр
10 семестр
11 семестр
Количество человек изуч. предмет
На основе выделенных сущностей, их атрибутов, первичных и вторичных ключей строится логическая модель данных (рис. 5), которая является основой для построения физической модели данных.
После построения логической модели данных необходимо выполнить нормализацию отношений данных между таблицами, то есть удалить из базы данных избыточную информацию.
Для приведения таблицы к первой нормальной форме необходимо:
· каждое поле сделать неделимым;
· организовать отсутствие повторяющихся полей или групп полей.
В таблицах “Поступление в фонд”, “Выбытие из фонда” и “Итоги движения фонда” можно заметить группу повторяющихся полей, которые являются расчетами. Эту группу полей можно выделить в отдельную таблицу “Расчеты”, присвоить ей первичный ключ, по которому будет осуществлена связь с указанными выше тремя таблицами. То же самое проделали и с таблицей “Расчеты по счетам”.
В таблице “Предметы” атрибут “Фамилия, имя и отчество преподавателя” разделим на три поля: фамилия, имя, отчество.
Для приведения ко второй нормальной форме необходимы следующие условия:
· выполняются условия первой нормальной формы;
· первичный ключ однозначно определяет всю запись;
· все поля зависят от первичного ключа;
· первичный ключ не должен быть избыточным.
Для таблиц (сущностей) которые не имеют атрибутов, однозначно определяющих запись, вводим первичные ключи, состоящие из одного поля, в этом случае избыточность первичного ключа отсутствует. Но этим мы занимаем дополнительное место на жестком диске, поэтому это поле нужно сделать числового типа с целью экономии памяти.
Первичные ключи мы добавили к следующим таблицам: “Предметы”, “Расчеты по счетам”, “Расчеты”, “Выбытие из фонда”, “Поступление в фонд”, “Классификация ББК”, “Книги по названиям”.
Условия третьей нормальной формы:
· выполняются условия второй нормальной формы;
· каждое не ключевое поле не должно зависеть от другого не ключевого поля.
Для всех созданных нами таблиц выполняются условия третьей нормальной формы, поэтому можно преступить к непосредственному проектированию физической модели данных, где каждому полю присвоим имя, определим тип и размер каждого поля.
6.3 Физическая модель данных
При построении физической модели данных выполняются следующие действия:
· каждая таблица получает свое имя, под которым она будет храниться в базе данных;
· каждый атрибут (концептуальное требование) таблицы получает свое имя, тип и размер;
· для каждого ключа, как первичного, так и вторичного, определяются его характеристики.
На этом этапе предусматриваются меры по обеспечению ссылочной целостности, то есть установление между таблицами не противоречивых взаимосвязей. Ниже приводится физическая модель данных, взаимосвязи между таблицами которой соответствуют логической модели данных:
Knigi_nazv.db (Таблица названий книг)
Поле |
Тип информации |
Длина |
Ключ |
Описание |
|
Iden_nazv |
Авто инкремент |
5 |
П |
Идентификатор книг по названиям |
|
Iden_postup |
Числовой |
5 |
В |
Идентификатор поступления |
|
Num_klasif |
Числовой |
5 |
В |
Идентификатор ББК |
|
Zaglav_kn |
Символьный |
100 |
Заглавие книги |
||
Avtor |
Символьный |
20 |
Автор книги |
||
Soavtor |
Memo |
80 |
Соавторы |
||
Avtor_zn |
Символьный |
6 |
Авторский знак |
||
Nadzag |
Memo |
100 |
Над заголовочные данные |
||
Podzag |
Memo |
100 |
Подзаголовочные данные |
||
Year_izd |
Числовой |
4 |
Год издания |
||
Place_izd |
Символьный |
20 |
Издательство |
||
City_izd |
Символьный |
25 |
Город |
||
Kol_str |
Числовой |
4 |
Количество страниц |
||
Kol_ekz |
Числовой |
3 |
Количество экземпляров |
||
Chit_zal |
Логический |
1 |
Наличие в чит. зале |
||
Abonim |
Логический |
1 |
Наличие на абонементе |
||
Tip_book |
Логический |
1 |
Тип книги (Научная или Учебная) true -науч, false-учебн. |
||
Priz_spis |
Числовой |
1 |
Признак списания (0- списывается, 1-не списывается) |
||
Priz_ofor |
Числовой |
1 |
Признак оформления (0-не оформлен, 1-оформлен) |
||
Inv_nach |
Числовой |
6 |
Инвентарный номер начальный |
||
Inv_kon |
Числовой |
6 |
Инвентарный номер конечный |
Knigi_ekzem.db (Таблица экземпляров книг)
Поле |
Тип информации |
Длина |
Ключ |
Описание |
|
Inventar |
Авто инкремент |
8 |
П |
Инвентарный номер |
|
Iden_nazv |
Числовой |
5 |
В |
Идентификатор книг по названиям |
|
Priz_vibit |
Логический |
1 |
Признак выбытия из фонда True-выбывает, false-не выбывает |
||
Cena |
Денежный |
4 |
Цена книги |
||
Priz_nalich |
Логический |
1 |
Наличие книги true-имеется, false-не имеется |
||
Priz_zamen |
Логический |
1 |
Признак поступления по замене False-не по замене, true-по замене |
Klasifik_bbk.db (Классификация ББК)
Поле |
Тип информации |
Длина |
Ключ |
Описание |
|
Num_klasif |
Авто инкремент |
7 |
П |
Порядковый номер классификаторо |
|
Indeks_bbk |
Символьный |
15 |
Индекс ББК |
||
Opis_klasif |
Символьный |
100 |
Описание классификатора |
||
Piz_rod_doch |
Числовой |
1 |
Признак родитель./дочерний |
Postupl.db (Поступление в фонд)
Поле |
Тип информации |
Длина |
Ключ |
Описание |
|
Iden_postup |
Авто инкремент |
5 |
П |
Идентификатор поступления |
|
Ident_rasch |
Числовой |
5 |
В |
Идентификатор расчетов |
|
Date_postup |
Дата |
8 |
Дата записи поступления |
||
Num_postup |
Числовой |
2 |
Номер записи поступления в году |
||
Istok_postup |
Символьный |
20 |
Источник поступления |
||
Num_ras_nak |
Символьный |
10 |
Номер “Расходной накладной” |
||
Date_ras_nak |
Дата |
8 |
Дата “Расходной накладной” |
||
Num_tov_nak |
Символьный |
10 |
Номер “Товарной накладной” ККЭП |
||
Date_tov_nak |
Дата |
8 |
Дата “Товарной накладной” ККЭП |
||
Priz |
Числовой |
1 |
Признак оформления партии в “Поступление в фонд” |
||
Priz_of |
Числовой |
1 |
Признак оформления партии в “Инвентарную книгу” |
||
Schet |
Символьный |
5 |
Счет, с которого расплатились за книгу |
||
Year_post |
Числовой |
4 |
Год поступления |
Vibitie.db (Таблица выбытия из фонда)
Поле |
Тип информации |
Длина |
Ключ |
Описание |
|
Iden_vib |
Авто инкремент |
5 |
П |
Идентификатор выбытия из фонда |
|
Ident_rasch |
Числовой |
5 |
В |
Идентификатор расчетов |
|
Iden_po_schet |
Числовой |
5 |
В |
Идентификатор по счетам |
|
Date_vib |
Дата |
8 |
Дата записи выбытия |
||
Num_akt_spis |
Символьный |
10 |
Номер акта списания |
||
Date_utv_akt |
Дата |
8 |
Дата утверждения акта |
||
Year_vib |
Числовой |
4 |
Год списания |
||
Primech |
Логический |
1 |
Примечание (true-списан, false-заменен) |
Uchet_jurnal.db (Таблица учета журналов)
Поле |
Тип информации |
Длина |
Ключ |
Описание |
|
Iden |
Числовой |
5 |
В |
Идентификатор |
|
Num |
Числовой |
2 |
Номер поступления |
||
Date |
Дата |
8 |
Дата |
||
Zaglavie |
Символьный |
20 |
Заглавие журнала |
||
Year_izd |
Числовой |
4 |
Год издания |
||
Place_izd |
Символьный |
20 |
Издательство |
||
City_izd |
Символьный |
25 |
Город издания |
||
Ob_cena |
Денежный |
4 |
Общая цена |
||
Kolich |
Числовой |
3 |
Количество |
||
Priz_spis |
Логический |
1 |
Признак списания 0-не списывается, 1-списывается |
Jurnal_zamena.db (Журнал замены)
Поле |
Тип информации |
Длина |
Ключ |
Описание |
|
Inv_vibknig |
Числовой |
8 |
П |
Инвентарный номер выбывшей книги |
|
Iden_nazv |
Числовой |
5 |
В |
Идентификатор книг по названиям |
|
Iden_vib |
Числовой |
5 |
В |
Идентификатор выбытия из фонда |
|
Cena |
Денежный |
4 |
Цена книги |
||
Fam |
Символьный |
15 |
Фамилия |
||
Name |
Символьный |
15 |
Имя |
||
Otch |
Символьный |
15 |
Отчество |
||
Date_zam |
Дата |
8 |
Дата |
Knigi_vzamen.db (Таблица книг утерянных и прибывших взамен)
Поле |
Тип информации |
Длина |
Ключ |
Описание |
|
Inv_vibknig |
Числовой |
8 |
В |
Инвентарный номер выбывшей книги |
|
Inventar |
Числовой |
8 |
В |
Инвентарный номер |
|
Spisan |
Числовой |
1 |
Признак оформления акта списания 0-акт не оформлен, 1-акт оформлен |
Spisan_starost.db (Таблица книг списанных по старости или ветхости)
Поле |
Тип информации |
Длина |
Ключ |
Описание |
|
Iden_nazv |
Числовой |
5 |
В |
Идентификатор книг по названиям |
|
Iden_vib |
Числовой |
5 |
В |
Идентификатор выбытия из фонда |
|
Inv_num |
Числовой |
8 |
Инвентарный номер книги спис. по старости |
||
Cena |
Денежный |
4 |
Цена книги |
Itogi.db (Таблица итогов)
Поле |
Тип информации |
Длина |
Ключ |
Описание |
|
Iden_po_schet |
Числовой |
5 |
В |
Идентификатор по счетам |
|
Ident_rasch |
Числовой |
5 |
В |
Идентификатор расчетов |
|
Postupilo |
Логический |
1 |
Поступило |
||
Vibilo |
Логический |
1 |
Выбыло |
||
Sostoit |
Логический |
1 |
Состоит |
||
Per_kvar |
Логический |
1 |
Первый квартал |
||
Vtor_kvar |
Логический |
1 |
Второй квартал |
||
Tret_kvar |
Логический |
1 |
Третий квартал |
||
Chetv_kvar |
Логический |
1 |
Четвертый квартал |
||
Za_god |
Логический |
1 |
За год |
||
Year_itog |
Числовой |
4 |
Год |
||
Sost_janv |
Логический |
1 |
Состоит на 1 января |
||
Sost_apr |
Логический |
1 |
Состоит на 1 апреля |
||
Sost_avg |
Логический |
1 |
Состоит на 1 августа |
||
Sost_okt |
Логический |
1 |
Состоит на 1 октября |
||
Kol_vsego |
Числовой |
7 |
Количество всей литературы в библиотеке, включая журналы и ГОСТы |
Predmeti_knigi_db (Таблица предметов и книг используемых в предмете)
Поле |
Тип информации |
Длина |
Ключ |
Описание |
|
Iden_nazv |
Числовой |
5 |
В |
Идентификатор книг по названиям |
|
Iden_predm |
Числовой |
3 |
В |
Идентификатор предмета |
Predmeti_db (Таблица предметов)
Поле |
Тип информации |
Длина |
Ключ |
Описание |
|
Iden_predm |
Авто инкремент |
3 |
П |
Идентификатор предмета |
|
Naim_pred |
Символьный |
50 |
Наименование предмета |
||
Fam |
Символьный |
15 |
Фамилия |
||
Name |
Символьный |
15 |
Имя |
||
Otch |
Символьный |
15 |
Отчество |
Specialnosti_db (Таблица специальностей и семестрах изучающих предмет)
Поле |
Тип информации |
Длина |
Ключ |
Описание |
|
Iden_predm |
Числовой |
3 |
В |
Идентификатор предмета |
|
Naim_spec |
Символьный |
3 |
Наименование специальности |
||
Num_kursa |
Числовой |
1 |
Номер курса |
||
Sem1 |
Логический |
1 |
1 семестр |
||
Sem2 |
Логический |
1 |
2 семестр |
||
Sem3 |
Логический |
1 |
3 семестр |
||
Sem4 |
Логический |
1 |
4 семестр |
||
Sem5 |
Логический |
1 |
5 семестр |
||
Sem6 |
Логический |
1 |
6 семестр |
||
Sem7 |
Логический |
1 |
7 семестр |
||
Sem8 |
Логический |
1 |
8 семестр |
||
Sem9 |
Логический |
1 |
9 семестр |
||
Sem10 |
Логический |
1 |
10 семестр |
||
Sem11 |
Логический |
1 |
11 семестр |
||
Kol_chel |
Числовой |
3 |
Количество человек изуч. предмет |
Rasch_po_schet.db (Таблица количества и стоимости книг по счетам)
Поле |
Тип информации |
Длина |
Ключ |
Описание |
|
Id_scheti |
Авто инкремент |
5 |
П |
Идентификатор по счетам |
|
Kol_b18 |
Числовой |
6 |
Количество по счету 018-1 |
||
Kol_b63 |
Числовой |
6 |
Количество по счету 063-1 |
||
Kol_b60 |
Числовой |
6 |
Количество по счету 060-1 |
||
Kol_k18 |
Числовой |
6 |
Количество по счету 018-2 |
||
Kol_k63 |
Числовой |
6 |
Количество по счету 063-2 |
||
Kol_k60 |
Числовой |
6 |
Количество по счету 060-2 |
||
Kol_c18 |
Числовой |
6 |
Количество по счету 018-3 |
||
Kol_c63 |
Числовой |
6 |
Количество по счету 063-3 |
||
Kol_c60 |
Числовой |
6 |
Количество по счету 060-3 |
||
Stoim_b18 |
Денежный |
6 |
Стоимость по счету 018-1 |
||
Stoim_b63 |
Денежный |
6 |
Стоимость по счету 063-1 |
||
Stoim_b60 |
Денежный |
6 |
Стоимость по счету 060-1 |
||
Stoim_k18 |
Денежный |
6 |
Стоимость по счету 018-2 |
||
Stoim_k63 |
Денежный |
6 |
Стоимость по счету 063-2 |
||
Stoim_k60 |
Денежный |
6 |
Стоимость по счету 060-2 |
||
Stoim_c18 |
Денежный |
6 |
Стоимость по счету 018-3 |
||
Stoim_c63 |
Денежный |
6 |
Стоимость по счету 063-3 |
||
Stoim_c60 |
Денежный |
6 |
Стоимость по счету 060-3 |
Proverka.db (Таблица с информацией о проверке фонда)
Поле |
Тип информации |
Длина |
Ключ |
Описание |
|
Num_prik |
Символьный |
10 |
Номер приказа директора |
||
Date_prik |
Дата |
8 |
Дата приказа |
||
Date_prov |
Дата |
8 |
Дата проверки |
||
Num_akt_prov |
Символьный |
10 |
Номер акта “Проверка фонда” |
||
Num_akt_nedo |
Символьный |
10 |
Номер акта “О недосдаче” |
||
Stoimost_ob |
Денежный |
7 |
Общая стоимость |
||
Kol_polki |
Числовой |
6 |
Имеется количество на книжных полках |
||
Kol_inv |
Числовой |
6 |
Имеется количество в инвентарной книге |
||
Kol_chit |
Числовой |
6 |
Количество книг числящихся за читателями |
||
Kol_otsut |
Числовой |
6 |
Количество отсутствующих |
||
Priz_prov |
Логический |
1 |
Признак проведения проверки |
Rascheti.db (Таблица расчетов)
Поле |
Тип информации |
Длина |
Ключ |
Описание |
|
Ident_rasch |
Авто инкремент |
5 |
П |
Идентификатор расчетов |
|
Kekz |
Числовой |
6 |
Количество экземпляров книг |
||
Ob_stoimost |
Денежный |
7 |
Общая стоимость |
||
Knazv |
Числовой |
4 |
Количество книг по названиям |
||
Kjur_ekz |
Числовой |
4 |
Количество журналов по экземплярам |
||
Kjur_nazv |
Числовой |
4 |
Количество журналов по названиям |
||
Kbbk_uch1 |
Числовой |
4 |
Количество учебных книг по ББК 1,6-65,74,86,87 |
||
Kbbk_uch2 |
Числовой |
4 |
Количество учебных книг по ББК 3 |
||
Kbbk_uch3 |
Числовой |
4 |
Количество учебных книг по ББК 2,4,5 |
||
Kbbk_uch4 |
Числовой |
4 |
Количество учебных книг по ББК 75,85 |
||
Kbbk_uch5 |
Числовой |
4 |
Количество учебных книг по ББК 80-83 |
||
Kbbk_uch6 |
Числовой |
4 |
Количество учебных книг по ББК 92 |
||
Kbbk_nau1 |
Числовой |
4 |
Количество научных книг по ББК 1,6-65, 74, 86, 87 |
||
Kbbk_nau2 |
Числовой |
4 |
Количество научных книг по ББК 3 |
||
Kbbk_nau3 |
Числовой |
4 |
Количество научных книг по ББК 2,4,5 |
||
Kbbk_nau4 |
Числовой |
4 |
Количество научных книг по ББК 75,85 |
||
Kbbk_nau5 |
Числовой |
4 |
Количество научных книг по ББК 80-83 |
||
Kbbk_nau6 |
Числовой |
4 |
Количество научных книг по ББК 92 |
||
Gost_naz |
Числовой |
4 |
Количество ГОСТов по названиям 6 |
||
Gost_ekz |
Числовой |
4 |
Количество ГОСТов по экземплярам 6 |
||
Kchud_naz |
Числовой |
4 |
Количество названий художественной литературы |
||
Kchud_ekz |
Числовой |
4 |
Количество экземпляров художественной литературы 84 |
||
Kuch_ekz |
Числовой |
4 |
Общее количество экземпляров учебной литературы |
||
Knau_ekz |
Числовой |
4 |
Общее количество экземпляров научной литературы |
||
Knau_naz |
Числовой |
4 |
Общее количество названий научной литературы |
||
Kuch_naz |
Числовой |
4 |
Общее количество названий учебной литературы |
Manager.db(Журнал регистрации событий)
Поле |
Тип информации |
Длина |
Ключ |
Описание |
|
Id_polzov |
Числовой |
8 |
П |
Идентификатор пользователя |
|
Time_in |
Время |
8 |
Время входа в систему |
||
Time_out |
Время |
8 |
Время выхода из системы |
||
Date_in |
Дата |
8 |
Дата входа в систему |
||
Action |
Codparol.db (Таблица кодов паролей)
Поле |
Тип информации |
Длина |
Ключ |
Описание |
|
Id_polzov |
Числовой |
8 |
П |
Идентификатор пользователя |
|
Fam |
Символьный |
15 |
Фамилия пользователя |
||
Name |
Символьный |
15 |
Имя пользователя |
||
Otch |
Символьный |
15 |
Отчество пользователя |
||
Parol |
Символьный |
8 |
Индивидуальный пароль |
||
Login |
Символьный |
8 |
Логин пользователя |
Prava.db (Таблица установления полномочий)
Поле |
Тип информации |
Длина |
Ключ |
Описание |
|
Post_pokup |
Числовой |
8 |
П |
Идентификатор пользователя |
|
Sprav_bbk |
Логический |
1 |
Доступ к справке ББК |
||
Inv_pokup |
Логический |
1 |
Доступ к заполнению инвентарной книги |
||
Prosm_post |
Логический |
1 |
Доступ к Суммарной книги |
||
Zamena |
Логический |
1 |
Доступ к ф-ции зымены |
||
Spis_star |
Логический |
1 |
Доступ к ф\ции спис по старости |
||
QR_new_inv |
Логический |
1 |
Доступ к распечатке отчетов |
||
Jur_zam |
Логический |
1 |
Доступ в журнал замены |
||
Pereoc |
Логический |
1 |
Доступ к ф-ции переоценки |
||
Inv_kniga |
Логический |
1 |
Доступ к просмотру инв. книги |
Физическая модель данных является завершающим этапом построения информационной модели системы, на основании которой, необходимо выбрать программные методы и средства разработки программного продукта.
Следующим этапом теперь становится создания программного компонента системы.
7. Разработка программного компонента системы
7.1 Алгоритм программы
Теперь на основе построенной информационной модели и поставленных задач необходимо построить алгоритм работы программы.
Аутентификация пользователя.
В первую очередь необходимо определить имеет ли право доступа в систему пользователь, запустивший на выполнение программу. То есть необходимо аутентифицировать пользователя. Аутентификация осуществляется посредствам поиска введенных пользователем значений логина (имени) и пароля, в таблице кодов паролей.
Если введенные пользователем данные сходятся с данными, имеющимися в таблице кодов паролей, то напротив записи аутентифицированного пользователя делается пометка (Enter:=1) обозначающая, что в данный момент в систему вошел пользователь, имеющий на это право.
Если пользователь имеет право на вход в систему, то на экран выводится главная форма приложения, в момент активизации которой определяются права доступа вошедшего пользователя. Права определяются сверкой значений записи таблицы установления полномочий, соответствующей вошедшему пользователю.
В соответствии с правами, установленными пользователю, осуществляется блокировка или разблокировка пунктов меню, позволяющих выполнять различные действия по учету фонда.
Администратор системы аутентифицируется по полю Admin в таблице кодов паролей. Если admin=1, то в систему вошел администратор и ему позволено получить доступ к формам реализующим функции обеспечения защиты системы.
Оформление купленной партии книг.
Оформление купленной партии книг в фонда - это первая функция, которая будет доступна пользователю, т.к. списать книги из фонда и подвести итоги будет не возможно по причине отсутствия учитываемой информации.
Ввод информации о новой партии книг осуществляется в таблицы Postupl.db и Rascheti.db, а также делается пометка (Priz=0), что партия еще не оформлена до конца, т.к. всегда в это время еще отсутствует информация о номере счета и накладной поступления. По этому признаку определяется, что еще запрещен доступ к функции оформления партии книг в Инвентарную книгу.
После получения информации о номере счета и накладной поступления позволяется оформлять книги в Инвентарную книгу. Но перед тем как оформить книги в инвентарь, система запрашивает, какое количество непосредственно экземпляров и названий по новой партии поступило в библиотеку.
Если количество экземпляров и названий поступившых книг совпадает с данными записанными, на основании расходной накладной в таблицы Postupl.db и Rascheti.db, то позволяется оформить каждую книгу в Инвентарь.
Оформление новой партии книг будет запрещено системой до того пока не будет занесена информация о книгах предыдущей партии в Инвентарь. Это определяется по признаку (Priz_of). Если Priz_of=0, то ввод в инвентарную книгу не произведен, если Priz_of=1, то книги занесены в инвентарь и можно оформлять новую партию.
Во время ввода пользователем информации о книгах осуществляется контроль, за введенным количеством экземпляров каждой книги, их общей стоимости и количества названий. Если количество названий, экземпляров и общая стоимость не совпадают с соответствующими значениями введенными в таблицы Postupl.db и Rascheti.db, то система автоматически удаляет все данные, которые пользователь ввел в Инвентарную книгу (таблицы Knigi_ekzem.db Knigi_nazv.db ).
Во время ввода информации о книгах в Инвентарную книгу контролируется ввод классификатора ББК. Если указанный пользователем классификатор отсутствует в справочнике системы по ББК, то ему предлагается пополнить справочник, отсутствующим классификатором. Если пользователь все же вводит информацию о книге с классификатором отсутствующим в справочнике, то информация о книге не будет записана в БД. библиотечный фонд программирование данные
После того как книги новой партии, были занесены в инвентарь, им присвоились индивидуальные инвентарные номера. Для того, чтобы можно было на каждую поступившую книгу нанести инвентарный номер позволяется распечатать отчет “О книгах поступивших в фонд”, в котором указывается заголовок книги, количество экземпляров и присвоенные им инвентарные номера.
Поступление партии книг по замене.
В первую очередь для оформления партии книг по замене необходимо выделить инвентарные номера в Инвентарной книге (таблица Knigi_ekzem.db), которые будут использоваться только для оформления книг по замене. Выделение осуществляется добавлением в таблицу (Knigi_ekzem.db) пустых записей, но только со значениями инвентарного номера и признака (Priz_vibit), обозначающего, что запись предназначена для книг по замене. Если отсутствуют записи в таблице предназначенные для книг взамен, то провести процедуру замены книги на новую будет невозможно.
Если выделены записи для замены, то позволяется доступ к функции оформления книг в фонд по замене и запрещается доступ к функции выделения нового диапазона до тех пор, пока не будет заполнен старый.
Функция оформления книг по замене позволяет вводить инвентарный номер утерянной книги, вводить информацию о читателе, утерявшем книгу и одновременно оформлять новую книгу, поступающую по замене в Инвентарь. Взамен старой книги позволяется оформлять в Инвентарь несколько книг, но их общая стоимость и год издания не должны быть ниже стоимости и года издания утерянной книги.
После заполнения инвентарных номеров предназначенных для замены запрещается выделение нового диапазона книг до тех пор пока не будет оформлен акт о Акт “ Об утерянных книгах читателями и принятых книгах взамен”.
В процессе выполнения функции оформления акта осуществляется общий подсчет книг поступивших по замене, т.е. их стоимость, колич. По классификации ББК, по экземплярам и названиям. Эта информация подсчитывается и заносится в таблицы Postupl.db и Rascheti.db, аналогично тому, как заносилась информация о новой купленной партии книг.
А информация о книгах, которые выбывают из состава фонда, заносится в таблицу Vibitie.db и тоже организовывается подсчет общей информации о выбывающей партии.
Переоценка фонда.
Эта функция позволяет переоценить фонд, т.е. изменить стоимость каждой книги в зависимости от введенного пользователем коэффициента переоценки фонда, а также в зависимости от указанной даты. В фонде проходят переоценку те книги, которые поступили до указанной пользователем даты.
Подведение итогов.
Функция подведения итогов позволяет по команде пользователя подвести итоги движения фонда за определенные промежутки времени. Пользователь должен указать, что необходимо подвести итоги движения фонда за указанный период, то есть квартал.
Процедура подведения итогов осуществляет сложение и вычитание соответствующих значений таблиц Vibitie.db и Postupl.db.
Списание книг по старости или ветхости.
Функция списания книг по старости или ветхости в первую очередь позволяет ввести информацию о книгах подлежащих списанию, т.е. необходимо ввести наименование книги, количество или просто инвентарный номер.
После определения книг подлежащих списанию можно распечатать их перечень, для дальнейшего использования его при работе непосредственно с экземплярами книг.
Когда определены книги подлежащие списанию можно оформить Акт “О списании исключенной из библиотеки литературы в бюджетных учреждениях” по причине старости содержания или ветхости.
После того как был оформлен акт пользователю запрещается вводить новый перечень книг подлежащих списанию по причине старости до тех пор, пока он не запустит на выполнение функцию удаления книг из Инвентарной книги и подсчета итогов выбытия книг.
Проверка фонда.
В процессе проверки фонда пользователь вводит инвентарные номера книг, которые непосредственно имеются в библиотеке. После ввода инвентарных номеров всех книг пользователь запускает на выполнение процедуру подсчета количества отсутствующих книг, т.е. книг, инвентарные номера которых не были введены. А также подсчитывается количество введенных книг. После этого позволяется оформить акт “О проверке” фонда.
Ознакомление с фондом.
Прибытие в фонд. Функция ознакомления с разделом “Поступление в фонд” позволяет просматривать информацию о поступивших партиях (как по замене, так и по старости) по годам. Здесь пользователь может распечатать листы в раздел “Поступления в фонд” суммарной книги.
Выбытие из фонда. Функция позволяет просматривать информацию о всех партиях книг выбывших из фонда по разным причинам. И эта информация тоже фильтруется по годам. Здесь пользователю позволяется распечатать листы в раздел “Выбытие из фонда”.
Итоги движения фонда. Функция позволяет ввести промежуток времени, по которому нужно подсчитать итоги движения фонда, распечатать итоги движения. Просмотр итогов движения осуществляется также по годам.
Защита информации.
К этой функции имеет доступ только администратор системы, где ему позволяется:
· Вводить новых пользователей;
· Присваивать пользователям пароли;
· Просматривать журнал регистрации событий;
· Устанавливать полномочия доступа пользователям, имеющим доступ в систему.
7.2 Структура и описание программных модулей
С появлением множества языков программирования возникли и различные технологии программирования, которые неразрывно связаны с процессом создания новых программ. В настоящее время под термином технология программирования можно понимать правила, нормы и законы, обеспечивающие создание качественного программного обеспечения, которыми должен руководствоваться разработчик при использовании той или иной технологии программирования.
Рассмотрим некоторые из них:
Традиционная технология программирования складывалась в условиях, когда основными потребителями программ были научные учреждения, вычислительные ресурсы были ограничены, а проблемы сопровождения по существу неизвестны. Основными критериями качества программы считалось ее узко понимаемая эффективность и компактность. Со временем сложность программ возросла на столько, что на их разработку уходили годы труда большого коллектива, а в результате системы появлялись с большим опозданием и содержали тысячи ошибок.
Кризис программного обеспечения привел к необходимости создания нового способа создания программ, который снижал бы общие затраты на протяжении всего цикла программы, - от замысла до совершения эксплуатации. Такая технология появилась в начале 70-х годов и была названа структурным программированием. В его основе лежит сочетание теории программирования и личного опыта высококвалифицированных программистов, а также учет современных требований к программам и промышленного характера их производства.
Главное требование, которому должна удовлетворять программа, - работать в полном соответствии со спецификацией и адекватно реагировать на все действия пользователей. Объем занимаемой памяти и эффективность алгоритмов при этом, к сожалению, отходят на второй план. Иными словами, основные критерии качества программы - это, прежде всего, надежность, а также возможность точно планировать производство программы и ее сопровождение. Для достижения этих целей программа должна иметь простую структуру, быть хорошо читаемой и легко модифицированной.
Структурное программирование - это технология создания программ, позволяющая путем соблюдения определенных правил уменьшить время разработки и количество ошибок, а также облегчить возможность модификации программы. Структурный подход охватывает все стадии разработки проекта: спецификацию, проектирование, собственно программирование и тестирование. [7]
Объектно-ориентированная технология программирования (ООП) - это в наше время совершенно естественный подход к построению сложных (и не очень сложных) программ и систем. Приложение, построенное по принципам объектной ориентации - это не последовательность каких-то операторов, не некий жесткий алгоритм. Объектно-ориентированная программа - это совокупность объектов и способов их взаимодействия. Отдельным (главным) объектом при таком подходе во многих случаях можно считать пользователя программы. Он же служит и основным, но не единственным, источником событий, управляющих приложением. [6]
При использовании структурного программирования увеличиваются временные и трудовые затраты на разработку интерфейса и обработку больших массивов данных.
Объектно-ориентированная технология программирования позволяет свести проектирование пользовательского интерфейса к простым и наглядным процедурам, которые дают возможность за минуты или часы сделать то, на что с использованием структурного программирования уходили месяцы работы.
В результате использования ООП сокращается время на разработку интерфейса и тем самым позволяется уделить внимание непосредственно основным задачам создаваемого приложения.
Оценивая все преимущества объектно-ориентированной технологии программирования при разработке автоматизированной системы “Учета библиотечного фонда” принято решение использовать именно эту технологию.
В результате применения объектно-ориентированной технологии программирования при разработке системы была выстроена следующая структура программных модулей.
Подсистема защиты информации.
Аутентификация пользователя:
Аутентификация пользователя осуществляется по средством специальной формы, приведенной на рис.6 и программного кода представленного ниже:
begin
var
id_polz: integer;
begin
id_polz:=0;
if error<3 then
begin
T_parol.Active:=true;
T_parol.IndexFieldNames:='Parol';
T_parol.SetKey;
T_parol.FieldByName('Parol').Value:=E_parol.Text;
bes:=T_parol.GoToKey;
if bes=true then
begin
T_parol.IndexFieldNames:='Login';
T_parol.SetKey;
T_parol.FieldByName('Login').Value:=E_login.Text;
ges:=T_parol.GoToKey;
if ges=true then
begin
T_parol.Edit;
T_parol.FieldByName('enter').Value:=1;
T_parol.Post;
id_polz:=T_parol.FieldByName('Id_polzov').Value;
ShowMessage('Добро пожаловать в систему!');
T_manager.Active:=true;
T_manager.Insert;
T_manager.FieldByName('Id_polzov').Value:=id_polz;
T_manager.FieldByName('Time_in').Value:=Time;
T_manager.FieldByName('Date_in').Value:=Date;
T_manager.Post;
T_manager.Active:=false;
Glavnaja.Show;
F_autentif.Hide;
end
else
begin
ShowMessage('Информация ошибочна!');
E_parol.Text:='';
E_login.Text:='';
error:=error+1;
end;
end
else
begin
ShowMessage('Информация ошибочна!');
E_parol.Text:='';
E_login.Text:='';
error:=error+1;
end;
T_parol.Active:=false;
end
else application.Terminate;
end.
Этот код позволяет сравнить значение пароля введенного пользователем со значениями паролей и имен в таблице T_parol и если введенный пароль и имя существуют, то позволяется доступ в систему.
Определение прав доступа.
После того как пользователь аутентифицирован, необходимо определить его права на доступ к функциям системы. Определение его прав и организация доступа к необходимым функциям осуществляется с помощью следующего программного кода:
bes:=false;
admin:=0;
T_parol.Active:=true;
T_parol.IndexFieldNames:='enter';
T_parol.SetKey;
T_parol.FieldByName('enter').Value:=1;
bes:=T_parol.GoToKey;
admin:=T_parol.FieldByName('admin').Value;
if (bes=true)and(admin=0) then
begin
ident:=T_parol.FieldByName('id_polzov').Value;
id:=false;
T_prava.Active:=true;
T_prava.IndexFieldNames:='id_polzov';
T_prava.SetKey;
T_prava.FieldByName('id_polzov').Value:=ident;
id:=T_prava.GoToKey;
if id=true then
begin
N50.Enabled:=false;
N5.Enabled:=T_prava.FieldByName('post_pokup').Value;
N6.Enabled:=T_prava.FieldByName('inv_pokup').Value;
N21.Enabled:=T_prava.FieldByName('inv_kniga').Value;
N7.Enabled:=T_prava.FieldByName('qr_new_inv').Value;
N13.Enabled:=T_prava.FieldByName('sprav_bbk').Value;
N18.Enabled:=T_prava.FieldByName('prosm_post').Value;
N8.Enabled:=T_prava.FieldByName('zamena').Value;
N30.Enabled:=T_prava.FieldByName('jur_zam').Value;
N33.Enabled:=T_prava.FieldByName('spis_star').Value;
N12.Enabled:=T_prava.FieldByName('pereoc').Value;
end
else
begin
N3.Enabled:=false;
N17.Enabled:=false;
N33.Enabled:=false;
N38.Enabled:=false;
N50.Enabled:=false;
end;
T_prava.Active:=false;
end;
T_parol.Active:=false;
В описанном выше коде определение пользователя находящегося сейчас в системе осуществляется по значению признака Enter. Если в какой-то записи таблицы паролей признак Enter=1, то в системе находится пользователь, идентифицированный этой записью. По этой записи определяется индивидуальный скрытый системный идентификатор пользователя, который позволяет найти запись в таблице Установления полномочий (T_prava.db) и по полномочиям установленным в этой записи, то есть значениям true и false, определить какой пункт меню системы сделать активным, а какой нет.
Административные функции.
Если в систему вошел администратор, то есть признак Admin, вошедшего пользователя равен 1, то активизируется пункт меню “Доступ”.
Форма ввод информации о новом пользователе.
Рис. 7
По средствам подпунктов данного меню администратор может вводить информацию о новых пользователях в таблицу Кодов паролей. Программный код этой функции таков:
Timer1.Enabled:=false;
T_parol.Active:=true;
T_parol.Insert;
T_parol.FieldByName('Parol').Value:=E_parol.Text;
T_parol.FieldByName('Fam').Value:=E_fam.Text;
T_parol.FieldByName('Name').Value:=E_name.Text;
T_parol.FieldByName('Otch').Value:=E_otch.Text;
T_parol.FieldByName('Login').Value:=E_login.Text;
T_parol.FieldByName('enter').Value:=0;
if adm=true
then
begin
T_parol.FieldByName('Admin').Value:=1;
RadioButton1.Visible:=false;
end
else T_parol.FieldByName('Admin').Value:=0;
T_parol.Post;
T_parol.Active:=false;
Button4.Enabled:=false;
ShowMessage('Информация о новом пользователе записана успешно!!');
E_login.Text:='';
E_fam.Text:='';
E_name.Text:='';
E_otch.Text:='';
E_parol.Text:='';
Форма удаления информации о новом пользователе.
Рис.8
Удаляется информация о пользователе с помощью функции, позволяющей найти в таблице кодов паролей идентификатор пользователя, логин или пароль которого ввел администратор. После того как эта запись найдена, выводится сообщение о подтверждении желания администратора удалить пользователя.
Форма установления полномочий доступа.
Рис.9
Администратору позволено работать с функцией, позволяющей устанавливать полномочия доступа пользователям, занесенных в список допущенных к системе. Это осуществляется с помощью компонента CheckListBox и его свойства Items, которое позволяет принимать значения либо true, либо false.
После нажатия клавиши “Ввод” значения индексов свойства Items присваиваются соответствующим полям записи идентифицирующей пользователя, для которого устанавливаются полномочия в таблице Prava.db.
Форма просмотра журнала регистрации событий.
Рис.10
Форма, представленная на рис.10 позволяет администратору системы по средствам стандартных компонентов и их свойств и методов просматривать Журнал регистрации событий и производить когда необходимо его отчистку.
Форма просмотра и поиска информации и пользователях системы.
Рис.11
Форма, представленная на рис.11 позволяет администратору просматривать и осуществлять поиск информации о пользователях имеющих доступ к системе.
Главная форма системы.
Рис. 12
Любой пользователь, имеющий какое-либо право на доступ в систему всегда получает доступ к главной форме. Главная форма позволяет любому пользователю системы получить справочную информацию о книгах числящихся в фонде, организовать поиск книг по заголовку, автору и авторскому знаку.
Так же во время активации формы осуществляется построения дерева объектов классификации ББК по средствам компонента TreeView1. В итоге каждому индексу (или папке) компонента, во время активизации формы, присваивается значение идентификатора каждого имеющегося в справочнике классификатора.
При попадании в фокус какой-либо папки осуществляется фильтрация имеющихся в фонде книг по классификатору, к которому отнесены книги.
Главная форма позволяет запускать на выполнение функции, позволяющие непосредственно вести учет фонда и обеспечивать разграничение доступа к системе.
Программный код поиска книг с помощью компонента TreeView:
var k,num, rec, g, ident, admin:integer;
name:string;
curitem:ttreenode;
data_base: string;
bes,id,pravo: boolean;
begin
parent_id:=0;
T_klasif_bbk.Active:=true;
T_klasif_bbk.First;
rec:=0;
tv_bbk.Items.clear;
if T_klasif_bbk.RecordCount>1 then
begin
while not T_klasif_bbk.Eof do begin
if T_klasif_bbk.fieldbyname('Priz_rod_doch').value=0 then begin
g:=T_klasif_bbk.fieldbyname('Num_klasif').value;
rec:=rec+1;
tv_bbk.Items.Add(nil,T_klasif_bbk.fieldbyname('Opis_klasif').asstring);
end;
T_klasif_bbk.Next;
end;
T_klasif_bbk.first;
curitem:=tv_bbk.Items.GetFirstNode;
while curitem<>nil do
begin
T_klasif_bbk.First;
num:=T_klasif_bbk.lookup('Opis_klasif',curitem.Text,'Num_klasif');
while not T_klasif_bbk.Eof do
begin
if (T_klasif_bbk.fieldbyname('Priz_rod_doch').value=num) and (T_klasif_bbk.fieldbyname('Priz_rod_doch').value>0) then
tv_bbk.Items.AddChild(curitem,T_klasif_bbk.fieldbyname('Opis_klasif').asstring);
T_klasif_bbk.Next;
end;
curitem:=curitem.GetNext;
end;
end;
T_klasif_bbk.Active:=false;
tv_bbk.Items.Add(nil,'ВСЕ РАЗДЕЛЫ');
end;
Оформление в фонд купленной партии книг.
Оформление в раздел Поступление в фонд.
Для оформления новой партии книг в состав фонда вызывается форма представленная на рис.8. Эта форма содержит обработчики позволяющие оформить партию купленных книг фонд по всем правилам учета.
Эта форма содержит компонент PageControl1, который имеет две страницы, одна для оформления в фонд книг записываемых в инвентарь, а другая для записи в разделы Поступление в фонд и Выбытие из фонда периодических изданий.
Рис. 13
После оформления партии, т.е. после записи всей информации в таблицы позволяется внести информацию о каждой книге в инвентарную книгу. Но первоначально необходимо сверить количество книг введенных в раздел поступление в фонд с экземплярами поступивших книг. Это организовано по средствам формы представленной на рис.14.
Программный код этой формы позволяет сверить количество, занесенное до этого в базу данных с количеством непосредственно экземпляров книг:
begin
if E_kol_ekz.Text='' then E_kol_ekz.Text:='0';
if E_kol_nazv.Text='' then E_kol_nazv.Text:='0';
pesp:=false;
pespik:=true;
resp:=false;
nazvan:=0;
ekzem:=0;
T_Postupl.Active:=true;
T_Postupl.IndexFieldNames:='Priz';
T_Postupl.SetKey;
T_Postupl.FieldByName('Priz').AsInteger:=0;
pespik:=T_Postupl.GoToKey;
if pespik=false then
Begin
{Проверили закончил ли пользователь оформление новой партии в
раздел "Поступление в фонд"}
T_Postupl.IndexFieldNames:='Priz_of';
T_Postupl.SetKey;
T_Postupl.FieldByName('Priz_of').AsInteger:=0;
pesp:=T_Postupl.GoToKey;
raschet:=T_Postupl.FieldByName('Ident_rasch').Value;
T_Postupl.Active:=false;
{Проверим есть ли в т.Поступление партия книг прешедшая на
оформление, т.е. есть ли Priz_of=0}
if pesp=true then
Begin
T_Rascheti.Active:=true;
T_Rascheti.IndexFieldNames:='Ident_rasch';
T_Rascheti.SetKey;
T_Rascheti.FieldByName('Ident_rasch').AsInteger:=raschet;
resp:=T_Rascheti.GoToKey;
if resp=true then
begin
nazvan:=T_Rascheti.FieldByName('Knazv').Value;
ekzem:=T_Rascheti.FieldByName('Kekz').Value;
T_Rascheti.Active:=false;
end;
end
else
{Если нет партии книг для оформления}
begin
ShowMessage('Отсутствует информация о новой партии книг!');
Kol_ekz_nazv.Hide;
Glavnaja.Enabled:=true;
end;
{Если в т.Расчеты есть запись соответствующая записи в т.Поступления,
то можно оформлять книги в "Инвентарную книгу"}
if resp=true then
begin
if ekzem=StrToInt(E_kol_ekz.Text) then
begin
if nazvan=StrToInt(E_kol_nazv.Text) then
begin
ShowMessage('Введенные данные сходятся!');
Kol_ekz_nazv.Close;
Inventar_pokup.Show;
Glavnaja.Enabled:=false;
{Glavnaja.Hide;}
end
end;
if ekzem=StrToInt(E_kol_ekz.Text) then
begin
if nazvan<>StrToInt(E_kol_nazv.Text) then
begin
ShowMessage('Введенные данные не сходятся с данными в разделе "Поступление в фонд"!');
Glavnaja.Enabled:=true;
end;
end
else
begin
ShowMessage('Введенные данные не сходятся с данными в разделе "Поступление в фонд"!');
Glavnaja.Enabled:=true;
end;
end;
end
{Если пользователь не до конца оформил новую партию в раздел
"Поступление в фонд" то}
else
begin
ShowMessage('Вы не до конца оформили новую партию книг в раздел "Поступление в фонд!"');
Glavnaja.Enabled:=true;
end;
Kol_ekz_nazv.Hide;
End.
Рис.14
Если введенные значения сходятся, то пользователь получает доступ к форме представленной на рис.15, которая позволяет занести в инвентарную книгу полную информацию о каждой книге.
Ввод информации в инвентарную книгу.
Программный код этой формы позволяет контролировать количество названий, экземпляров и общей стоимости книг. И если какое либо из этих значений не совпадает с тем, что введено в раздел поступление в фонд, то все сделанные пользователем изменения в базе данных отменяются.
Рис.15
После того как партия оформлена в фонд пользователю предоставляется возможность распечатать отчет о книгах поступивших в этой партии. Форма этого отчета представлена на Рис.1 Прил. 2.
Для реализации функции поступления книг по замене используются следующие формы и их обработчики:
Выделение нового диапазона инвентарных номеров для замены.
Выделение нового диапазона инвентарных номеров для замены осуществляется с помощью формы представленной на Рис.16. Новый диапазон представляет собой некоторое определенное пользователем количество пустых записей в инвентарной книге. Эти записи отличаются от обычных записей значением признака (Priz_vib).
Рис.16
Выделить инвентарные номера для замены можно только после того, если был заполнен предыдущий инвентарный диапазон.
Форма замены утерянной книги на новую.
Рис.17
Функция замены утерянных книг на новые книги позволяет вводить информацию об утерянной книге и книге поступающей взамен утерянной.
Информация о книге поступающей взамен утерянной тут же заносится в инвентарную книгу, в запись, предназначенную для книг поступающих по замене.
Не зависимо от того, какое количество книг поступает по замене, определяется общая стоимость книг пришедших на замену и год их издания. Если общая стоимость или год издания таких книг или книги будет меньше чем у утерянной книги, то ввести такие книги взамен система не позволит.
Первоначально вводится инвентарный номер утерянной книги, система осуществляет поиск этой книги в составе фонда, если книга числиться в составе фонда, то позволяется ввести количество экземпляров книг поступающих взамен утерянной.
После ввода книг на замену информация об утерянных книгах заносится в отдельную таблицу Jurnal_zamena.db.
Ввод информации о книгах взамен осуществляется до тех пор пока не заполнится диапазон замены. Если диапазон заполнится, то ввод новых книг запрещается до тех пор, пока не будет выделен новый диапазон.
После заполнения диапазона номеров можно вызвать функцию распечатки акта “О списании исключенной из библиотеки литературы в бюджетных учреждениях” по причине утери. Форма акта представлена на рис.2 прилож.1.
В программном коде, реализующем процедуру распечатки акта, имеется модуль заполняющий информацию в разделы Поступление в фонд и Выбытие из фонда.
Переоценка фонда
Функция переоценки фонда позволяет переоценить фонд в зависимости от введенного коэффициента переоценки и числа переоценки.
Форма переоценки фонда.
Рис.18
Списание книг по старости или ветхости
Форма ввода перечня книг.
Рис.19
Процедура, выполняемая данной формой, позволяет ввести наименование книг предназначенных для списания и их количество, а также вводить информацию по инвентарным номерам. Программный код разработанный здесь позволяет пометить книги на удаление признаком Priz_vibit=true. Отчет формируется при помощи COM объектов и выгружается в Excel.
Для этого используется модуль ComObj в этом модуле описаны функции для работы с COM объектами.
Проверка фонда
Проверка фонда.
Форма ввода инвентарных номеров.
Рис.20
Форма реализовывает процедуру проверки фонда. Процедура осуществляется следующим образом: пользователь вводит инвентарные номера книг, которые имеются в наличие. Записям, идентифицирующим введенные книги, присваивается признак наличия книги. Priz_nalich=true.
Оформить акт проверки.
Функция реализации вывода на печать акта тоже использует SQL-запросы и на печать выводится информация о всех книгах со значением признака Priz_nalich=false;
Отчет также формируется при помощи COM объектов и выгружается в Excel.
Для этого тоже используется модуль ComObj в этом модуле описаны функции для работы с COM объектами.
Ознакомление с фондом.
Функция ознакомления с фондом позволяет просматривать информацию в разделах Поступления в фонд, Выбытие из фонда и Итоги движения фонда. Все эти задачи реализованы также с использованием SQL-запросов COM объектов.
Форма ознакомления с Прибытием в фонд.
Рис.21
Форма и программный модуль позволяют просматривать и распечатывать информацию о поступлениях в фонд по годам.
Форма ознакомления с Выбытием из фонды.
Рис. 22
Форма и программный модуль позволяют просматривать и распечатывать информацию о поступлениях в фонд по годам.
Ознакомление с Инвентарной книгой.
Рис. 23
8. Организационный компонент системы
8.1 Инструкция для персонала предприятия
Данная инструкция предназначена для работников библиотеки, которые будут использовать в процессе учета библиотечного фонда разрабатываемую систему. Инструкция содержит последовательность действий, которые необходимо выполнять при работе с приложением.
Доступ к автоматизированной системе “Учета библиотечного фонда” могут иметь не только работники библиотеки, но и студенты и преподаватели. Для этого была разработана подсистема разграничения доступа.
Руководству библиотеки рекомендуется определить одного сотрудника, который будет выполнять действия администратора системы и организовывать доступ к ней пользователей.
1. Первый запуск системы. должен проводиться пользователем, который будет выполнять действия администратора системы. Для установления своих административных полномочий.
Для запуска автоматизированной системы “Учета библиотечного фонда” необходимо выбрать пункт меню ПУСК-ПРОГРАММЫ-BibLion1.0
3. Для входа систему пользователю необходимо:
a. Ввести системное имя (логин);
b. Ввести пароль, присвоенный ему администратором.
Если выдается сообщение, “пароль введен не верно!”, то вы ввели либо не верный пароль, либо вы не имеете право на доступ в систему.
Если число попыток ввода паролей превысит пяти раз, то системы автоматически отключится.
4. Если пользователь не является работником библиотеки, то администратор системы может позволить ему доступ только к главной форме приложения (рис.26).
Рис.26
5. Главная форма предназначена для ознакомления с перечнем литературы имеющейся в библиотеке:
· В ней можно организовать поиск, по отраслям знаний выбирая с левой стороны экрана наименование требуемой отрасли, а с правой стороны в табличном виде получать перечень книг по данной отрасли.
· В нижней части экрана можно осуществить поиск книг, имеющихся в библиотеке, по автору, по заголовку и по авторскому знаку.
6. Если вошедший в систему пользователь является работником библиотеки, то в зависимости от полномочий установленных ему администратором он может выполнять следующие действия:
Пункт меню Оформление в фонд - > Купленные книги
Рис.27
1. Оформление купленной партии книг в фонд.
Пункт меню Купленные книг->Прибытие в фонд - этот пункт меню позволяет вызвать форму (рис.28) по средствам которой можно организовать ввод информации о новой купленной партии книг в раздел “Прибытие в фонд”, а также периодике.
(Рис.28)
Пункт меню Купленные книги->Инвентарная книга - здесь позволяется по средством выводимой на экран формы (рис.29) вводить информацию о каждой книге новой партии в Инвентарную книгу.
(рис.29)
Пункт меню Купленные книг и-> Отчет о новых книгах, позволяет вывести на экран отчет о книгах поступивших в последней партии и распечатать его на принтере.
Пункт меню Оформление в фонд - > Замена книг
Рис.30
2. Оформление книг в фонд по замене:
Пункт меню Замена книг - > Новый диапазон - позволяет вывести на экран форму (рис.31), по средствам которой можно организовать ввод диапазона инвентарных номеров для замены.
Рис.31
Пункт меню Замена книг - > Заменить книгу - позволяет на основании выделенных инвентарных номеров для замены выводить на экран форму (рис.32), которая позволяет проводить процедуру списания книг из фонда и, занесения информации о новой книге в Инвентарную книгу и внесения информации в Журнал замены.
Рис.32
Последовательность процедуры замены книги следующая:
· Вводится инвентарный номер утерянной книги;
· Вводится количество всего книг, поступающих взамен утерянной;
· Вводится информация о читателе утерявшем книгу;
· Вводятся реквизиты книг пришедших взамен и количество каждой из них;
· Затем нажимается кнопка формы “Ввод” и информация заносится в базу данных.
Пункт меню Замена книг - > Оформить акт - позволяет выводить на печать акт “Об утерянных книгах читателями”.
Этот документ можно запустить на печать только в том случае если был заполнен диапазон замены инвентарных номеров.
Для распечатки отчета в программе Excel, которая запустится при указании формирования отчета необходимо:
- выбрать пункт меню Файл-Печать;
- посредствам открывшейся формы запустить сформированный акт на печать.
Пункт меню Оформление в фонд - > Переоценка.
Рис.33
Для переоценки фонда необходимо: выбрать пункт меню Оформление в фонд - > Переоценка. После выбора этого пункта меню на экране появится форма (рис.34), которая позволит осуществить процедуру переоценки фонда.
Рис.34
Процедура переоценки следующая:
· В выпадающем списке выбрать число на которое следует переоценить фонд;
· В следующем поле ввода необходимо ввести коэффициент переоценки;
· Для проведения процедуры переоценки нажать клавишу “Переоценить”.
· Для выхода из формы нажать клавишу “Выход”.
3. Выбытие книг из фонда по причине старости содержания или ветхости:
Определение книг подлежащих списанию:
Выбрать пункт меню Списать по старости - >Ввод перечня книг. При выборе этого пункта меню на экран будет выведена форма (рис.36), позволяющая определить перечень книг на списание.
Определять перечень книг можно:
· По инвентарным номерам книг (закладка формы “По инвентарным номерам”);
· По названиям книг (закладка формы “По названию книги”).
В поля ввода этой формы можно внести только информацию о книгах имеющихся в фонде.
После определения (Вводы в поля) книги, подлежащей списанию необходимо нажать активизировавшуюся кнопку Ввод. После этого введенная книга будет помечена системой на списание по причине старости или ветхости. Таким образом определяется весь перечень книг подлежащих списанию.
Подобные документы
Разработка автоматизированного рабочего места служащего библиотечного фонда "Национальная библиотека им. В.И. Вернадского". Программные средства для разработки базы данных библиотечного фонда. Установление связей таблиц базы данных библиотечного фонда.
курсовая работа [5,3 M], добавлен 07.06.2010Формулировка предметной задачи. Анализ требований к программе. Функциональная модель системы. Выбор языка и программных средств реализации. Описание логической модели базы данных. Концептуальная модель данных информационной системы Интернет-библиотеки.
курсовая работа [4,4 M], добавлен 13.10.2017Информационное обеспечение автоматизированной системы, создаваемой для устранения ошибок при внесении различных данных о всех услугах. Создание таблиц. Описание автоматизируемых функций приложения. Укрупнённый алгоритм программы, логика работы модулей.
курсовая работа [931,5 K], добавлен 27.09.2012Разработка автоматизированной системы учета книг в библиотеке юридического факультета АГТУ: рассмотрение даталогической и инфологической моделей данных, выбор среды программирования, создание интерфейса пользователя, расчет затрат на внедрение проекта.
дипломная работа [3,0 M], добавлен 08.02.2011Описание предметной области и обоснование актуальности разработки базы данных "Учет фонда библиотеки для Харьковского колледжа текстиля и дизайна". Построение реляционной модели данных. Типы сущностей и связей. Разработка объектно-ориентированной модели.
курсовая работа [1,1 M], добавлен 24.01.2016Создание базы данных для библиотеки, ведение учета сдачи и выдачи, формирование каталога книг. Требования заказчика к системе. План-график обследования деятельности библиотекаря. Структурные единицы входной, выходной информации. Логическая модель данных.
курсовая работа [1,7 M], добавлен 25.04.2012Постановка задачи разработки автоматизированной системы управления в органах социальной защиты населения. Организация учета и распределения денежных средств. Логическая и физическая структуры базы данных. Методология работы с автоматизированной системой.
дипломная работа [1,9 M], добавлен 24.03.2010Системы визуального объектно-ориентированного программирования. Среда разработки Delphi. Microsoft Access как система управления базами данных реляционного типа. Структурированный язык запросов SQL. Программирование базы данных Библиотечного фонда.
курсовая работа [2,5 M], добавлен 08.01.2012Библиотека как элемент образовательной среды. Основные технологии работы библиотеки общеобразовательного учреждения. Описание входных и выходных потоков информации. Выбор системы управления базами данных и создание схемы данных. Тестирование базы данных.
дипломная работа [1,5 M], добавлен 13.10.2015Разработка программы автоматизации подбора запчастей для ремонта автомобилей. Структурные единицы сообщений. Концептуальная модель системы. Алгоритм работы автоматизированной системы. Физическая модель данных. Описание пользовательского интерфейса.
дипломная работа [2,1 M], добавлен 20.06.2013