Программирование комплекса «Библиотека»

Автор работы: Пользователь скрыл имя, 01 Июня 2013 в 18:26, дипломная работа

Краткое описание

Целью данной дипломной работы является создание программного комплекса «Библиотека» (далее ПК «Библиотека») для ведения учета литературы находящийся в библиотеке, а также сотрудников имеющих на руках какие либо материалы из нее.
Задачи исследования: (задачи исследования вытекают из глав твоей дипломной работы, перечисли их по пунктам).
ПК «Библиотека» состоит из двух модулей:
Библиотекарь - представляет собой приложение Windows, в котором и происходит заполнение базы данных информацией о литературе и сотрудниках.
Читатель – этот модуль предназначен для обеспечения сотрудников ОНУТЦ доступа к базе данных книг библиотеки. Модуль читателя представляет собой веб-интерфейс.

Содержание

Введение 3
1. Постановка задачи 6
2. История развития СУБД 8
2.1. Типы и структуры данных 8
2.1.1. Основные типы данных. 8
2.1.2. Обобщенные структуры или модели данных. 9
2.1.3. Методы доступа к данным. 10
2.2. Классификация моделей баз данных 11
2.2.1. Иерархическая модель данных. 11
2.2.2. Сетевая модель данных 12
2.2.3. Реляционная модель данных 15
2.2.4. Постреляционные СУБД. 19
3. Практическая реализация 23
3.1. Пояснения к техническому заданию. 23
3.2. Интерфейс ПК «Библиотека» 24
3.3. Описание программного кода 34
3.3.1 Описание класса Form1. 34
4. Экономическое обоснование 55
5. Инструкция по технике безопасности при работе на компьютере 67

Вложенные файлы: 1 файл

Дипломная работа по проекту ОНУТЦ.docx

— 753.81 Кб (Скачать файл)

3.2. Макеты приложения.

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


Макет окна Периодика.

Макет окна Статьи.

Рисунок 4


Макет окна Читатели.

3.3. Интерфейс ПК «Библиотека»

В этой части работы мы рассмотрим структуризацию элементов окон. Всего реализовано 3 окна: Литература, Статьи, Читатели. Так как они являются основными, эти окна были сделаны в первую очередь. Остальные окна будут реализованы при доработке данного приложения и будут являться второстепенными, так как на основе трех основных будут разработаны все последующие окна.

3.3.1. Окно Литература. Основное окно


 

 

 

 

 

 

 

 

 

 

 

 

 

Рисунок 6

Окно литература, так как используется чаще остальных, стало основным окном приложения. Из этого окна мы можем попасть на любое другое окно, кликнув по одной из функциональных кнопок, находящихся сверху приложения. По способу перехода, кнопки и окна напоминают вкладки элемента Tab Control, т.е. кликнув по кнопке читатели мы попадаем на форму с окном читатели. Такая структура удобна для быстрого перехода между окнами, при этом сохраняя списки открытыми.

В окне литература пользователь может:

  • создать новую карточку литературы;
  • удалить карточку литературы;
  • обновить карточку литературы (подтвердить изменения в карточке);

На рисунке 5 представлено окно литература, а также описание элементов расположенных на окне и форме целиком.

