Проектирование подсистемы «Салон красоты»


Анализ информационных потоков



бет2/2
Дата20.12.2023
өлшемі3,42 Mb.
#141808
түріКурсовой проект
1   2

1.2 Анализ информационных потоков


Входные условно-постоянные данные:



  • Клиент (id клиента,дата, время, id услуги, id мастер, стоимость, номер телефона);

  • Персонал (ФИО, id должность, номре телефона);

  • Должность (id должность, название);

  • Прайс-лист (id услуги, стоимость);

  • Услуги(id, название);

Входные оперативные данные:

  • Клиенты (id клиента, id услуги, id мастеры, дата и время);

  • Сотрудники (ФИО, id должность, номре телефона, );

  • Должность (id должность, название);

  • Прайс-лист (id услуги, стоимость);

  • Услуги(id, название);

1.3 Создание инфологической модели


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


Сущность – это объект, о котором в БД будет накапливаться информация.
Атрибут - поименованная характеристика сущности, определяющая его свойства и принимающая значения из некоторого множества значений. Каждый атрибут обеспечивается именем, уникальным в пределах сущности.
Связь -поименованная графически изображаемая ассоциация, устанавливаемая между сущностями и представляющая собой абстракцию набора отношений, которые систематически возникают между различными видами предметов в реальном мире.
Для проектируемой базы данных были определены следующие сущности:

  • Клиент;

  • Персоналы;

  • Должность;

  • Прайс -лист;

  • Услуги;

Для каждой сущности определен набор характеризующих ее атрибутов:



  • Клиент (дата,время,id услуги, id мастер, стоимость, номер телефона);

  • Персонал (ФИО, id должность, номер телефона);

  • Должность (id должность);

  • Прайс-лист (id услуги, стоимость);

  • Услуги (id, название);

На основании указанных сущностей и их атрибутов были разработаны инфологическая модель базы данных на языке «Таблицы-связи» (рисунок 1.1).



Рисунок 1.1 - Инфологическая модель базы данных системы «Почта» на языке «Таблицы-связи»

1.3 Создание даталогической модели


Таблица 1.1 – Даталогическая модель сущности «Услуги»



ТАБЛИЦА

Имя

Тип данных

Длина

Ключевое поле (да/нет, если да, то указать первичный или внешний)

Индексированное поле (да/нет, если да, то указать тип индекса)

Обязательное поле (да/нет)

Ограничение домена (условие на значение)

Значение по умолчанию

Услуги

ID

int




Да, первичный

Да, кластеризованный

Да

Нет

Счетчик

Название

Varchar(max)

100

Нет

Нет

Да

Нет




Должность

ID

int




Да, первичный

Да, кластеризованный

Да

Нет

Счетчик

Должность

int




Нет

Нет

Да

Нет




Прайс-лист

ID

int




Да, первичный

Да, кластеризованный

Да

Нет

Счетчик

ID услуги

int




Нет

Нет

Да

Нет




Стоимость

Varchar(max)

100

Нет

Нет

Да

Нет




Персоналы

ID

int




Да, первичный

Да, кластеризованный

Да

Нет

Счетчик

ФИО

Varchar(max)

100

Нет

Нет

Да

Нет




телефон

Varchar(max)

100

Нет

Нет

Да

Нет







IID должность

int




Нет

Нет

Да

Нет




Клиенты



ID

int




Да, первичный

Да, кластеризованный

Да

Нет

Счетчик

Клиенты

Varchar(max)

100

Нет

Нет

Да

Нет




Дата

Data




Нет

Нет

Да

Нет




Время

Time




Нет

Нет

Да

Нет







ID услуги

Int




Нет

Нет

Да

Нет







ID мастер

Int




Нет

Нет

Да

Нет







Стоимость

Int




Нет

Нет

Да

Нет







Телефон

Varchar(50)

50

Нет

Нет

Да

Нет




1.4 Выбор технических и программных средств реализации БД и клиентского приложения


Для реализации базы данных информационной системы «Салон красоты» выбрана СУБД «MicrosoftSQLServer 2016». Для написания клиентского приложения, реализующего пользовательский интерфейс, решено использовать MicrosoftVisualStudio. Для формирования отчетов необходимо наличие пакета MSOffice.
В качестве технических средств реализации БД рекомендуется использовать компьютеры следующей конфигурации:

  • для сервера: CPU Intel Core i5 12500 BOX3 GHz/6cores/ Intel UHD Graphics 770/HDD/ Сетевая карта/ CD-ROM/ ;

  • для клиента:CPU Intel Core i3 12100F BOX3.3 GHz-4cores/DDR 4 Гб/ HDD/ Сетевая карта/ CD-ROM/ Лазерный принтер.

