Разработка базы данных для учёта работы магазина по продаже дисков и кассет

1.

МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ
федеральное государственное автономное образовательное учреждение высшего образования
«Национальный исследовательский ядерный университет «МИФИ»
Димитровградский инженерно-технологический институт –
филиал федерального государственного автономного образовательного учреждения высшего образования
«Национальный исследовательский ядерный университет «МИФИ»
(ДИТИ НИЯУ МИФИ)
КУРСОВАЯ КВАЛИФИКАЦИОННАЯ РАБОТА
ТЕМА:
Разработка базы данных для учёта работы
магазина по продаже дисков и кассет
Научный руководитель: преподаватель,
Ишмуратов Рамиль Равильевич
Выполнил: студент 4 курса 432 группы,
Яковлев Владислав Андреевич
Димитровград 2023

2.

АКТУАЛЬНОСТЬ
Эта тема актуальна, поскольку она касается необходимости
наличия базы данных для эффективного управления запасами,
продажами и другими операциями магазина дисков и кассет.

3.

ЦЕЛЬ
Создание программного продукта для магазина по продаже
кассет и дисков предназначено, чтобы автоматизировать
процесс поиска и добавления данных в базу.

4.

ФУНКЦИИ ПРОГРАММНОГО ПРОДУКТА
Данный программный продукт предусматривает две
пользовательские роли: «Обычный пользователь» и
«Администратор», поэтому для каждого из них предусмотрены
разные функции.

5.

ПОЛЬЗОВАТЕЛЬСКИЕ РОЛИ
Пользовательская роль (user role) – описание некоторой
совокупности пользователей и предполагаемого взаимодействия с
системой.

6.

ФУНКЦИИ ПРОГРАММНОГО ПРОДУКТА
Для пользовательской роли «Обычный пользователь»
предусмотрены следующие функции:
- аутентификация пользователя в системе
под пользовательской ролью «Пользователь»;
- просмотр таблиц;
- поиск по таблице;
- вывод на печать;
- экспорт таблиц (в формате .pdf);
- доступ к 5 диаграммам по таблицам;
- доступ к 5-ти запросам по таблице.

7.

ФУНКЦИИ ПРОГРАММНОГО ПРОДУКТА
Для пользовательской роли «Администратор» предусмотрены
следующие функции:
- аутентификация
пользователя в системе
под пользовательской
ролью «Администратор»;
- просмотр таблиц;
- поиск по таблице;
- обновление таблиц;
- добавление таблиц;
- удаление таблиц;
- экспорт таблиц (в формате
.pdf)
- вывод таблиц на печать;
- доступ к 5-ти запросам по
таблицам;
- доступ к 5 диаграммам по
таблицам.

8.

ФУНКЦИИ ПРОГРАММНОГО ПРОДУКТА
Исходя из вышеперечисленных функций 2-ух пользовательских
ролей, можно заметить, что у администратора есть те же функции,
что и обычного пользователя, но при этом администратор имеет
больше прав и функций.

9.

ФУНКЦИИ ПРОГРАММНОГО ПРОДУКТА
Исходя из этого, можно сделать следующий вывод:
Администраторы имеют полный доступ и контроль над
системой, включая возможность вносить изменения в настройки
систем. Обычные пользователи имеют ограниченный доступ и не
могут вносить общесистемные изменения без прав
администратора.

10.

ВХОДНЫЕ ДАННЫЕ
Для таблицы «Клиент»: имя, фамилия, почта, телефон.
Таблица 1 – Структура входных данных для таблицы
«Клиент»

11.

ВХОДНЫЕ ДАННЫЕ
Для таблицы «Поставка»: товар, поставщик, дата, количество.
Таблица 2 – Структура входных данных для таблицы
«Поставка»

12.

ВХОДНЫЕ ДАННЫЕ
Для таблицы «Поставщик»: название, контактное лицо, адрес,
телефон.
Таблица 3 – Структура входных данных для таблицы
«Поставщик»

13.

ВХОДНЫЕ ДАННЫЕ
Для таблицы «Продажа»: товар, клиент, дата, количество.
Таблица 4 – Структура входных данных для таблицы
«Продажа»

14.

ВХОДНЫЕ ДАННЫЕ
Для таблицы «Товар»: заголовок, описание, цена, доступность.
Таблица 5 – Структура входных данных для таблицы
«Товар»