Описание элементов окна литература, а также основной формы:

  1. Кнопка «Литература» – при нажатии на данную кнопку осуществляется переход на окно литературы, в котором можно найти, добавить, удалить или изменить карточки книг.
  2. Кнопка «Читатели» – при нажатии на данную кнопку осуществляется переход на окно читатели, в котором можно найти, добавить, удалить или изменить информацию о читателях библиотеки (сотрудниках НОУ «ОНУТЦ ОАО «Газпром»).
  3. Кнопка «Периодика» – при нажатии на данную кнопку осуществляется переход на окно периодики, в котором можно найти, добавить, удалить или изменить карточки журналов (в данный момент не реализовано).
  4. Кнопка «Отчеты» – при нажатии на данную кнопку осуществляется переход на окно отчетов, в котором можно найти, добавить, удалить или информацию об отчетах, содержащихся в библиотеке (в данный момент не реализовано).
  5. Кнопка «Статьи» – при нажатии на данную кнопку осуществляется переход на окно статьи, в котором можно найти, добавить, удалить или изменить информацию о статьях, содержащихся в библиотеке.
  6. Кнопка «Помощь» – при нажатии на данную кнопку всплывает окно помощи, в котором написано руководство по использованию модуля «Библиотекарь».
  7. Текстовое поле для поиска – в этом текстовом поле заносится название карточки литературы для быстрого поиска по одному полю.
  8. Кнопка «Поиск» – осуществляет поиск карточки литературы по ее названию, вписанному в текстовое поле для поиска (№7).
  9. Кнопка «Расширенный поиск» – при нажатии на данную кнопку всплывает окно, в котором находятся поля для осуществления поиска по нескольким параметрам карточки.
  10. Список – элемент окна в котором отображается список карточек книг. Отображается только поле «Автор» и «Заглавие», при нажатии на название одной из карточек информация о ней появляется в полях с 11 по 20.
  11. Поле «Автор(ы)» – текстовое поле в которое можно заносить информацию о авторе книги. Также эту информацию можно изменить. При выборе карточки из Списка (№10) поле автоматически заполняется сохраненной до этого информацией.
  12. Поле «Аннотация» – текстовое поле, в которое можно заносить краткую информацию о книге. Также эту информацию можно изменить. При выборе карточки из Списка (№10) поле автоматически заполняется сохраненной до этого информацией.
  13. Поле «Заглавие» – текстовое поле, в которое можно заносить название книги. Также эту информацию можно изменить. При выборе карточки из Списка (№10) поле автоматически заполняется сохраненной до этого информацией.
  14. Поле «ББК» – текстовое поле, в которое можно заносить информацию о ключе библиотеки. Также эту информацию можно изменить. При выборе карточки из Списка (№10) поле автоматически заполняется сохраненной до этого информацией.
  15. Поле «Объем» – текстовое поле, в которое можно заносить информацию о количестве страниц. Также эту информацию можно изменить. При выборе карточки из Списка (№10) поле автоматически заполняется сохраненной до этого информацией.
  16. Поле «Ключевые слова» – текстовое поле, в которое можно заносить ключевые слова о книге. Также эту информацию можно изменить. При выборе карточки из Списка (№10) поле автоматически заполняется сохраненной до этого информацией.
  17. Поле «Год издания» – текстовое поле, в которое заносится год издания книги. Также эту информацию можно изменить. При выборе карточки из Списка (№10) поле автоматически заполняется сохраненной до этого информацией.
  18. Поле «Комментарий» – текстовое поле, в которое можно заносить комментарии к книге. Также эту информацию можно изменить. При выборе карточки из Списка (№10) поле автоматически заполняется сохраненной до этого информацией.
  19. Поле «Цена» – текстовое поле, в которое можно заносить информацию о цене этой книги. Также эту информацию можно изменить. При выборе карточки из Списка (№10) поле автоматически заполняется сохраненной до этого информацией.
  20. Поле «Читатель» – поле, в котором можно выбрать читателя из списка сотрудников ОНУТЦ, которые отображены в окне «Читатели» (перейти на которое можно нажав кнопку «Читатели» №2). Также эту информацию можно изменить. При выборе карточки из Списка (№10) поле автоматически заполняется сохраненной до этого информацией.
  21. Таблица поступлений – таблица, в которой отображается дата поступления, а также присвоенный инвентарный номер книги.
  22. Переключатель – кнопка включения \ выключения просмотра ID карточки присвоенной в базе данных (временный элемент).
  23. Кнопка «ADD» – кнопка добавления информации в таблицу поступлений (№21).
  24. Кнопка «Change» – кнопка изменения информации в таблице поступлений (№21).
  25. Кнопка «Delete» – кнопка удаления записей в таблице поступлений (№21).
  26. Поле «ID» – это поле отличное от остальных, так как оно не изменяется и по умолчанию скрыто (временный элемент).
  27. Кнопка «Добавить» – при нажатии этой кнопки создается новая карточка литературы или новый читатель (что именно добавляется зависит от активного на данный момент окна), информация о которых берется из полей (в данном случае №11 - № 20) заполненных в окне.
  28. Кнопка «Удалить» – удаляет карточку выбранную в списке (№10).
  29. Кнопка «Обновить» – обновляет поля в базе данных, информация берется из полей (№11 - №20)
  30. Кнопка «Select» – кнопка отвечающая за выборку карточек и читателей из базы данных в список (№10) (временный элемент).
  31. Кнопка «Quit» – кнопка безопасного завершения программы (временный элемент).

 

Область (Обл.) – область на которой расположены элементы пронумерованные от 10 до 26 называется окном «Литературы».