2 СОЗДАНИЕ БАЗЫ ДАННЫХ


2.1 Описание структуры БД


База данных подсистемы «Салон красоты» хранится в файле «Salonkrasoty.mdf». База данных является реляционной и состоит из 5 взаимосвязанных таблиц:



  1. Клиент (дата,время,id услуги, id мастер, стоимость, номер телефона);

  2. Персонал (ФИО, id должность, номер телефона);

  3. Должность (id должность);

  4. Прайс-лист (id услуги, стоимость);

  5. Услуги (id, название);

2.2 Описание свойств таблиц БД

Таблицы в БД – это объекты базы данных, предназначенные для хранения пользовательских данных.


На рисунках 2.1 – 2.6 представлены свойства таблицы базы данных.

Рисунок 2.1 – Свойства таблицы «Услуги»



Рисунок 2.2 – Свойства таблицы «Должность»

Рисунок 2.3 – Свойства таблицы «Персонал»

Рисунок 2.4 – Свойства таблицы «Прайс-лист»

Рисунок 2.5 – Свойства таблицы «Клиент»
2.3 Описание связей между таблицами БД и условий целостности данных
В процессе проектирования базы данных было решено использовать ограничения целостности, определенные этапе даталогического проектирования. На рисунке 2.6 приведена схема отношений между таблицами базы данных.



Рисунок 2.6 – Схема отношений между таблицами базы данных


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

3.1 Описание функций системы

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


Для корректной работы разработанного приложения необходимо, чтобы база данных «salonkrasoty.mdf» была подключена к SQLServer. При этом имя сервера не специфицируется. Подключение к самой базе данных реализовано внутренними средствами приложения.
При запуске приложения появляется главное окно программы.
3.2 Описание способов просмотра, редактирования, удаления данных

При запуске появляется главное окно программы (рисунок 3.1). На нем расположено главное меню, а также три кнопки – Добавить запись, Редактировать запись и Удалить запись. В центре в темной тонкой рамке выводятся таблицы базы данных. Кнопки снизу позволяют увидеть дополнительные окна, структура которых изменяется в зависимости от таблицы.


Для просмотра данных в таблицах необходимо выбрать нужную таблицу из пункта меню. На рисунках 3.2 – 3.6 представлены примеры просмотра содержимого таблиц. Для добавления записи в таблицу необходимо воспользоваться соответствующей кнопкой на главном окне. В зависимости от того, какая таблица отображается в данный момент на экране, пользователю будет предложена форма для добавления данных. На рисунках 3.1 – 3.17 показаны формы добавления данных.

Рисунок 3.1- Главное окно программы



Рисунок 3.2- Просмотр таблицы «Клиенты»



Рисунок 3.3- Просмотр таблицы «Персонал»

Рисунок 3.4- Просмотр таблицы «Должность»

Рисунок 3.5- Просмотр таблицы «Прайс-лист»

Рисунок 3.6- Просмотр таблицы «Услуги»



Рисунок 3.7- Форма добавления данных в таблицу «должность»

Рисунок 3.8- Форма добавления данных в таблицу «клиент»

Рисунок 3.9- Форма добавления данных в таблицу «персонал»

Рисунок 3.10- Форма добавления данных в таблицу «Прайс-лист»

Рисунок 3.11- Форма добавления данных в таблицу «услуги»

Рисунок 3.12- Форма добавления данных в таблицу «Имя клиента»

Рисунок 3.13- Форма добавления данных в таблицу «IDуслуги»

Рисунок 3.14- Форма добавления данных в таблицу «ID должность»

Рисунок 3.15- Форма добавления данных в таблицу «Название»
При необходимости редактировать информацию следует воспользоваться кнопкой «Редактировать запись» главного окна. Система откроет ту же форму, что и на добавление данных, но с заполненными полями в соответствии с выделенной строкой таблицы. Пример показан на рисунках 3.16, 3.17.

Рисунок 3.16 – Выделение записи для редактирования

Рисунок 3.17 – Заполненные поля в форме редактирования

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


3.3 Отчеты системы
В подсистеме «Салон красоты» предусмотрено 5 запросов:

  1. Поиск клиента по ФИО

  2. Прайс-лист

  3. Список сотрудников по должность

  4. Список услуги

  5. Должности

Для первого запроса необходим ввод дополнительной информации. Это осуществляется в отдельном окне (рисунок 3.18). На рисунках 3.30 – 3.35 представлены результаты запросов.



