Professional Documents
Culture Documents
Диплом
Диплом
ДО ЗАХИСТУ
ДОПУЩЕНО
Голова циклової комісії
технологічних спеціальностей
____________ Ю.В.
Гончаренко
(підпис) (ініціали, прізвище)
(дата)
КВАЛІФІКАЦІЙНОЇ РОБОТА
РОЗРОБКА ДОДАТКУ «ЕЛЕКТРОННА ЧИТАЛЬНА ЗАЛА»
Виконав
ст. групи Некрилов І.К.
(шифр) (підпис) (ініціали, прізвище)
Нормоконтроле
р ст. викл. Шумада А.С.
(посада) (підпис) (ініціали, прізвище)
Запоріжжя
20__
КОЛЕДЖ КЛАСИЧНОГО ПРИВАТНОГО УНІВЕРСИТЕТУ
Циклова комісія технологічних спеціальностей
ЗАТВЕРДЖУЮ
Голова циклової комісії з
технологічних спеціальностей
________________ Ю.В.
Гончаренко
(підпис) (ініціали, прізвище)
(дата)
ЗАВДАННЯ
НА ВИКОНАННЯ КВАЛІФІКАЦІЙНОЇ РОБОТИ
студенту групи
КЗІ–216
(шифр)
№ Позначка
Термін
з/п Назви частин роботи про
виконання
виконання
7.1. Складання бібліографії та вивчення
03.12.18 р. Виконано
літературних джерел
7.2. Збирання матеріалу. Написання вступу 04.12.18 р. Виконано
7.3. Виконання розділу 1 01.01.19 р. Виконано
7.4. Виконання розділу 2 11.01.19 р. Виконано
7.5. Виконання розділу 3 01.02.19 р. Виконано
7.6. Виконання розділу 4 05.04.19 р. Виконано
7.7. Виконання розділу 5 07.04.19 р. Виконано
Формулювання висновків. Оформлення Виконано
7.8. 08.04.19 р.
пояснювальної записки кваліфікаційної роботи
7.9. Подання роботи до захисту 29.05.19 р. Виконано
БД – база даних.
СУБД – система управління базами даних.
Таблиця БД – основні таблиці, в яких міститься інформація, що
динамічно змінюється.
Таблиця–перелік – таблиці, в яких зберігається статична інформація, яка
вноситься в БД один раз і може інколи обновлятися. В основному це переліки
типів, видів, таблиць тощо.
SQL – це діалогова мова програмування для здійснення запиту і внесення
змін до БД, а також управління БД.
7
РЕФЕРАТ
ЗМІСТ
РЕФЕРАТ...........................................................................................................6
ВСТУП...............................................................................................................9
5. ОХОРОНА ПРАЦІ.................................................................................59
9
ВИСНОВКИ.....................................................................................................67
ДОДАТОК........................................................................................................69
10
ВСТУП
відповідає стандарту ANSI / ISO SQL. Стандарт SQL вперше був прийнятий в
1986 році і на даний час існує декілька його версій. У цьому посібнику «SQL–
92» посилається на стандарт, прийнятий в 1992 році, «SQL: одна тисяча
дев'ятсот дев'яносто дев'ять» – на стандарт, прийнятий в 1999 році, і «SQL:
2003» – на поточну версію стандарту.
Відкритість вихідного коду означає, що будь–який бажаючий має
можливість використовувати і модифікувати це програмне забезпечення на свій
розсуд. Отримати і розгорнути програмне забезпечення MySQL можна з
Internet, причому абсолютно безкоштовно. Кожен користувач, при бажанні,
може вивчити вихідні тексти і змінити їх відповідно до своїх потреб.
Програмне забезпечення MySQL розповсюджується за ліцензією GPL (GNU
General Public License), яка регламентує, що дозволено, а що ні по відношенню
до програмного забезпечення. Якщо з тих чи інших причин ліцензія GPL не
влаштовує або код MySQL потрібно вбудовувати в комерційні додатки, слід
придбати комерційну ліцензовану версію у компанії MySQL AB.
Сервер баз даних MySQL – дуже швидкий, надійний і простий в
експлуатації сервер. Сервер MySQL включає в себе практичний набір засобів,
розроблених в тісній кооперації з спільнотою користувачів. Спочатку сервер
MySQL був розроблений для більш швидкого управління великими базами
даних, ніж існуючі рішення в цій галузі, і протягом ряду років успішно
експлуатувався в середовищах, до яких пред'являлися досить високі вимоги.
Незважаючи на те що MySQL перебуває в безперервному процесі розробки, на
сьогоднішній день він надає багатий набір зручних в експлуатації засобів і
функцій. Притаманні сервера MySQL можливості мережевої взаємодії,
продуктивність і безпеку роблять його вдалим варіантом для роботи з базами
даних в Internet.
22
користувачі;
пакети прав користувачів;
активність користувачів.
Таблиця користувачів (users) веде облік користувачів бази та пов’язана з
таблицею активності користувачів.
Визначення найменування, типів та розмірності стовбців таблиці БД users
показано у таблиці 3.1.
Таблиця 3.1
Визначення таблиці БД users
Назва поля Тип Розмірність
ID_User int 11
Name varchar 100
Login varchar 100
Password varchar 100
ID_UserRight int 11
Таблиця 3.2
Визначення таблиці БД user_right
Назва поля Тип Розмірність
ID_Right int 11
Right_Name varchar 100
Book_Add int 11
Book_Edit int 11
Book_Delete int 11
User_Control int 11
Таблиця книг (books) веде облік книг, які можна читати. Таблиця книг є
однією з двох основних таблиць.
Визначення найменування, типів та розмірності стовбців таблиці БД
books показано у таблиці 3.3.
Таблиця 3.3
Визначення таблиці БД books
25
Таблиця 3.4
Визначення таблиці БД author
Назва поля Тип Розмірність
ID_Author int 11
Name varchar 100
DOB date
ID_Nation int 11
Таблиця 3.5
Визначення таблиці БД nation
Назва поля Тип Розмірність
ID_Nation int 11
27
Таблиця 3.7
Визначення таблиці БД genre
Назва поля Тип Розмірність
ID_Genre int 11
Genre varchar 100
Таблиця 3.8
Визначення таблиці БД user_activity
29
Таблиця 3.10
Визначення таблиці БД action
Назва поля Тип Розмірність
ID_Action int 11
Action varchar 50
31
MyCommand.Connection = MyConnection;
MyConnection.Open();
MyConnection.Close();
}
catch
{
MainMenu f = new MainMenu();
Exit = false;
Hide();
MessageBox.Show("Нет подключения к базе данных.", " Eror",
MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
Parameter.Value = BookName.Text;
Parameter.MySqlDbType = MySqlDbType.VarChar;
MyCommand.Parameters.Add(Parameter);
Parameter = new MySqlParameter();
Parameter.ParameterName = "@Genre";
Parameter.Value = Genre_ID;
Parameter.MySqlDbType = MySqlDbType.VarChar;
MyCommand.Parameters.Add(Parameter);
Parameter = new MySqlParameter();
Parameter.ParameterName = "@Author";
Parameter.Value = Author_ID;
Parameter.MySqlDbType = MySqlDbType.VarChar;
MyCommand.Parameters.Add(Parameter);
Parameter = new MySqlParameter();
Parameter.ParameterName = "@Date_Print";
Parameter.Value = "" + AddBookDate.Value.Year + "." +
AddBookDate.Value.Month + "." + AddBookDate.Value.Day + "";
Parameter.MySqlDbType = MySqlDbType.VarChar;
MyCommand.Parameters.Add(Parameter);
Parameter = new MySqlParameter();
Parameter.ParameterName = "@Comment";
Parameter.Value = Comment.Text;
Parameter.MySqlDbType = MySqlDbType.VarChar;
MyCommand.Parameters.Add(Parameter);
Parameter = new MySqlParameter();
Parameter.ParameterName = "@Format";
Parameter.Value = Format_ID;
Parameter.MySqlDbType = MySqlDbType.VarChar;
MyCommand.Parameters.Add(Parameter);
MyCommand.ExecuteNonQuery();
MyConnection.Close();
{
MessageBox.Show("Необходимо заполнить все поля", " Eror",
MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
catch (Exception ex)
{MessageBox.Show(ex.Message);}
}
Цей метод перевіряє, чи дані занесені у всі поля і, якщо всі поля
заповнені, продовжує процес створення рядка таблиці. Запит реалізовано у
такому вигляді:
MyCommand.CommandText = "INSERT INTO books (Name, Genre, Author, Date_Print,
Comment, Format) VALUES (@Name, @Genre, @Author, @Date_Print, @Comment, @Format)";
ID_Identify("author", AuthorList.SelectedItem.ToString(),
"ID_Author", "Name");
int Author_ID = ID;
ID_Identify("genre", AddBookGenre.SelectedItem.ToString(),
"ID_Genre", "Genre");
int Genre_ID = ID;
ID_Identify("format", Format_List.SelectedItem.ToString(),
"ID_Format", "Format");
int Format_ID = ID;
MyConnection.Open();
MyCommand.CommandText = "UPDATE books SET Name ='" +
BookName.Text + "', Genre ='" + Genre_ID + "', Author ='" + Author_ID + "',Date_Print =
'" + AddBookDate.Value.Year + "." + AddBookDate.Value.Month + "." +
AddBookDate.Value.Day + "', Comment ='" + Comment.Text + "', Format ='" + Format_ID +
"' WHERE ID_Book ='" + Properties.Settings.Default.Change_Book_ID + "'";
MyCommand.ExecuteNonQuery();
MessageBox.Show("Книга успешно обновлена");
MyCommand.ExecuteNonQuery();
MyConnection.Close();
Close();
}
catch (Exception ex)
{MessageBox.Show(ex.Message);}
}
else
{MessageBox.Show("Вы ничего не изменили!");} }
Load_reload(sender, e);
}
if (Reader.Read())
{
Book_Chapter = Reader.GetFieldValue<int>(0);
}
}
WasRead();
Chapter_Out(Book_Chapter);
while (true)
{
var lb = newChapter.IndexOf('<');
var rb = newChapter.IndexOf('>');
if ((rb < 0) || (lb < 0)) break;
newChapter = newChapter.Remove(lb, rb - lb+ 1);
}
Book_Text.Text = newChapter;
}
AddBookGenre.Items.Clear();
while (Reader3.Read())
{
AddBookGenre.Items.Add(Reader3.GetString(0));
}
Reader3.Close();
MyConnection.Close();
AuthorList.Items.Clear();
while (Reader4.Read())
{
AuthorList.Items.Add(Reader4.GetString(0));
}
Reader4.Close();
MyConnection.Close();
Format_List.Items.Clear();
while (Reader5.Read())
{
Format_List.Items.Add(Reader5.GetString(0));
}
Reader5.Close();
MyConnection.Close();
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
}
if (Reader.Read())
{
ID = Reader.GetFieldValue<int>(0);
}
Reader.Close();
MyConnection.Close();
}
5. ОХОРОНА ПРАЦІ
питань безпеки праці посадових осіб та осіб, які виконують роботи підвищеної
небезпеки, а також дотримання вимог безпеки при виконанні цих робіт тощо.
ВИСНОВКИ
ДОДАТОК
Лістинг програми
Лістинг 1 – Форма авторизації
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using MySql;
using MySql.Data.MySqlClient;
namespace KURSACH_III
{
public partial class Log_in : Form
{
bool NoExit = false;
public Log_in()
{
InitializeComponent();
Login.Text = KURSACH_III.Properties.Settings.Default.User_Name;
Password.Text = KURSACH_III.Properties.Settings.Default.User_Password;
try
{
string Connect = "server=" +
KURSACH_III.Properties.Settings.Default.Data_Base_IP + ";database=" +
KURSACH_III.Properties.Settings.Default.Data_Base_Name + ";port=" +
KURSACH_III.Properties.Settings.Default.Port + ";user=" +
KURSACH_III.Properties.Settings.Default.Server_Log + ";password= " +
KURSACH_III.Properties.Settings.Default.Server_Password;
MySqlConnection myConnection = new MySqlConnection(Connect);
myConnection.Open();
ServerConnection.Enabled = true;
ServerConnection.Checked = true;
ServerConnection.Enabled = false;
myConnection.Close();
}
catch
{
ServerConnection.Enabled = true;
ServerConnection.Checked = false;
ServerConnection.Enabled = false;
}
}
72
int user_right = 0;
try
{
string Connect = "server=" +
KURSACH_III.Properties.Settings.Default.Data_Base_IP + ";database=" +
KURSACH_III.Properties.Settings.Default.Data_Base_Name + ";port=" +
KURSACH_III.Properties.Settings.Default.Port + ";user=" +
KURSACH_III.Properties.Settings.Default.Server_Log + ";password= " +
KURSACH_III.Properties.Settings.Default.Server_Password;
MySqlConnection MyConnection = new MySqlConnection(Connect);
MySqlCommand MyCommand = new MySqlCommand();
MyConnection.Open();
try
{
MySqlDataReader Reader = MyCommand.ExecuteReader();
if (Reader.Read())
{
KURSACH_III.Properties.Settings.Default.User_Name =
Login.Text;
KURSACH_III.Properties.Settings.Default.User_Password =
Password.Text;
KURSACH_III.Properties.Settings.Default.User_Log_ID =
Reader.GetFieldValue<int>(0);
KURSACH_III.Properties.Settings.Default.Save();
user_right = Reader.GetFieldValue<int>(4);
}
else
{
label1.Visible = true;
return;
}
Reader.Close();
MyConnection.Close();
try
{
if (Reader1.Read())
{
KURSACH_III.Properties.Settings.Default.User_Rights =
Reader1.GetFieldValue<string>(1);
KURSACH_III.Properties.Settings.Default.Add =
Convert.ToBoolean(Reader1.GetFieldValue<int>(2));
KURSACH_III.Properties.Settings.Default.Delete =
Convert.ToBoolean(Reader1.GetFieldValue<int>(3));
KURSACH_III.Properties.Settings.Default.Edit =
Convert.ToBoolean(Reader1.GetFieldValue<int>(4));
KURSACH_III.Properties.Settings.Default.UserControl =
Convert.ToBoolean(Reader1.GetFieldValue<int>(5));
KURSACH_III.Properties.Settings.Default.Save();
}
Reader1.Close();
MyConnection.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
MyConnection.Open();
Parameter.ParameterName = "@Date_Activity";
Parameter.Value = Date;
Parameter.MySqlDbType = MySqlDbType.DateTime;
MyCommand.Parameters.Add(Parameter);
MyCommand.ExecuteNonQuery();
MyConnection.Close();
label1.Visible = false;
NoExit = true;
Hide();
MainMenu f = new MainMenu();
f.ShowDialog();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
catch (Exception)
{
MessageBox.Show(" Нет подключения к базе
данных.\r Измените настройки или проверьте работу сервера.");
}
}
else
{
MessageBox.Show("Заполните все поля");
}
using System;
75
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.Common;
using MySql;
using MySql.Data.MySqlClient;
namespace KURSACH_III
{
public partial class Book_Settings : Form
{
public int ID;
public bool Exit = true;
public Book_Settings()
{
InitializeComponent();
Add_Book.Enabled = true;
Edit_Book.Enabled = true;
Delete_Book.Enabled = true;
if (KURSACH_III.Properties.Settings.Default.Add == false)
{
Add_Book.Enabled = false;
}
if (KURSACH_III.Properties.Settings.Default.Edit == false)
{
Edit_Book.Enabled = false;
}
if (KURSACH_III.Properties.Settings.Default.Delete == false)
{
Delete_Book.Enabled = false;
}
76
MyConnection.Close();
}
catch
{
MainMenu f = new MainMenu();
Exit = false;
Hide();
f.ShowDialog();
MessageBox.Show("Нет подключения к базе данных.", " Eror",
MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
{
Load_reload(sender, e);
Collection_List();
}
Reader3.Close();
MyConnection.Close();
AuthorList.Items.Add(Reader4.GetString(0));
}
Reader4.Close();
MyConnection.Close();
}
if (Reader.Read())
{
ID = Reader.GetFieldValue<int>(0);
}
Reader.Close();
MyConnection.Close();
if (!
String.IsNullOrWhiteSpace(AddBookDate.Value.ToShortDateString()) || !
String.IsNullOrWhiteSpace(BookName.Text) || !
String.IsNullOrWhiteSpace(AddBookGenre.SelectedItem.ToString()) || !
String.IsNullOrWhiteSpace(AuthorList.SelectedItem.ToString()))
{
Filtrs = "WHERE ";
if (!
String.IsNullOrWhiteSpace(AddBookDate.Value.ToShortDateString()) && AddBookDate.Value !
= AddBookDate.MinDate)
80
{
if (!(Filtrs == "WHERE ")) { Filtrs = Filtrs + " AND "; }
Filtrs = Filtrs + "Date_Print = '" +
AddBookDate.Value.Year + "." + AddBookDate.Value.Month + "." + AddBookDate.Value.Day +
"'";
}
if (!String.IsNullOrWhiteSpace(BookName.Text))
{
if (!(Filtrs == "WHERE ")) { Filtrs = Filtrs + " AND "; }
Filtrs = Filtrs + "Name = '" + BookName.Text + "'";
}
if (!(AddBookGenre.SelectedItem == null))
{
if (!(Filtrs == "WHERE ")) { Filtrs = Filtrs + " AND "; }
ID_Identify("genre",
AddBookGenre.SelectedItem.ToString(), "ID_Genre", "Genre");
Filtrs = Filtrs + "Genre = '" + Convert.ToString(ID) +
"'";
}
if (!(AuthorList.SelectedItem == null))
{
if (!(Filtrs == "WHERE ")) { Filtrs = Filtrs + " AND "; }
ID_Identify("author", AuthorList.SelectedItem.ToString(),
"ID_Author", "Name");
Filtrs = Filtrs + "Author = '" + Convert.ToString(ID) +
"'";
}
}
MyConnection.Open();
}
}
MyCommand.Parameters.Add(Parameter);
Parameter.ParameterName = "@Date_Activity";
Parameter.Value = Date;
Parameter.MySqlDbType = MySqlDbType.DateTime;
MyCommand.Parameters.Add(Parameter);
MyCommand.ExecuteNonQuery();
MyConnection.Close();
Load_reload(sender, e);
}
try
{
string Connect = "server=" +
KURSACH_III.Properties.Settings.Default.Data_Base_IP + ";database=" +
KURSACH_III.Properties.Settings.Default.Data_Base_Name + ";port=" +
84
KURSACH_III.Properties.Settings.Default.Port + ";user=" +
KURSACH_III.Properties.Settings.Default.Server_Log + ";password= " +
KURSACH_III.Properties.Settings.Default.Server_Password;
MySqlConnection MyConnection = new MySqlConnection(Connect);
MySqlCommand MyCommand = new MySqlCommand();
if (Reader.Read())
{
Comment.Text = Reader.GetFieldValue<string>(0);
}
Reader.Close();
MyConnection.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
{
if (Exit)
{
DialogResult df = MessageBox.Show("Вы действительно хотите
выйти?", "Выход", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
if (df == DialogResult.Yes) { Application.Exit(); }
}
}
}
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using MySql;
using MySql.Data.MySqlClient;
using System.IO;
using System.Collections;
using System.Xml;
using System.Xml.XPath;
using System.Xml.Linq;
using System.Text.RegularExpressions;
namespace KURSACH_III
{
public partial class Reader : Form
{
public bool Exit = true;
public int Book_ID;
public string Book_Name = "";
86
if (Reader.Read())
{
Book_Format = Reader.GetFieldValue<string>(0);
}
Reader.Close();
MyConnection.Close();
}
try
{
int Book_Format_ID = 0;
87
if (Reader.Read())
{
Book_Name = Reader.GetFieldValue<string>(1);
Book_Format_ID = Reader.GetFieldValue<int>(6);
Book_File_Pass = Reader.GetString(7);
}
Reader.Close();
MyConnection.Close();
this.Text = Book_Name;
try
{
Format_Idetigication(Book_Format_ID);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
if (Book_Format == ".fb2")
{
FB2_Reader();
88
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
if (Reader.Read())
{
Book_Chapter = Reader.GetFieldValue<int>(0);
}
}
WasRead();
Chapter_Out(Book_Chapter);
MyCommand.Parameters.Add(Parameter);
MyCommand.ExecuteNonQuery();
MyConnection.Close();
}
catch(Exception ex)
{ MessageBox.Show(ex.Message); }
}