3.3.2. Окно читатели.

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

В данном окне можно:

  • добавить читателя;
  • удалить читателя;
  • обновить запись читателя, используя поля расположенные рядом со списком.

Окно читатели связанно с окном литературы, когда в карточке литературы подтверждают изменения в полях. Автоматически изменяется и запись читателя, ей присевается книга.

На рисунке 6

 приведено окно читатели, а также представлено описание элементов расположенных на окне.

 

 


 

 

 

 

 

 

 

 

 

 


 

  1. Список – элемент окна, в котором отображается список читателей библиотеки (сотрудников НОУ «ОНУТЦ ОАО «Газпром»). Отображается только поля «Фамилия», «Имя» и «Отчество», при нажатии на запись одного из читателей информация о нем появляется в полях с 2 по 7.
  2. Поле «Фамилия» – текстовое поле, в которое заносится фамилия читателя. Также эту информацию можно изменить. При выборе карточки из Списка (№1) поле автоматически заполняется сохраненной до этого информацией.
  3. Поле «Имя» – текстовое поле, в которое заносится имя читателя. Также эту информацию можно изменить. При выборе карточки из Списка (№1) поле автоматически заполняется сохраненной до этого информацией.
  4. Поле «Отчество» – текстовое поле, в которое заносится отчество читателя. Также эту информацию можно изменить. При выборе карточки из Списка (№1) поле автоматически заполняется сохраненной до этого информацией.
  5. Поле «Должность» – текстовое поле, в которое заносится должность читателя. Также эту информацию можно изменить. При выборе карточки из Списка (№1) поле автоматически заполняется сохраненной до этого информацией.
  6. Поле «Табельный номер» – текстовое поле, в которое заносится табельный номер читателя. Также эту информацию можно изменить. При выборе карточки из Списка (№1) поле автоматически заполняется сохраненной до этого информацией.
  7. Поле «E-mail» – текстовое поле, в которое заносятся контактные данные читателя. Также эту информацию можно изменить. При выборе карточки из Списка (№1) поле автоматически заполняется сохраненной до этого информацией.
  8. Переключатель – кнопка включения\выключения просмотра ID читателя присвоенный в базе данных (временный элемент).
  9. Таблица книг – эта таблица показывает, какие книги находятся у читателя, эта таблица заполняется автоматически из окна литературы.

3.3.3. Окно статьи

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

В данном окне можно:

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

На рисунке 7 приведено окно статьи, а также представлено описание элементов расположенных на окне.


 

 

 

 

 

 

 

 

 

 

 


 

  1. Список – элемент окна, в котором отображается список статей содержащихся в базе данных. Отображается только поле «Заглавие», при нажатии на карточку статьи информация о ней появляется в полях с 2 по 7.
  2. Поле «Автор(ы)» – текстовое поле, в которое заносится имя и инициалы автора. Также эту информацию можно изменить. При выборе карточки из Списка (№1) поле автоматически заполняется сохраненной до этого информацией.
  3. Поле «Заглавие» – текстовое поле, в которое заносится название статьи. Также эту информацию можно изменить. При выборе карточки из Списка (№1) поле автоматически заполняется сохраненной до этого информацией.
  4. Поле «Аннотация» – текстовое поле, в которое заносится аннотация статьи. Также эту информацию можно изменить. При выборе карточки из Списка (№1) поле автоматически заполняется сохраненной до этого информацией.
  5. Поле «Ключевые слова» – текстовое поле, в которое заносятся ключевые слова, относящиеся к статье. Также эту информацию можно изменить. При выборе карточки из Списка (№1) поле автоматически заполняется сохраненной до этого информацией.
  6. Поле «Источник» – текстовое поле, в которое заносится информация об источнике. Также эту информацию можно изменить. При выборе карточки из Списка (№1) поле автоматически заполняется сохраненной до этого информацией.
  7. Поле «Страницы» – текстовое поле, в которое заносится количество страниц выбранной статьи. Также эту информацию можно изменить. При выборе карточки из Списка (№1) поле автоматически заполняется сохраненной до этого информацией.

3.4. Описание программного кода

3.4.1 Описание класса Form1.

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using FirebirdSql.Data.FirebirdClient;

using FirebirdSql.Data.Isql;

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

using FirebirdSql.Data.FirebirdClient; - подключаемое пространство имен обеспечивающее подключение к базе данных Firebird.

