Добавлен: 29.10.2023
Просмотров: 102
Скачиваний: 2
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
СОДЕРЖАНИЕ
1.2 Характеристика объекта автоматизации
1.3 Описание функций проектируемой ИС
2 Функционально-ориентированное проектирование ИС
2.1 Функциональное моделирование IDEF0
2.2 Проектирование ИС средствами UML
2.3 Построение ER-модели предметной области
3. Проектирование и разработка БД
3.1 Описание групп пользователей и прав доступа
3.2 Основные таблицы информационной системы
4 Реализация программного обеспечения
4.1 Выбор среды разработки и языка программирования
Список использованных источников
Приложение А – Листинг основных элементов программы
При выполнение первой части работы, была изучена предметная область рассматриваемой системы. В ходе анализа предметной области были рассмотрены особенности протекающих процесса в автомобильном салоне и определен круг информационных задач, которые должна выполнять разрабатываемая информационная система.
Во второй части работы проведено функционально-ориентированное проектирование информационной, в ходе которого были более подробно изучены бизнес-процессы автомобильного салона с помощью методология IDEF0 и UML диаграмм. Также на данном этапе была спроектирована база данных для удовлетворения задач информационной системы, и построена ER-диаграмма схема данных.
В ходе выполнения третьей части работы, была разработана база данных, выделены связи между таблицами, и рассмотрены права доступа к системе разными сотрудниками.
Завершающим частью работы, стало разработки информационной системы и использованием выбранных средств разработки.
Перспективы для развития разработанной информационной системы - это разработка мобильной версии информационной системы, и внедрение созданной информационной системы в действующих автомобильный салон, для реального изучения работы программы.
Список использованных источников
-
Албахари, Д. C# 6.0. Справочник. Полное описание языка / Д. Албахари, Б. Албахари. – М. : Вильямс, 2016. – 623 c. -
Вагнер, Б. С# Эффективное программирование / Б. Вагнер. – М. : ЛОРИ, 2017. – 320 c. -
Васильев, А. C#. Объектно-ориентированное программирование / А. Васильев. – М. : Питер, 2017. – 320 c. -
Гвоздева, В. А. Информатика, автоматизированные информационные технологии и системы / В. А. Гвоздева. – М. : Форум, 2017. – 544 c. -
Криницкий, Н. А. Автоматизированные информационные системы / Н. А. Криницкий, Г. А. Миронов, Г. Д. Фролов. – М. : Наука, 2016. – 380 c. -
Кузнецов, С. Д. Основы баз данных / С. Д. Кузнецов. – М.: Бином. Лаборатория знаний, Интернет-университет информационных технологий, 2017. – 488 c. -
Наумов, А. Н. Системы управления базами данных и знаний / А. Н. Наумов, А. М. Вендров, В. К. Иванов. – М. : Финансы и статистика, 2016. – 352 c. -
Редько, В. Н. Базы данных и информационные системы / В. Н. Редько, И. А. Басараб. – М. : Знание, 2016. – 667 c. -
Ипатова, Э. Р. Методологии и технологии системного проектирования информационных систем. Учебник: моногр. / Э.Р. Ипатова. - М.: Флинта, 2016. - 300 c. -
Маклаков С.В. BPwin и Erwin. CASE-средства разработки информационных систем.- M.: Диалог-МИФИ, 2011.- 304 с -
Даниэль, Арсеновски Рефакторинг в C# и ASP.NET для профессионалов / Арсеновски Даниэль. - М.: Диалектика / Вильямс, 2019. - 584 c. -
Ларман, Крэг Применение UML 2.0 и шаблонов проектирования. Введение в объектно-ориентированный анализ, проектирование и итеративную разработку / Крэг Ларман. - М.: Вильямс, 2020. - 736 c.
Приложение А – Листинг основных элементов программы
Процедура авторизации (нажатие кнопки Войти)
int uid = Authoriz.Authorization(login.Value, password.Value);
if (uid > 0)
{
//Фиксируем авуторизацию
lOk.Visible = true;
lOk.InnerText = "Вы авторизованы";
if (Request.Cookies["AutoSalon"] == null)
{
Response.Cookies.Add(new HttpCookie("AutoSalon"));
}
lOk.Visible = true;
lError.Visible = false;
bool remember = showPassword.Checked;
string userGuid = Authoriz.GetUserGuid(uid);
Response.Cookies["AutoSalon"]["sid"] = Authoriz.StartNewSession(userGuid, showPassword.Checked);
if (remember)
Response.Cookies["AutoSalon"].Expires = DateTime.Now.AddDays(365);
else
Response.Cookies["AutoSalon"].Expires = DateTime.Now.AddDays(1);
Response.Cookies["AutoSalon"]["uid"] = userGuid;
if (Request.QueryString["ref"] != null)
{
Response.Redirect(Request.QueryString["ref"]);
}
}
else
{
lOk.Visible = false;
lError.Visible = true;
Метод нажатия кнопки сохранить в карточке продажи (сохранение изменений в карточке)
protected void btnUpdate_Click(object sender, EventArgs e)
{
try
{
if (id.Number > 0)
SqlDataSource1.Update();
else
{
SqlDataSource1.Insert();
//получим текущий id
string Newid = "";
using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["DBAutoSalonConnectionString"].ConnectionString))
{
conn.Open();
SqlCommand cmd = new SqlCommand("SELECT id FROM [Cars_Buying] order by id desc", conn);
Newid = cmd.ExecuteScalar()?.ToString();
}
Response.Redirect("Cars_Buying_Form.aspx?id="+Newid);
}
}
catch (Exception ex)
{
errorMessageLabel.Text = ex.Message;
errorMessageLabel.Visible = true;
}
Метод нажатия кнопки Выход (выход пользователя из системы)
protected void btn_Exit_Click(object sender, EventArgs e)
{
using (SqlConnection conn = new SqlConnection(Utils.Base_DB_Connection))
{
try
{
conn.Open();
SqlCommand cmd = new SqlCommand("update [AutentificateLOG] set isClosed=1 where lower(guid_session)=lower(@guid_session)", conn);
cmd.Parameters.AddWithValue("@guid_session", cookSession);
cmd.ExecuteNonQuery();
conn.Close();
}
catch (Exception ex)
{
}
}
Request.Cookies[sid_coockiesBase].Expires = DateTime.Now.AddDays(-1);
Response.Redirect(Utils.auth_autentification + "?dislogin=1&ref=" + Request.Url.ToString());
}
Метод загрузки карточки покупки (создание новой карты, заполнение параметров формы по умолчанию)
protected void form1_DataBinding(object sender, EventArgs e)
{
if (Request.QueryString["id"] == null)//если создается новая карточка
{
date_in.Value = DateTime.Now;
idm_status.Value = 1;
idm_employee.Value = Session["idmUser"];
errorMessageLabel.Text = "load";
}
Приложение Б – Скрипты базы данных
Основная часть базы данных заполнялась с помощью скриптов запроса БД, хочется выделить отдельно два скрипта для заполнения:
Таблица хранящая данные сотрудниках:
INSERT INTO [dbo].[Client]
([fam]
,[name]
,[otch]
,[date_b]
,[phone_mobile]
,[email]
,[passport]
,[idm_city])
VALUES
('Иванов','Петр','Сергеевич','12.02.1991','89275322216','ivan@mail.ru','',1),
('Константинова','Анна','Анатольевна','23.12.1991','89187654333','anna@mail.ru','',1),
('Григорьев','Олег','Юрьевич','16.07.1988','89034046564','oleg@mail.ru','',1),
('Шопик','Антон','Николаевич','12.10.1993','89023045678','anton@mail.ru','',1),
('Тихорец','Илья','Юрьевич','30.03.1992','89187654309','ilia@mail.ru','',1),
('Ананьева','Оксана','Львовна','05.05.2000','89034076865','oks@mail.ru','',1),
('Поляков','Антон','Игоревич','24.11.1996','89276543555','aNT@mail.ru','',1)
Таблица хранящая данные о VIN кодах машин:
insert into [DBAutoSalon].[dbo].[Car] ([idm_model]
,[idm_color]
,[description]
,[year_made]
,[vin]
,[idm_contragent])
values
( 2, 2 ,'', 2006 , 'JTDKB20U693483281', 2),
( 4, 2,'', 2020 , '1C3LC55D49N511194', 2),
( 103,6 ,'', 2022 , '1B3BD1FGXBN555018',2 ),
( 100,7 ,'',2020 , '1G8ZS57N38F161624',2 ),
( 103,7 ,'', 2022 , '1G1YY22G125110345', 3),
( 2, 4,'', 2020 , '2B3HD76V31H683443',3 ),
( 2, 4,'', 2022 , '1G8AN12FX4Z185697', 3),
( 400,2 ,'', 2022 , '3VWPF71K36M740229',1 ),
( 400,2 ,'',2020 , 'JTEDW21A060055927', 1),
( 400,1 ,'',2020 , 'JM1FE17N440135961',3 )
Таблица хранящая данные о поставщиках:
INSERT INTO [dbo].[Contragent]
([description]
,[adress]
,[INN]
,[number_bank]
,[phone_number])
VALUES
('Роман','Новосибирск','540439064306','','89130075875'),
('ООО "ЭКО-ДИАГНОСТИКА"','Москва','7717789374','','79999609460'),
('Сибирь плюс','г.Новосибирск ул. Стаое шоссе 75 оф 3','5404008068','','89139856806'),
('Как Есть Авто','Генерала Белобородова 38','502920629982','','89999971904')
Таблица, хранящая данные о статусах покупки:
INSERT INTO [dbo].[spr_Status]
([description])
VALUES
('Создана'),
('Проведена'),
('Отменена')
Представление о покупках:
create view view_Cars_Buying as
SELECT [Cars_Buying].[id]
,[date_in]
,[idm_car]
, concat(modelName,' (', colorName,') ', year_made,'гв') as FullNameCar
,[idm_client]
,concat(client.fam,' ', client.name,' ', client.otch) as fullNameClient
,[idm_employee]
,concat(empl.fam,' ', empl.name,' ', empl.otch) as fullNameEmployee
,[cost]
,[idm_order]
,[idm_status]
,status.description as status_descr
FROM [DBAutoSalon].[dbo].[Cars_Buying]
left join [view_Car] vCar on vCar.id = idm_car
left join client on Client.id = idm_client
left join employee empl on empl.id = idm_employee
left join spr_status status on status.id = idm_status
Представление о сотрудниках:
create view View_Employee as
SELECT [Employee].[id]
,[fam]
,[name]
,[otch]
, concat (fam, ' ', name, ' ', otch) as fullName
,[date_b]
,[idm_doljnost]
, spr_Doljnost.description as doljnostDescr
,[idm_gender]
, case idm_gender when 0 then 'Жен.' when 1 then 'Муж.' else '-' end as genderDescr
,[adress]
,[phone_mobile]
,[INN]
,[email]
FROM [DBAutoSalon].[dbo].[Employee]
left join spr_Doljnost on spr_Doljnost.id = idm_doljnost
1 Далее – «салон».