Міністерство освіти та науки України
Національний університет “Львівська політехніка”
Інститут комп’ютерних наук та інформаційних технологій
Лабораторна робота №6
на тему:
Розробка алгоритмів, програм, тестових прикладів з використанням програмних продуктів
Мета: навчитися розробляти алгоритми, програми, тестові приклади з використанням програмних продуктів.
Завдання:
Розробити приклад програми, яка б працювала із зазначеною програмою.
Застосувати найновіші засоби реалізації.
Виконання завдання
У процесі виконання даної роботи проаналізовано предметну область та проведено збір необхідної інформації про те, як функціонує бібліотека, яким є процес надходження літератури, які види та запити користувачів тощо. Проведено аналіз даних, з якими буде працювати база даних.
Основними користувачами системи є бібліотекар та користувачі, з обмеженими правами. Вони використовуватимуть систему для отримання інформації, яка необхідна їм для пошуку певного типу періодичного видання (журналу, газети, часопису та ін.), певної книги та багато іншого.
Бібліотекар – це особа, яка має доступ до функцій бібліотекаря та користувача, також може редагувати користувацькі дані, дані про книги та видання.
Користувач – особа, яка має доступ лише до обмеженого кола функцій, таких як пошук літератури, замовлення літератури, перегляд власного формуляру та персональних даних.
Для функціювання закладу встановлено чітку процедуру обліку в бібліотеці. При надходженні запиту на видачу книги, бібліотекар оформляє форму видачі певної літератури, записує хто бере дану літературу. Після заповнення всіх відповідних полів, замовлення попадає у відповідну табличку бази даних.
Розробка моделі даних
Логічна модель - це загальний погляд на дані, модель даних в певній предметній області. Інколи її називають концептуальною моделлю даних. Такою моделлю і є модель типу сутність-зв' язок. [1]
База даних складається з наступних основних таблиць:
Тип виданої літератури – проміжна таблиця, за допомогою якої проводиться з’єднання з іншими типами літератури;
Видавництво – таблиця, в якій відображаються дані видавництва;
Книги – таблиця, в якій відображається список книг;
Періодичні видання – таблиця, в якій відображаються такі періодичні видання як: газети, журнали та інші;
Замовлення – таблиця, в якій відображаються замовлення користувачів;
Аутентифікація – таблиця, в якій відображаються дані авторизації користувача;
Персональні дані користувача – таблиця, в якій відображаються персональні дані користувача;
Вибуття користувача – таблиця, в якій відображаються дані після завершення навчання, тобто зберігаються персональні дані користувача;
Тип літератури – таблиця, в якій відображаються різні типи літератури;
Вибуття книг – таблиця, в якій відображаються книги після закінчення терміну експлуатації;
Вибуття видач книг – таблиця, в якій відображаються дані про те які книги і хто брав у користування;
Видача/Повернення літератури – таблиця, в якій відображаються дата видачі та дата повернення літератури;
Додаткова інформація – таблиця, в якій відображається інформація про місце навчання або роботи користувача.
Рис 1.1 Модель бази даних
Розробка програмного подукту
Опис роботи додатку
Головна форма складається з полів:
області відображення даних, на якій відображається уся інформація;
пунктів меню, за допомогою яким проводяться різні маніпуляції з даними, які включають в себе додавання записів про книги, періодичні видання, користувачів та ін.;
вибір таблиці для перегляду, за допомогою випадаючого списку, після чого підтвердження за допомогою кнопочки «Завантажити дані»;
кнопки для швидкого виклику форми пошуку та кнопки виходу (завершення).
Також додатково на формі розташована панель «Додавання, яка призначена для швидкого доступу до таких властивостей як: Додати користувача, Додати періодичні видання, Додати книгу. Переглянути відображення головної форми можна на рис. 1.2.
Рис 1.2 Вигляд головної форми
Форма для пошуку літератури складається з двох логічно розділених блоків даних:
верхній блок це кнопка «Книги» та «Періодичні видання», які призначені для більш детального пошуку літератури по відповідних категоріях;
нижній блок це загальний пошук даних, які проводиться по табличках книги та періодичні видання. Він призначений для узагальненого пошуку літератури та визначення до якого типу літератури відноситься.
Основне призначення даної форми – це структуризація пошуку інформації. Переглянути відображення відповідної форми можна на рис 1.3. [4]
Рис 1.3 Форма загального пошуку
Форма для пошуку книг у бібліотечних фондах, за різноманітними критеріями, такими як пошук по автору, назві книги, пошук по видавництві або структурному підрозділу. Також є можливість задати конкретний пошук конкретної літератури. Форма для пошуку книг зображена на рис. 1.4.
Рис 1.4 Форма для пошуку книг
Клієнтський додаток
Цей додаток призначений для користувачів, які бажають мати віддалений доступ до бібліотечних фондів. Користувач має право проводити пошук бо базі даних та переглядати власний формуляр. Також користувач має змогу замовити собі певну літературу, не виходячи з аудиторії. Даний додаток представлений на рис. 1.5.[3]
Рис 1.5 Клієнтський додаток
Код програми головного вікна:
Form1.cs
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;
namespace Бібліотека
{public partial class Form1 : Form
{//Стрічка підєднання до БД Access
string conString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=Бібліотека.accdb;Persist Security Info=False;";
public Form1()
{ InitializeComponent(); }
private void Form1_Load(object sender, EventArgs e)
{ IsMdiContainer = true;
//задає довжину і ширину батьківської MDI-форми
this.Width = 1000;
this.Height = 600; }
private void вихідToolStripMenuItem_Click(object sender, EventArgs e)
{ this.Close(); }
private void книгиToolStripMenuItem_Click(object sender, EventArgs e)
{ viewBooks vBook = new viewBooks();
vBook.MdiParent = this;
//використовуємо Ado.net клас для того що б взнати кількість записів
UseBD uDB = new UseBD(conString);
uDB.OpenCon(); //Підєднання до БД
//Міняємо назву дочірньої MDI-форми яка відображає всі записи в БД
vBook.Text = "В бібліотеці " + uDB.Cout().ToString() + " книги";
vBook.Show();
uDB.CloseCon(); // Відєднання від БД }
private void студентиToolStripMenuItem_Click(object sender, EventArgs e)
{ viewStudents vStudents = new viewStudents();
vStudents.MdiParent = this;
UseBD uDB = new UseBD(conString);
uDB.OpenCon(); //Підєднання до БД
//Міняємо назву дочірньої MDI-форми яка відображає всі записи в БД
// vStudents.Text = "В БД " + uDB.Cout().ToString() + " записів!!!!";
vStudents.Show();
uDB.CloseCon(); // Відєднання від БД }
private void видачаОтриманняКнигToolStripMenuItem_Click(object sender, EventArgs e)
{ viewIO_book vIO_books = new viewIO_book();
vIO_books.MdiParent = this;
UseBD uDB = new UseBD(conString);
uDB.OpenCon(); //Підєднання до БД
//Міняємо назву дочірньої MDI-форми яка відображає всі записи в БД
// vIO_books.Text = "В БД " + uDB.Cout().ToString() + " записів!!!!";
vIO_books.Show();
uDB.CloseCon(); // Відєднання від БД }
private void книгуToolStripMenuItem_Click(object sender, EventArgs e)
{ AddBooks add_books = new AddBooks();
add_books.MdiParent = this;
//використовуємо Ado.net клас для того що б взнати кількість записів
UseBD uDB = new UseBD(conString);
uDB.OpenCon(); //Підєднання до БД
//Міняємо назву дочірньої MDI-форми яка відображає всі записи в БД
add_books.Show();
uDB.CloseCon(); // Відєднання від БД }
private void студентаToolStripMenuItem_Click(object sender, EventArgs e)
{ AddStudents add_students = new AddStudents();
add_students.MdiParent = this;
UseBD uDB = new UseBD(conString);
uDB.OpenCon(); //Підєднання до БД
//Міняємо назву дочірньої MDI-форми яка відображає всі записи в БД
add_students.Show();
uDB.CloseCon(); // Відєднання від БД }
private void видачуОтриманняКнигиToolStripMenuItem_Click(object sender, EventArgs e)
{ Vudach_book vud_book = new Vudach_book();
vud_book.MdiParent = this;
UseBD uDB = new UseBD(conString);
uDB.OpenCon(); //Підєднання до БД
//Міняємо назву дочірньої MDI-форми яка відображає всі записи в БД
vud_book.Show();
uDB.CloseCon(); // Відєднання від БД }
private void отриманняКнигиToolStripMenuItem_Click(object sender, EventArgs e)
{ Zdacha_book zd_book = new Zdacha_book();
zd_book.MdiParent = this;
UseBD uDB = new UseBD(conString);
uDB.OpenCon(); //Підєднання до БД
//Міняємо назву дочірньої MDI-форми яка відображає всі записи в БД
zd_book.Show();
uDB.CloseCon(); // Відєднання від БД }
private void поІменіToolStripMenuItem_Click(object sender, EventArgs e)
{ DeleteStud_name del_stud_name = new DeleteStud_name();
del_stud_name.MdiParent = this;
UseBD uDB = new UseBD(conString);
uDB.OpenCon(); //Підєднання до БД
//Міняємо назву дочірньої MDI-форми яка відображає всі записи в БД
del_stud_name.Show();
uDB.CloseCon(); // Відєднання від БД }
private void заГрупоюToolStripMenuItem_Click(object sender, EventArgs e)
{ DeleteStud_group del_stud_group = new DeleteStud_group();
del_stud_group.MdiParent = this;
UseBD uDB = new UseBD(conString);
uDB.OpenCon(); //Підєднання до БД
//Міняємо назву дочірньої MDI-форми яка відображає всі записи в БД
del_stud_group.Show();
uDB.CloseCon(); // Відєднання від БД }
private void поНазвіToolStripMenuItem_Click(object sender, EventArgs e)
{ DeleteBook_nazva del_book_nazva = new DeleteBook_nazva();
del_book_nazva.MdiParent = this;
UseBD uDB = new UseBD(conString);
uDB.OpenCon(); //Підєднання до БД
//Міняємо назву дочірньої MDI-форми яка відображає всі записи в БД
del_book_nazva.Show();
uDB.CloseCon(); // Відєднання від БД }
private void поІнвентаризаційномуНомеріToolStripMenuItem_Click(object sender, EventArgs e)
{ DeleteBook_inventar del_book_invent = new DeleteBook_inventar();
del_book_invent.MdiParent = this;
UseBD uDB = new UseBD(conString);
uDB.OpenCon(); //Підєднання до БД
//Міняємо назву дочірньої MDI-форми яка відображає всі записи в БД
del_book_invent.Show();
uDB.CloseCon(); // Відєднання від БД }
private void проПрограмуToolStripMenuItem_Click(object sender, EventArgs e)
{ AboutBox1 proprog = new AboutBox1();
proprog.MdiParent = this;
proprog.Show(); }
private void пошукToolStripMenuItem_Click(object sender, EventArgs e)
{ SearchStudPIB searstpib = new SearchStudPIB();
searstpib.MdiParent = this;
UseBD uDB = new UseBD(conString);
uDB.OpenCon(); //Підєднання до БД
//Міняємо назву дочірньої MDI-форми яка відображає всі записи в БД
searstpib.Show();
uDB.CloseCon(); // Відєднання від БД }
private void пошукКнигПоАвторуToolStripMenuItem_Click(object sender, EventArgs e)
{ SearchBookss searhcbook = new SearchBookss();
searhcbook.MdiParent = this;
//використовуємо Ado.net клас для того що б взнати кількість записів
UseBD uDB = new UseBD(conString);
uDB.OpenCon(); //Підєднання до БД
//Міняємо назву дочірньої MDI-форми яка відображає всі записи в БД
searhcbook.Show();
uDB.CloseCon(); // Відєднання від БД } } }
Висновок: в даній лабораторній роботі навчися розробляти алгоритми, програми, тестові приклади з використанням програмних продуктів.
Список літератури:
http://library.kr.ua/zakon/zakbibsprv2.html [Інтернет ресурс]: інформаційний сайт – Закон України “Про бібліотеку та бібліотечну справу”
С# 3.0 Полное руководство. / Шилдт Г. 2010.
Visual С# на примерах. / Абрамян М.Э. 2008р.
C# 4.0 и платформа.NET4 для профессионалов. / Нейгел К., Ивьен Б., Глинн Дж., Уотсон К. - 2011.