using FirebirdSql.Data.Isql; - подключаемое пространство имен обеспечивающее работоспособность SQL запросов по отношению к базе данных firebird.

namespace FBDB_Test

{

    public partial class Form1 : Form

    {

        public FbConnection fb;

        IMyUserControlInterface ActiveUserControl;

        public Form1()

        {

            InitializeComponent();

            ActiveUserControl = userControlОписание1;

            userControlArticle2.Visible = false;

            FbConnectionStringBuilder csb = new FbConnectionStringBuilder();

            csb.ServerType = 0;

            csb.Database = @"C:\Users\Gavaii\Desktop\ДИПЛОМ\Приложение\lib-fbd\FBDT.FBD.FDB";

            csb.Charset = "UTF8";

            csb.UserID = "SYSDBA";

            csb.Password = "masterkey";

            fb = new FbConnection(csb.ToString());

            fb.Open();

            MessageBox.Show("Connection is opened Successfully");

        }     

Выше описано начало приложения. Название решения (FBDB_Test) и создание класса Form1. Далее глобально создается экземпляр класса FbConnection, при помощи которого и будет осуществляться подключение к базе данных. Также глобально объявлен пользовательский интерфейс который передает строки запросов для базы данных.

После инициализации компонентов выставляется окно по умолчанию. И задаются параметры для подключения:

csb.ServerType – тип сервера базы данных;

csb.Database – путь до файла базы данных;

csb.Charset – кодировка базы данных;

csb.UserID и csb.Password – логин и пароль от базы данных соответсвенно;

После заполнения этих параметров осуществляется подключение к базе данных (в строке fb.Open();), при правильном заполнении всех параметров появится окно с сообщением, что подключение к базе данных осуществлено успешно.

        private void B_EX_Click(object sender, EventArgs e)

        {

            Close();

        }

Выше описано событие нажатия кнопки B_EX, которое закрывает приложение.

        private void B_Incert_Click(object sender, EventArgs e)

        {

            FbCommand InsertSQL =

          new FbCommand(ActiveUserControl.СтрокаНаДобавление, fb);

            if (fb.State == ConnectionState.Closed)

                fb.Open();

            FbTransaction fbt = fb.BeginTransaction();

            InsertSQL.Transaction = fbt;

            try

            {

                int res = InsertSQL.ExecuteNonQuery();

                MessageBox.Show("SUCCESS: " + res.ToString());

                fbt.Commit();

            }

            catch (Exception ex)

            {

                MessageBox.Show(ex.Message);

            }

            InsertSQL.Dispose();

            fb.Close();

            ActiveUserControl.MyRefresh(fb);

        }

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

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

        private void B_Delete_Click(object sender, EventArgs e)

        {

            FbCommand InsertSQL =

             new FbCommand(ActiveUserControl.СтрокаНаУдаление, fb);

            if (fb.State == ConnectionState.Closed)

                fb.Open();

            FbTransaction fbt = fb.BeginTransaction();

            InsertSQL.Transaction = fbt;

            try

                int res = InsertSQL.ExecuteNonQuery();

                MessageBox.Show("SUCCESS: " + res.ToString());

                fbt.Commit();

            }

            catch (Exception ex)

            {

                MessageBox.Show(ex.Message);

            }

            InsertSQL.Dispose();

            fb.Close();

            ActiveUserControl.MyRefresh(fb);

        }

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

        private void B_Update_Click(object sender, EventArgs e)

        FbCommand InsertSQL =

            new FbCommand(ActiveUserControl.СтрокаНаОбновить, fb);

            if (fb.State == ConnectionState.Closed)

                fb.Open();

            FbTransaction fbt = fb.BeginTransaction();

            InsertSQL.Transaction = fbt;

            try

                int res = InsertSQL.ExecuteNonQuery();

                MessageBox.Show("SUCCESS");

                fbt.Commit();

            catch (Exception ex)

                MessageBox.Show(ex.Message);

            InsertSQL.Dispose();

            fb.Close();

            ActiveUserControl.MyRefresh(fb);

        }

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

        private void B_SelIt_Click(object sender, EventArgs e)

            ActiveUserControl.MyRefresh(fb);

Выше описанное так же является событием нажатия кнопки. При нажатии на кнопку B_Selit происходит обновление списков окон.

        private void toolStripButtonЛитра_Click_1(object sender, EventArgs e)

Информация о работе Программирование комплекса «Библиотека»