15.

ВХОДНЫЕ ДАННЫЕ
Для таблицы «Авторизация»: пользователь, пароль.
Таблица 6 – Структура входных данных для таблицы
«Авторизация»

16.

ИНСТРУМЕНТАРИЙ РАЗРАБОТКИ
объектно-ориентированный язык программирования общего назначения C#
+
интерфейс программирования приложений (API), отвечающий за
графический интерфейс пользователя Windows Forms
система управления базами данных Microsoft Access 2016.

17.

ИНСТРУМЕНТАРИЙ РАЗРАБОТКИ
Аbode PDF Reader XI.
Microsoft PowerPoint 2021
Microsoft Word 2021

18.

ФУНКЦИОНАЛЬНАЯ СХЕМА

19.

ФУНКЦИОНАЛЬНАЯ СХЕМА

20.

ФУНКЦИОНАЛЬНАЯ СХЕМА

21.

ФУНКЦИОНАЛЬНАЯ СХЕМА

22.

ФУНКЦИОНАЛЬНАЯ СХЕМА

23.

ФУНКЦИОНАЛЬНАЯ СХЕМА

24.

ФУНКЦИОНАЛЬНАЯ СХЕМА

25.

ФУНКЦИОНАЛЬНАЯ СХЕМА

26.

ФУНКЦИОНАЛЬНАЯ СХЕМА

27.

ФУНКЦИОНАЛЬНАЯ СХЕМА

28.

СТРУКТУРНАЯ СХЕМА

29.

СЦЕНАРИЙ ПОЛЬЗОВАТЕЛЬСКОГО ИНТЕРФЕЙСА

30.

СЦЕНАРИЙ ПОЛЬЗОВАТЕЛЬСКОГО ИНТЕРФЕЙСА

31.

ИНТЕРФЕЙС ГЛАВНОЙ ФОРМЫ
Фрагмент кода (основной функционал)
private void button2_Click(object sender, EventArgs e)
{
this.Close();
}
private void button1_Click_1(object sender, EventArgs e)
{
Form2 form2 = new Form2();
this.Hide();
form2.Show();
}
private void button3_Click(object sender, EventArgs e)
{
DictionaryForm form = new DictionaryForm();
Hide();
ShowDialog();
Show();
}

32.

СПРАВКА
private void button1_Click(object sender, EventArgs e)
{
Form1 form1 = new Form1();
this.Hide();
form1.Show();
}

33.

ИНТЕРФЕЙС ВЫБОРА РОЛИ
Фрагмент кода (основной функционал)
private void button1_Click(object sender, EventArgs e)
{
Form3 form3 = new Form3();
this.Hide();
form3.Show();
}
private void button2_Click(object sender, EventArgs e)
{
Form5 form5 = new Form5();
this.Hide();
form5.Show();
}

34.

