Автор работы: Пользователь скрыл имя, 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
Ниже представлены макеты, созданные для демонстрации интерфейса, при сдаче технического задания на утверждение. На макетах изображены три окна: периодика, читатель и статьи, а также основные кнопки меню. Интерфейс приложения разработан по этим макетам.
Макет окна Периодика.
Макет окна Статьи.
Рисунок 4
Макет окна Читатели.
В этой части работы мы рассмотрим структуризацию элементов окон. Всего реализовано 3 окна: Литература, Статьи, Читатели. Так как они являются основными, эти окна были сделаны в первую очередь. Остальные окна будут реализованы при доработке данного приложения и будут являться второстепенными, так как на основе трех основных будут разработаны все последующие окна.
Рисунок 6
Окно литература, так как используется чаще остальных, стало основным окном приложения. Из этого окна мы можем попасть на любое другое окно, кликнув по одной из функциональных кнопок, находящихся сверху приложения. По способу перехода, кнопки и окна напоминают вкладки элемента Tab Control, т.е. кликнув по кнопке читатели мы попадаем на форму с окном читатели. Такая структура удобна для быстрого перехода между окнами, при этом сохраняя списки открытыми.
В окне литература пользователь может:
На рисунке 5 представлено окно литература, а также описание элементов расположенных на окне и форме целиком.
Описание элементов окна литература, а также основной формы:
Область (Обл.) – область на которой расположены элементы пронумерованные от 10 до 26 называется окном «Литературы».
Находясь в окне читатели, можно попасть на любое другое окно, просто кликнув по кнопке расположенной вверху окна. Окно читатели представляет собой сгруппированные списки, и блоки полей, в которых расположена информация о читателях.
В данном окне можно:
Окно читатели связанно с окном литературы, когда в карточке литературы подтверждают изменения в полях. Автоматически изменяется и запись читателя, ей присевается книга.
На рисунке 6
приведено окно читатели, а также представлено описание элементов расположенных на окне.
Находясь в окне статьи, можно попасть на любое другое окно, просто кликнув по кнопке расположенной вверху окна. Окно статьи представляет собой сгруппированные списки, и блоки полей, в которых расположена информация обо всех статьях, имеющихся в базе данных.
В данном окне можно:
На рисунке 7 приведено окно статьи, а также представлено описание элементов расположенных на окне.
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.
using FirebirdSql.Data.Isql;
Выше описан блок подключений пространств имен. Все, за исключением двух последних подключений, включены в приложение по умолчанию, и являются стандартными пространствами имен.
using FirebirdSql.Data.
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\
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.
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(
}
Код написанный выше является событием нажатия кнопки B_Incert которая отвечает за добавление записей в базу данных. Начинается добавление с создания команды (запроса) который передается из пользовательского интерфейса.
После создания запроса происходит проверка, если соединение с базой данных закрыто, тогда необходимо его открыть. Далее создается транзакция и начинается добавление строки запроса. При правильном построении запроса запись добавится и появится соответствующее сообщение, в противном случае появится окно с кодом ошибки. После того как результат получен (положительный или нет) запрос уничтожается, а соединение с базой данных закрывается, после всех этих действий происходит обновление списков окон.
private void B_Delete_Click(object sender, EventArgs e)
{
FbCommand InsertSQL =
new FbCommand(ActiveUserControl.
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(
}
Действие описанное выше является событием, как и предыдущее, только при нажатии на кнопку B_Delete происходит удаление записи из базы данных. По методу передачи запроса, идентично добавлению.
private void B_Update_Click(object sender, EventArgs e)
FbCommand InsertSQL =
new FbCommand(ActiveUserControl.
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(
}
Действие описанное выше является событием, как и предыдущее, только при нажатии на кнопку B_Update происходит обновление записи в базе данных. По методу передачи запроса, идентично добавлению и удалению.
private void B_SelIt_Click(object sender, EventArgs e)
ActiveUserControl.MyRefresh(
Выше описанное так же является событием нажатия кнопки. При нажатии на кнопку B_Selit происходит обновление списков окон.
private void toolStripButtonЛитра_Click_1(o