Факультет Физико-технический
Кафедра Компьютерных технологий (КТ)
Зав. кафедрой КТ
____________ Т. В. Ермоленко
(подпись)
ПОЯСНИТЕЛЬНАЯ ЗАПИСКА
к курсовой работе бакалавра 2 курса
на тему:
Консультанты по разделам:
_____________
дата
ЗАДАНИЕ
ВВЕДЕНИЕ..........................................................................................................................................5
4
ВВЕДЕНИЕ
5
обращаются к компьютерным технологиям, которые позволяют наглядно
анализировать данные, в отличии от бумажных бланков.
После перехода от бумажного ведения учета автостоянки к
электронному, предприятие получает возможность получать свежие данные
по почте или синхронизировать с главным сервером для дальнейшего
анализа и прогнозирования расходов и доходов компании. Это позволит
доказывать свою конкурентно-способность, а также привлекать инвестиции
на основе обработанных данных за продолжительный срок.
В данной курсовой работе будет реализовано приложение, которое
позволит компаниям автоматизировать свою работу, потратив на это всего
пару минут вместо нескольких часов рутины. Далее представлена разработка
приложения, реализующая выше поставленную задачу.
6
1 АНАЛИЗ ПРЕДМЕТНОЙ ОБЛАСТИ
1.1 Состояние вопроса
9
4) изменение существующих данных в системе. Предоставляет
пользователю возможность изменить существующие данные путем
редактирования значений в таблице;
5) удаление данных из системы. Данная функциональная возможность
позволит удалять некорректные и устаревшие данные из системы;
Окно входа, должно содержать:
1) поля для входа сотрудников;
2) кнопки «Вход» и «Регистрация»;
3) поле с сообщением о некорректном входе, если пользователь ввел
неправильные данные появится сообщение об ошибке.
Окно регистрации, должно содержать:
1) поля для регистрации новых сотрудников в системе;
2) кнопка «Регистрация»;
После успешного входа или регистрации пользователь попадает на главную
форму, на которой может работать с данными.
Сценарий «Вход»
1) после запуска приложения, пользователь попадает на форму
«Входа»;
2) пользователь заполняет необходимые поля для авторизации;
3) система считывает введенные данные и сравнивает их с
существующими пользователями;
4) если данные совпадают, то пользователь попадает на «Главную
форму».
5) в случае ввода неверных данных пользователь увидит сообщение
об ошибке;
Сценарий «Регистрация»
11
1) после запуска приложения, пользователь попадает на форму
«Входа»;
2) пользователь нажимает на кнопку «Регистрация»;
3) пользователь заполняет необходимые поля для регистрации;
4) система считывает введенные данные;
5) если все поля заполнены правильно, то пользователь попадает на
«Главную форму».
6) в случае ввода неверных данных пользователь увидит сообщение
об ошибке;
2.7 Ограничения
13
3 ОБОСНОВАНИЕ ВЫБОРА ИНСТРУМЕНТАЛЬНЫХ СРЕДСТВ
14
4 РАЗРАБОТКА ПРИЛОЖЕНИЯ ДЛЯ АВТОМАТИЗАЦИИ УЧЕТА НА
АВТОСТОЯНКАХ
15
Окончание таблицы 4.1
16
Окончание таблицы 4.2
17
Рисунок 4.1 – Схема связности классов в программе
19
Рисунок 4.3 – Структура проекта
20
Таблица 4.4 – Методы, используемые в классе FileService
22
Таблица 4.5 – Методы, используемые в классе SerializationService
23
5 ТЕСТИРОВАНИЕ ПРОГРАММНОГО ПРОДУКТА
24
Рисунок 5.1–Файловая система приложения
25
Рисунок 5.2- форма входа для авторизации пользователя.
26
Рисунок 5.3 – Информация о клиентах
На главной форме пользователю предоставляется возможность чтения
данных. Если у пользователя есть права администратора, то появляются
возможности для добавления, редактирования и удаления данных. Для
удаления строки из таблицы пользователю нужно нажать правой кнопкой
мыши по необходимой строке и подтвердить свое действие на модальном
окне (рисунок 5.4).
28
ЗАКЛЮЧЕНИЕ
29
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
30
ПРИЛОЖЕНИЕ А
Экранные формы
31
Рисунок А.3 – Удаление строки из таблицы
32
ПРИЛОЖЕНИЕ Б
Фрагменты листинга
return data;
}
catch (Exception ex)
{
return new List<T>();
}
}
33
{
//Добавление обьекта
data.Add(item);
}
return path;
}
35
var employeePosition = new DataGridViewTextBoxColumn
{
DataPropertyName = "Position",
HeaderText = "Должность"
};
employeeGrid.Columns.AddRange(
employeeIdColumn,
employeelastName,
employeefirstName,
employeePatronymic,
employeeLogin,
employeePassword,
employeePhone,
employeePosition,
employeeLastExit,
employeeRole);
employeeGrid.AutoGenerateColumns = false;
var employees =
_fileService.ReadFile<Employee>("employee.json").Result;
var employeeSource = new BindingSource();
employeeSource.AllowNew = true;
employeeSource.DataSource = employees;
employeeGrid.DataSource = employeeSource;
employeeGrid.EditMode =
DataGridViewEditMode.EditOnEnter;
#region EmployeeNonPublicMethods
private async void employeeGrid_UserAddedRow(object sender,
DataGridViewRowEventArgs e)
{
try
{
var row =
(Employee)employeeGrid.CurrentRow.DataBoundItem;
var employee =
(Employee)employeeGrid.Rows[currentMouseOverRow].DataBoundItem;
if (currentMouseOverRow >= 0)
{
DialogResult dialogResult =
MessageBox.Show("Удаление", "Удалить строку?",
MessageBoxButtons.YesNo);
37
if (dialogResult == DialogResult.Yes)
{
var employees = await
_fileService.DeleteItem("employee.json", employee);
var source = new BindingSource();
source.AllowNew = true;
source.DataSource = employees;
employeeGrid.DataSource = source;
}
else if (dialogResult == DialogResult.No)
{
return;
}
}
}
}
catch (Exception ex)
{
_logger.LogCritical(ex.StackTrace.ToString());
}
}
#endregion
//Логгирование входа
_logger.LogInfo($"Выполнен вход - {employee.ID} :
{employee.Login}");
var mainForm = new MainForm(employee);
mainForm.Show();
Hide();
}
38
//Если введены неверные данные - вывод сообщения
else
{
LoginError.Text = "Неправильно введенные данные";
}
}
catch (Exception ex)
{
_logger.LogCritical(ex.StackTrace.ToString());
}
}
39