ИНТЕРФЕЙС ФОРМЫ РЕГИСТРАЦИИ ЗА ПОЛЬЗОВАТЕЛЯ
Фрагмент кода (основной функционал)
private void insterUsernameToDatabase(string username)
{
using (OleDbConnection connection = new
OleDbConnection($@"Provider=Microsoft.ACE.OLEDB.12.0;Data
Source={Storage.pathDb};"))
{
connection.Open();
string query = "INSERT INTO Авторизация (пользователь)
VALUES (@username)";
OleDbCommand command = new OleDbCommand(query,
connection);
command.Parameters.AddWithValue("@пользователь",
username);

35.

ИНТЕРФЕЙС ФОРМЫ АВТОРИЗАЦИИ ЗА ПОЛЬЗОВАТЕЛЯ
Фрагмент кода (основной функционал)
private void button1_Click(object sender, EventArgs e)
{
string username = textBox1.Text;
if (doesUsernameExist(username))
{
Hide();
Form6 form6 = new Form6();
form6.Show();
Storage.role = "client";
}
else
{
MessageBox.Show("Имя пользователя не найдено или
введено неккоретно!");
}
}

36.

ИНТЕРФЕЙС ФОРМЫ АВТОРИЗАЦИИ ЗА АДМИНИСТРАТОРА
Фрагмент кода (основной функционал)
private bool doesAccountExist(string username, string password)
{
using (OleDbConnection connection = new
OleDbConnection($@"Provider=Microsoft.ACE.OLEDB.12.0;Data
Source={Storage.pathDb}"))
{
connection.Open();
string query = "select * from Авторизация where
пользователь = @username and пароль = @password";
OleDbCommand command = new OleDbCommand(query,
connection);
command.Parameters.AddWithValue("@пользователь",
username);
command.Parameters.AddWithValue("@пароль", password);

37.

ИНТЕРФЕЙС ВЫБОРА ТАБЛИЦЫ
(общая форма за пользователя и администратора)
Фрагмент кода (основной функционал)
private void button1_Click(object sender, EventArgs e)
{
Form7 form7 = new Form7();
this.Hide();
form7.ShowDialog();
Show();
}
private void button2_Click(object sender, EventArgs e)
{
Hide();
Form8 form8 = new Form8();
this.Hide();
form8.ShowDialog();
Show();
}

38.

ИНТЕРФЕЙС ПРОСМОТРА ТАБЛИЦЫ
(На примере таблицы «Клиент». Просмотр от пользователя).
Фрагмент кода (основной функционал)
private void button6_Click(object sender, EventArgs e)
{
string searchValue = textBox1.Text; // Значение для поиска
try
{
// Создание подключения к базе данных
using (OleDbConnection connection = new
OleDbConnection(connectionString))
{
connection.Open(); // Открытие подключения
// Запрос для поиска значения в таблице
string query = "SELECT * FROM Клиент WHERE Имя =
@searchValue"; // Замените TableName и

39.

ИНТЕРФЕЙС ПРОСМОТРА ТАБЛИЦЫ
(На примере таблицы «Клиент». Просмотр от администратора).
Фрагмент кода (основной функционал)
private void Form7_Load(object sender, EventArgs e)
{
OleDbConnection dbConnection = new
OleDbConnection(connectionString);
dbConnection.Open();
string query = "SELECT * FROM Клиент";
OleDbCommand dbCommand = new OleDbCommand(query,
dbConnection);
OleDbDataReader dbDataReader = dbCommand.ExecuteReader();
if (dbDataReader.HasRows == false)
{
MessageBox.Show("Данные не найдены!", "Ошибка!");

40.

ИНТЕРФЕЙС ПРОСМОТРА ДИАГРАММ
(Просмотр от лица администратора или пользователя).
Фрагмент кода (основной функционал)
private void button1_Click(object sender, EventArgs e)
{
OleDbConnection connection = new
OleDbConnection(connectionString);
connection.Open();
chart1.Series.Clear();
string query = "SELECT Товар.заголовок,
SUM(Продажа.Количество) AS Сумма FROM Товар INNER JOIN
Продажа ON Продажа.Код_товар = Товар.Код GROUP BY
Товар.заголовок;";
Series dataSeries = new Series("Data");
dataSeries.ChartType = SeriesChartType.Column;
using (OleDbCommand command = new OleDbCommand(query,
connection))

41.

ЗАКЛЮЧЕНИЕ
В результате разработки выпускной квалификационной
работы:
1) Исследованы:
- предметная область;
- входные и выходные данные;
- функции программного продукта;
- назначение программного продукта.
2. Разработаны:
- функциональная схема программного продукта;
- структурная схема программного продукта;
- файл справочной информации программного продукта.

42.

ЗАКЛЮЧЕНИЕ
3. Выбрана наиболее эффективная среда программирования –
язык программирования C# и среда разработки Windows
Forms.
4. Описаны технологии создания пользовательского
интерфейса, технологии создания структуры базы данных,
технология создания справочной системы и технология
формирования отчётности.

43.

ЗАКЛЮЧЕНИЕ
5. Разработан программный продукт «Магазин по продаже
кассет и дисков».
6. Программный продукт протестирован методом «Черного
ящика». Выявлены ошибки при подключении базы данных к
программному продукту, которые в дальнейшем были
устранены.

44.

ПЕРСПЕКТИВА РАЗВИТИЯ
- редактирование таблиц;
- добавление новых клиентов;
- добавление новых товаров;
- добавление новых поставщиков;
- добавление новых поставок;
- добавление новых заказов.

45.

СПАСИБО ЗА ВНИМАНИЕ!!!
English     Русский Правила