Рисунок 3.18 – Поиск по ФИО



Рисунок 3.19 – Запрос о списке по ФИО

Рисунок 3.20 – Запрос о списке по ФИО
Подсистема «Салон красоты» позволяет формировать три отчета:

  • Список клиенты по ФИО

  • Список услуги по сумму и idуслуги

  • Список персонали по должностью

Для формирования отчетов предусмотрен соответствующий пункт меню.



Рисунок 3.21 – Форма ввода данных для отчета



Рисунок 3.22 Запрос о списке по стоимость

Рисунок 3.23Запрос о списке по IDуслуги

Рисунок 3.24 – Список по стоимость



Рисунок 3.25 – Запрос по ID должности



Рисунок 3.26 Запрос персонали по ID должности



Рисунок 3.27 Список персонал по ID должности



Рисунок 3.28 – Запрос ID услуги по название

Рисунок 3.29 – Запрос услуги по название



Рисунок 3.30 Список услуги по название
Для первого отчета необходимы входные данные. Форма ввода данных представлена. Отчеты представлены на. Для всех отчетов реализован экспорт в MSWord. Примеры экспорта показаны на рисунках 3.31 – 3.35.

Рисунок 3.31 – Экспорт отчета №1

Рисунок 3.32 – Экспорт отчета №2



Рисунок 3.33 – Экспорт отчета №3

Рисунок 3.34 – Экспорт отчета №4

Рисунок 3.35 – Экспорт отчета №5
ЗАКЛЮЧЕНИЕ

Согласно заданию индивидуальному было разработано программное обеспечения для работы подсистемы «Салон красоты». База данных системы разрабатывалась в SQLServer и подключалась к системе посредством библиотек, доступных в среде MicrosoftVisualStudio.


В ходе выполнения курсового проекта изучена среда MSSQLServer. Произведена разработка программного обеспечения с использованием SQL баз данных на языке программирования С#.
Была спроектирована и разработана система «Салон красоты».
В ходе разработки курсового проекта были выполнены следующие виды работ:

  • разработка структуры базы данных;

  • создание базы данных;

  • разработка клиентского приложения, ориентированное на сбор, хранение, поиск и обработку информации;

Данная система имеет следующие функции:

  • Отображение таблиц Базы данных.

  • Добавление данных в таблицы.

  • Запросы и Отчеты.

  • Экспорт в Wordотчетов.

Система удовлетворяет всем требованиям, указанным в задании.
По мере необходимости система может быть модернизирована и расширена.

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ



  1. ПетковичД. Microsoft SQL Server 2016. Руководство для начинающих. – СПб: БХВ-Петербург, 2016. – 753 с.

  2. Бен-ГанИ. Microsoft SQL Server 2008. Основы T-SQL. СПб: БХВ-Петербург, 2013. –430 с.

  3. Уолтерс Р., Коулс М., Клаудио Ф. SQL Server 2012. Ускоренный курс для профессионалов. – М.: Вильямс, 2015. – 768 с.

  4. Коннолли Т., Бегг К. Базы данных. Проектирование, реализация и сопро-вождение. Теория и практика – М.: Вильямс, 2013

  5. Карпова Т.С. Базы данных: модели, разработка, реализация. – СПб.: Питер, 2013. – 532с.

  6. Джозеф Ратт. LINQ язык интегрированных запросов в C# для профессионалов. – Москва, 2014. –241 с .

  7. Мэтью Мак-Дональд WindowsPresentationFoundation в .Net 3.5 С примерами на С# - Москва 2014.

  8. Хедерсон К.. Профессиональное руководство по SQL Server - Спб.: Питер, 2016. – 619с.

  9. ХотекМ. Microsoft SQL Server 2008. Реализация и обслуживание. Учебный курс Microsoft (+ CD-ROM). – М.: Русская редакция, 2013. – 576 с.

  10. Нилсен П. SQL Server 2005. Библия пользователя. – М.: Вильямс, 2014. – 1232 с.

  11. Харрингтон Д. Проектирование объектно-ориентированных баз данных. – М.: ДМК Пресс, 2014. – 459с.

  12. Чеканов А. Базы данных: от проектирования до разработки приложений. – СПб.: Питер, 2015. – 746с.

ПРИЛОЖЕНИЕА
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
usingstatic System.Windows.Forms.VisualStyles.VisualStyleElement;

namespace salon_krasoty


