Добавлен: 29.11.2023
Просмотров: 28
Скачиваний: 3
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
СОДЕРЖАНИЕ
ВВЕДЕНИЕ
| 3 |
| 4 |
2.1 Краткое описание технического задания…………......................................... | 4 |
2.2 Разработка программного продукта…………................................................... | 5 |
2.2.1 Этапы разработки программного продукта…............................................... | 5 |
2.2.1.1 Концептуальная модель…………………………………………………… | 5 |
2.2.1.2 Логическая модель…………………………………………………………. | 6 |
2.2.1.3 Физическая модель…………………………………………………………. | 7 |
2.2.2 РАЗРАБОТКА ПРОГРАММНОЙ ОБОЛОЧКИ С ПОМОЩЬЮ ОБЪЕКТНО-ОРИЕНТИРОВАННОГО ЯЗЫКА ПРОГРАММИРОВАНИЯ…… | 8 |
2.2.3 Разработка справочной информации о программном продукте…………... | 12 |
2.2.4 Разработка запросов различной сложности | 13 |
2.2.5 Разработка печатной формы отчетной документации……………………... | 14 |
2.2.6 Разработка дополнительных функций………………………………………. | 15 |
ЗАКЛЮЧЕНИЕ…………………………………………………………………….. | 17 |
СПИСОК ЛИТЕРАТУРЫ………………………………………………………….. | 18 |
ПРИЛОЖЕНИЕ…………………………………………………………………….. | 19 |
ВВЕДЕНИЕ
Целью учебной практики является разработка программного модуля, который позволяет добавлять или удалять, сортировать и фильтровать данные по определённым критериям.
Основная задача – предусмотреть возможность формирования списка сотрудников, сортировать и фильтровать по стажу работу, по окладу, по должности; добавлять новых сотрудников или удалять сотрудников, уже имеющихся в списке.
2 ОПИСАНИЕ ТЕХНОЛОГИЙ ВЫПОЛНЕНИЯ ПРАКТИЧЕСКОГО ЗАДАНИЯ
2.1 КРАТКОЕ ОПИСАНИЕ ТЕХНИЧЕСКОГО ЗАДАНИЯ
Наименование работы: разработка программного модуля программного обеспечения «Сотрудники».
-
Назначение разработки:
Программный модуль «Сотрудники» должен позволять пользователю добавлять, удалять или изменять данные о сотруднике, фильтровать и сортировать данные
-
Требования к программе:
Программное изделие должно выполнять следующие функции:
- добавление новых сотрудников в базу данных;
- удаление сотрудников из базы данных;
- изменение данных о сотруднике;
Входной информацией системы является:
- личная информация о сотруднике (фамилия, имя, отчество, должность, стаж работы, оклад);
Выходной информацией системы является:
- список сотрудников после фильтрации;
- список сотрудников после сортировки;
- личная информация о каждом сотруднике
Разрабатываемая система должна соответствовать требованиям надежности обеспечение устойчивого функционирования:
- Отсутствие ошибок;
- Устойчивость к возможным ошибкам;
- Автосохранение вводимой информации;
- Обеспечивать целостность данных.
2.2 РАЗРАБОТКА ПРОГРАММНОГО ПРОДУКТА
2.2.1 ЭТАПЫ РАЗРАБОТКИ ПРОГРАММНОГО ПРОДУКТА
2.2.1.1 КОНЦЕПТУАЛЬНАЯ МОДЕЛЬ
Во время разработки программного модуля и проектирования баз данных происходит преобразование ER-модели в конкретную схему базы данных на основе выбранной модели данных (реляционной, объектной, сетевой или др.). Для построения концептуальной модели необходимо было выполнить следующие этапы:
- выделение сущностей;
- выделение ключевых атрибутов для каждой сущности;
- добавление неключевых атрибутов;
- определение связей между сущностями.
ER-диаграмма(концептуальная модель) представлена на рисунке 1:
Рис.1. Концептуальная модель «Сотрудники»
2.2.1.2 ЛОГИЧЕСКАЯ МОДЕЛЬ
В процессе разработки программного продукта была разработана БД, которая содержит 2 таблицы. Таблицы, в свою очередь, хранят максимально полную характеристику, информацию и описание объектов.
Оперативными таблицами базы данных являются таблица «Сотрудники», содержащая необходимые данные о сотрудниках и таблица «Авторизация», содержащая данные для входа в приложение – логин и пароль администратора и обычного пользователя.
Таблица 1. «Сотрудники» содержит информацию о сотрудниках. Структура таблицы «Сотрудники»:
Имя поля | Тип данных |
Фамилия | Текст |
Имя | Текст |
Отчество | Текст |
Должность | Текст |
Стаж работы | Число |
Оклад | Число |
Таблица 2. «Авторизация», содержит всю необходимую информацию для успешной авторизации в приложении. Структура таблицы «Авторизация»:
Имя поля | Тип данных |
Логин | Текст |
Пароль | Текст |
Права доступа | Логический |
-
ФИЗИЧЕСКАЯ МОДЕЛЬ
При физическом проектировании происходит описание компонентов, сервисов и технологий, используемых для получения решения задачи, которую выполняет программный модуль.
Физическая модель разрабатываемого программного модуля представлена на рисунке 2:
Рис.2. Физическая модель «Сотрудники»
-
РАЗРАБОТКА ПРОГРАММНОЙ ОБОЛОЧКИ С ПОМОЩЬЮ ОБЪЕКТНО-ОРИЕНТИРОВАННОГО ЯЗЫКА ПРОГРАММИРОВАНИЯ
При разработке программного модуля были использованы следующие компоненты:
-
DataGridView – предоставляет настраиваемую таблицу для отображения данных для вывода информации и экспорта в Excel; -
Button – компонент для выполнения различных функций программы; -
GroupBox для формирования отсека информации о сотруднике, поиске и сортировки. -
TextBox – компонент для ввода и вывода информации. -
RadioButton – компонент для выбора критерия при поиске и сортировки.
При запуске программы Сотрудники открывается форма авторизации, представленная на рисунке 3.
Рис.3. Форма авторизации
Листинг программного модуля окна авторизации представлен ниже:
//объявление функции с переменными – логин и пароль
bool authorization(string login, string password) {
SqlConnection conn = new SqlConnection();
conn.ConnectionString = connStr;
conn.Open();
SqlCommand cmd = conn.CreateCommand();
//создание запроса для проверки логина
cmd.CommandText = "SELECT * FROM authorize WHERE Login = @login";
cmd.Parameters.Add("@login", SqlDbType.NVarChar, 20);
cmd.Parameters["@login"].Value = login;
SqlDataReader myDATA = cmd.ExecuteReader();
if (myDATA.Read() == false)
{
return false;
}
string password_BD = myDATA["Password"].ToString();
password = MD5Hash(password);
if (password_BD != password)
{
//диалоговое окно ошибки авторизации
MessageBox.Show("Неверный логин или пароль! Повторите попытку");
return false;
}
myDATA.Close();
conn.Close();
return true;
}
//кнопка «Авторизация»
private void authorizeBtn_Click(object sender, EventArgs e)
{
string login = loginTB.Text;
string password = passwordTB.Text;
bool success = authorization(login, password);
if (success != false)
{
//открытие главной формы при успешной авторизации
Staffers st = new Staffers();
st.Show();
this.Hide();
}
}
Пользователь вводит логин и пароль в поля ввода. При неудачной авторизации появляется диалоговое окно, представленное на рисунке 4:
Рис.4. Диалоговое окно с сообщением об ошибке авторизации.
При успешной авторизации открывается главная форма приложения, представленная на рисунке 5:
Рис.5. Главная форма.
Слева расположена таблица со списком сотрудников, 2 столбца – фамилия и должность. При выборе сотрудника из таблицы информация о нем появляется по центру (информацию изменить нельзя). Cправа расположено поле быстрого поиска сотрудника по фамилии или должности. Ниже на форме расположено поле сортировки сотрудников по стажу или окладу, числовое значение этих данных вводится ниже в поле для ввода. В правом нижнем углу расположена кнопка информации о приложении.
При нажатии на кнопку «Добавить» (в случае авторизации как администратор) открывается форма добавления сотрудников, представленная на рисунке 6:
Рис.6. Форма добавления сотрудников.
При нажатии «Добавить», если заполнены все поля ввода, происходит добавление сотрудника в базу данных, в противном случае появляется диалоговое окно, представленное на рисунке 7:
Рис.7. Диалоговое окно
Листинг программного модуля главной формы представлен в приложении 1.
-
РАЗРАБОТКА СПРАВОЧНОЙ ИНФОРМАЦИИ О ПРОГРАММНОМ ПРОДУКТЕ
Продукт разработан для просмотра, сортировки, поиска и добавления данных и вывода их в отдельный файл.
Программа была разработана на языке программирования C# в приложении Visual Studio 2022, студенткой 4 курса специальности 09.02.03 «Программирование в компьютерных системах» Поручник К.Ф.
Данная информация появляется на экране при нажатии кнопки «Информация», что представлено на рисунке 8:
Рис.8. Окно информации
-
РАЗРАБОТКА ЗАПРОСОВ РАЗЛИЧНОЙ СЛОЖНОСТИ
Запрос на добавление информации о сотруднике:
//Событие при нажатие на кнопку
private void addBtn_Click(object sender, EventArgs e) «добавить»
{
Add add = new Add(); //открытие окна добавления сотрудников
add.ShowDialog();
if (add.DialogResult == DialogResult.OK)
{
if (add.FIO.Text == "" ||
add.position.Text == "" ||
add.experience.Text == "" ||
add.salary.Text == "")
//открытие диалогового окна, если поля ввода не заполнены
{ MessageBox.Show("Заполните все поля", "Информация", MessageBoxButtons.OK, MessageBoxIcon.Information); }
else
{
//объявление переменных, которые являются информацией о сотруднике
int rs = dataGridView1.RowCount;
string fio = add.FIO.Text;
string[] subs = fio.Split(' ');
string Lastname = subs[0];
string Name = subs[1];
string Fathername = subs[2];
string position = add.position.Text;
string experience = add.experience.Text;
string salary = add.salary.Text;
//создание подключения к базе данных SQL
conn = new SqlConnection();
conn.ConnectionString = connStr;
conn.Open();
SqlCommand myComm = conn.CreateCommand();
//SQL запрос на добавление сотрудника
myComm.CommandText = "insert into staffer (Lastname, Name, Fathername, Position, Experience, Salary) values (@Lastname, @Name, @Fathername, @Position, @Experience, @Salary)";