{
publicpartialclassForm1 : Form
{
publicint tableNumber = 0;
publicForm1()
{
InitializeComponent();
}

privatevoidклиентыToolStripMenuItem_Click(object sender, EventArgs e)


{
tableNumber = 1;
label1.Text = "klient";
string CommandText = "SELECT * FROM dbo.klient"; //запроснавыборкуданныхизтаблицы

string ConnectionString = @"Data Source=WIN-K7865TJEBIT;Initial Catalog=salonkrasoty;Integrated Security=True";


// WIN-6P08B1Q3E7S - имя SQL Server
// Agentstvo - имябазыданных

SqlConnection conn = new SqlConnection();


conn.ConnectionString = ConnectionString;
SqlCommand com = new SqlCommand(CommandText, conn);
SqlDataAdapter dataAdapter = new SqlDataAdapter(com);
DataSet ds = new DataSet();
dataAdapter.Fill(ds, "dbo.klient");
dataGridView1.DataSource = ds.Tables["dbo.klient"].DefaultView;

}


privatevoidдолжностьToolStripMenuItem_Click(object sender, EventArgs e)
{
tableNumber = 2;
label1.Text = "doljnost";
string CommandText = "SELECT * FROM dbo.doljnost"; //запроснавыборкуданныхизтаблицы

string ConnectionString = @"Data Source=WIN-K7865TJEBIT;Initial Catalog=salonkrasoty;Integrated Security=True";


// WIN-6P08B1Q3E7S - имя SQL Server
// Agentstvo - имябазыданных

SqlConnection conn = new SqlConnection();


conn.ConnectionString = ConnectionString;
SqlCommand com = new SqlCommand(CommandText, conn);
SqlDataAdapter dataAdapter = new SqlDataAdapter(com);
DataSet ds = new DataSet();
dataAdapter.Fill(ds, "dbo.doljnost");
dataGridView1.DataSource = ds.Tables["dbo.doljnost"].DefaultView;

}
privatevoidперсоналToolStripMenuItem_Click(object sender, EventArgs e)


{
tableNumber = 3;
label1.Text = "personali";
string CommandText = "SELECT * FROM dbo.personali"; //запроснавыборкуданныхизтаблицы

string ConnectionString = @"Data Source=WIN-K7865TJEBIT;Initial Catalog=salonkrasoty;Integrated Security=True";


// WIN-6P08B1Q3E7S - имя SQL Server
// Agentstvo - имябазыданных

SqlConnection conn = new SqlConnection();


conn.ConnectionString = ConnectionString;
SqlCommand com = new SqlCommand(CommandText, conn);
SqlDataAdapter dataAdapter = new SqlDataAdapter(com);
DataSet ds = new DataSet();
dataAdapter.Fill(ds, "dbo.personali");
dataGridView1.DataSource = ds.Tables["dbo.personali"].DefaultView;
}

privatevoidпрайслистToolStripMenuItem_Click(object sender, EventArgs e)


{
tableNumber = 4;
label1.Text = "price-list";
string CommandText = "SELECT * FROM dbo.[price-list]"; //запроснавыборкуданныхизтаблицы

string ConnectionString = @"Data Source=WIN-K7865TJEBIT;Initial Catalog=salonkrasoty;Integrated Security=True";


// WIN-6P08B1Q3E7S - имя SQL Server
// Agentstvo - имябазыданных

SqlConnection conn = new SqlConnection();


conn.ConnectionString = ConnectionString;
SqlCommand com = new SqlCommand(CommandText, conn);
SqlDataAdapter dataAdapter = new SqlDataAdapter(com);
DataSet ds = new DataSet();
dataAdapter.Fill(ds, "dbo.[price_list]");
dataGridView1.DataSource = ds.Tables["dbo.[price_list]"].DefaultView;

}


privatevoid toolStripMenuItem2_Click(object sender, EventArgs e)
{
}

privatevoidуслугиToolStripMenuItem_Click(object sender, EventArgs e)


{
tableNumber = 5;
label1.Text = "uslugi";
string CommandText = "SELECT * FROM dbo.uslugi"; //запроснавыборкуданныхизтаблицы

string ConnectionString = @"Data Source=WIN-K7865TJEBIT;Initial Catalog=salonkrasoty;Integrated Security=True";


// WIN-6P08B1Q3E7S - имя SQL Server
// Agentstvo - имябазыданных

SqlConnection conn = new SqlConnection();


conn.ConnectionString = ConnectionString;
SqlCommand com = new SqlCommand(CommandText, conn);
SqlDataAdapter dataAdapter = new SqlDataAdapter(com);
DataSet ds = new DataSet();
dataAdapter.Fill(ds, "dbo.uslugi");
dataGridView1.DataSource = ds.Tables["dbo.uslugi"].DefaultView;
}

privatevoidпоискКлиентаПоФИОToolStripMenuItem_Click(object sender, EventArgs e)


{
Form7 form7 = new Form7();
form7.ShowDialog();
}

privatevoidсписокКлиентовМастераToolStripMenuItem_Click(object sender, EventArgs e)


{
Form9 form9 = new Form9();
form9.ShowDialog();

}


privatevoidвордToolStripMenuItem_Click(object sender, EventArgs e)
{
Microsoft.Office.Interop.Word.Application WordApp = new Microsoft.Office.Interop.Word.Application();
Microsoft.Office.Interop.Word.Document doc = WordApp.Documents.Add();
Microsoft.Office.Interop.Word.Table wordTable;
doc.Paragraphs[1].Range.ParagraphFormat.Alignment = Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphCenter;
doc.Paragraphs[1].Range.ParagraphFormat.CharacterUnitFirstLineIndent = 0;
string name = label1.Text;
doc.Paragraphs[1].Range.Text = name;
doc.Paragraphs.Add(Type.Missing);
doc.Paragraphs.Add(Type.Missing);
doc.Paragraphs.Add(Type.Missing);
doc.Paragraphs.Add(Type.Missing);
doc.Paragraphs.Add(Type.Missing);
string data_rep = "Датаформированияотчета: " + DateTime.Now.ToString();
doc.Paragraphs[4].Range.Text = data_rep;
doc.Paragraphs[5].Range.Tables.Add(doc.Paragraphs[5].Range, dataGridView1.RowCount, dataGridView1.ColumnCount);
wordTable = doc.Tables[1];
wordTable.Range.Font.Size = 12;
wordTable.Range.Font.Bold = 0;
wordTable.Borders.OutsideLineStyle = Microsoft.Office.Interop.Word.WdLineStyle.wdLineStyleSingle;
wordTable.Borders.InsideLineStyle = Microsoft.Office.Interop.Word.WdLineStyle.wdLineStyleSingle;
wordTable.Range.ParagraphFormat.Alignment = Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphLeft;
for (int j = 0; j < dataGridView1.ColumnCount; j++)
{
wordTable.Cell(1, j + 1).Range.Text = dataGridView1.Columns[j].HeaderText;

}
for (int i = 0; i < dataGridView1.RowCount - 1; i++)


{
for (int j = 0; j < dataGridView1.ColumnCount; j++)
{
wordTable.Cell(i + 2, j + 1).Range.Text = dataGridView1.Rows[i].Cells[j].Value.ToString();
}
}
WordApp.Visible = true;

}


privatevoidпрайслистToolStripMenuItem1_Click(object sender, EventArgs e)
{
Form8 form8 = new Form8();
form8.ShowDialog();
}

privatevoidуслугиToolStripMenuItem1_Click(object sender, EventArgs e)


{
Form10 form10 = new Form10();
form10.ShowDialog();

}


privatevoidдолжностиToolStripMenuItem_Click(object sender, EventArgs e)
{
string CommandText = "SELECT * FROM dbo.doljnost where doljnost='master'"; //запроснавыборкуданныхизтаблицы

string ConnectionString = @"Data Source=WIN-K7865TJEBIT;Initial Catalog=salonkrasoty;Integrated Security=True";


// WIN-6P08B1Q3E7S - имя SQL Server
// Agentstvo - имябазыданных

SqlConnection conn = new SqlConnection();


conn.ConnectionString = ConnectionString;
SqlCommand com = new SqlCommand(CommandText, conn);
SqlDataAdapter dataAdapter = new SqlDataAdapter(com);
DataSet ds = new DataSet();
dataAdapter.Fill(ds, "dbo.doljnost");
dataGridView1.DataSource = ds.Tables["dbo.doljnost"].DefaultView;
}

privatevoid Form1_Load(object sender, EventArgs e)


{

}


privatevoid button1_Click(object sender, EventArgs e)
{
switch (tableNumber)
{
case 1: Form2 form2 = new Form2();
form2.ShowDialog();
break;
case 2: Form3 form3 = new Form3();
form3.ShowDialog();
break;
case 3: Form4 form4 = new Form4();
form4.ShowDialog();
break;
case 4: Form5 form5 = new Form5();
form5.ShowDialog();
break;
case 5: Form6 form6 = new Form6();
form6.ShowDialog();
break;

}
}
}


}



Достарыңызбен бөлісу:
1   2




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет