Щербаков А.В. курсовая работа (проект. инф.систем.). Курсовой проект по дисциплине Проектирование информационных систем (наименование дисциплины) на тему Проектирование информационных систем отдел кадров
![]()
|
Отношение «Подразделения» (Код подразделения, Название, Глава) находится в первой нормальной форме, так как на пересечении каждого столбца и строки находятся только элементарные значения атрибутов. Отношение находится во второй нормальной форме, так как оно находится в первой нормальной форме и не содержит неполных функциональных зависимостей непервичных атрибутов от первичного ключа. Отношение «Подразделения» находится в третьей нормальной форме, так как оно находится во второй нормальной форме и транзитивные зависимости отсутствуют. Таким образом, определим схему отношения «Подразделения», которая будет реализована в виде таблицы «Подразделения» в системе управления базами данных. Таблица 13 - Схема отношения «Подразделения»
Отношение «Должности» (ID, Код подразделения, Должность, Занятость, Разряд) находится в первой нормальной форме, так как на пересечении каждого столбца и строки находятся только элементарные значения атрибутов. Отношение находится во второй нормальной форме, так как оно находится в первой нормальной форме и не содержит неполных функциональных зависимостей непервичных атрибутов от первичного ключа. Отношение «Должности» находится в третьей нормальной форме, так как оно находится во второй нормальной форме и транзитивные зависимости отсутствуют. Таким образом, определим схему отношения «Должности», которая будет реализована в виде таблицы «Должности» в системе управления базами данных. Таблица 14 - Схема отношения «Должности»
4.3 Физическое проектирование модели базы данных Для создания базы данных была выбрана система управления базами данных Microsoft SQL Server Management studio 18. Предназначен для создания отчетов произвольной формы на основании различных данных. Microsoft SQL Server Management studio 18 обеспечивает средства для создания клиентских частей в приложениях «клиент-сервер», которые сочетают в себе средства просмотра, графический интерфейс и средства построения запросов. Для разработки приложения используется интегрированная среда разработки Visual Studio 2005, язык C#. Для полной функциональности приложения и базы данных создано семь таблиц, которые обладают ключевыми полями и связаны между собой. Ниже представлена схема данных предметной области «Отдел кадров» в Microsoft SQL Server Management studio 18: ![]() Рисунок 7 - Схема данных в Microsoft SQL Server Management studio 18 Структурная схема - схема, отражающая состав и взаимодействие по управлению частей разрабатываемого продукта. При объектной декомпозиции такими частями являются объекты При запуске программы загружается главная рабочая форма Form1.cs. Все необходимые манипуляции для работы с базой данных осуществляются в главной рабочей форме. Таблицы разделены между собой с помощью управляющего элемента TabControl. Каждая вкладка этого элемента соответствует единственной таблице базы данных. Также в окне TabControl можно выполнить все необходимые команды соответствующие активной таблице, такие как поиск, удаление, добавление, редактирование. При закрытии главной рабочей формы осуществляется автоматический выход из приложения. 4.4 Выбор методов решения задачи и разработка основных алгоритмов Соединение с базой данных производится следующим образом: string InstConnectString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + @"Организация.mdb";con;= new OleDbConnection(InstConnectString); Для осуществления поиска по полям таблицы Сотрудники в программе предусмотрен специальный метод Search, который не только позволяет быстро находить необходимые данные по всем полям таблицы, но и начинает работать уже с первого введенного в поле для поиска символа, что значительно ускоряет этот процесс.void Search(string SQL) { {dt = new DataTable();da = new OleDbDataAdapter(SQL, con);.Fill(dt);.DataSource = dt; } {.Show("Введены некорректные данные", "Поиск", MessageBoxButtons.OK, MessageBoxIcon.Information); } } В данный метод передается строка SQL-запроса, которая может принимать различные значения в зависимости от выбранного в элементе ComboBox названия поля, по которому пользователю необходимо произвести поиск. private void textBox1_TextChanged(object sender, EventArgs e) {(tabControl1.SelectedTab.Text == "Сотрудники") {(NameOfField == "ID" && textBox1.Text.Length != 0)("Select* from Сотрудники where CInt(Mid(CStr(Сотрудники.ID),1," + textBox1.Text.Length + "))=" + int.Parse(textBox1.Text));if (NameOfField == "Фамилия" && textBox1.Text.Length != 0)("Select* from Сотрудники where Сотрудники.Фамилия Like '" + textBox1.Text + "%'");if (textBox1.Text.Length == 0) {dt = new DataTable("Сотрудники");da = new OleDbDataAdapter("Select* from Сотрудники", con);.Fill(dt);.DataSource = dt; } } Для удаления какой-либо записи из таблицы Сотрудники необходимо в элемент TextBox ввести значение номера лицевого счета соответствующего удаляемой записи и нажать кнопку «Удалить». OleDbCommand insCom = new OleDbCommand("Delete from Сотрудники where ((Сотрудники.ID)=" + int.Parse(textBox2.Text) + ");", con);(insCom.ExecuteNonQuery() == 1).Show("Запись удалена", "Удаление", MessageBoxButtons.OK, MessageBoxIcon.Information);.Show("Запись не удалена", "Удаление", MessageBoxButtons.OK, MessageBoxIcon.Error);dt = new DataTable("Сотрудники");da = new OleDbDataAdapter("Select* from Сотрудники", con);.Fill(dt);.DataSource = dt; Для редактирования данных в таблице отдельного метода не предусмотрено, но используется алгоритм, который позволяет изменять данные непосредственно в самом элементе dataGridView. Этот метод очень прост и понятен, для его работы необходимо определить позицию выделенной ячейки в таблице, запомнить все данные из этой строки, а после введения изменений и подтверждения пользователем обновить данные в элементе dataGridView. private void dg1_CellBeginEdit(object sender, DataGridViewCellCancelEventArgs e) {= dg1.CurrentCell.Value;= (int)dg1.CurrentRow.Cells[0].Value;= dg1.Columns[dg1.CurrentCellAddress.X].HeaderText;void dg1_CellEndEdit(object sender, DataGridViewCellEventArgs e) { {(ColumnName == "ID") {.Show("Изменение этого поля невозможно", "Редактирование", MessageBoxButtons.OK, MessageBoxIcon.Error);.CurrentCell.Value = edit;; }if (ColumnName == "Дата поступления") {.Show("Изменение этого поля невозможно", "Редактирование", MessageBoxButtons.OK, MessageBoxIcon.Error);.CurrentCell.Value = edit;; }(edit.ToString() != dg1.CurrentCell.Value.ToString() && DialogResult.Yes == MessageBox.Show("Принять изменения?", "Редактирование", MessageBoxButtons.YesNo, MessageBoxIcon.Question)) {com = new OleDbCommand("Update Сотрудники Set [" + ColumnName + "]='" + dg1.CurrentCell.Value + "' Where ID=" + ID, con);.ExecuteNonQuery(); }.CurrentCell.Value = edit; } {.Show("Изменение этого поля невозможно", "Редактирование", MessageBoxButtons.OK, MessageBoxIcon.Error);.CurrentCell.Value = edit; } Для таблицы Должности элемента ComboBox заполняются программно из базы данных с помощью следующего алгоритма.InstConnectString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + @"Организация.mdb";con;rdr1, rdr2, rdr3;cmd1, cmd2, cmd3;Form2() {();= new OleDbConnection(InstConnectString);.Open();= con.CreateCommand();.CommandText = "Select [Код подразделения] From Подразделения";= cmd1.ExecuteReader();(rdr1.Read()) {tmp = ""; //для каждого нового пункта списка очищаем(tmp != "")// если в массиве данных есть значения+= " ";+= rdr1[0].ToString(); //формируем пункт поля со списком.Items.Add(tmp); //добавляем пункт списка к объекту } } Другой элемента ComboBox, необходимый для добавления записи имеет список фиксированных значений. В данном приложении алгоритм добавления данных выглядит следующим образом. int id = SearchID.Start("Сотрудники", "ID", "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + @"Организация.mdb");today = new DateTime();= Convert.ToDateTime(monthCalendar1.TodayDate.Date.ToShortDateString()); {insSQL2 = "Insert into Бухгалтерия values(" + id + "," + int.Parse(textBox12.Text) + "," + int.Parse(textBox13.Text) + ")";insCom2 = new OleDbCommand(insSQL2, con);insSQL = "Insert into Сотрудники values(" + id + ",'" + textBox1.Text + "','" + textBox2.Text + "','" + textBox3.Text + "','" + textBox4.Text + "','" + textBox5.Text + "','" + textBox6.Text + "','" + textBox7.Text + "','" + textBox8.Text + "','" + textBox9.Text + "','" + Convert.ToDateTime(today) + "')";insCom = new OleDbCommand(insSQL, con);insSQL3 = "Insert into Должности values(" + id + "," + int.Parse(comboBox1.SelectedItem.ToString()) + ",'" + textBox10.Text + "','" + textBox11.Text + "'," + int.Parse(comboBox1.SelectedItem.ToString()) + ")";insCom3 = new OleDbCommand(insSQL3, con);(insCom2.ExecuteNonQuery() == 1 && insCom.ExecuteNonQuery() == 1 && insCom3.ExecuteNonQuery() == 1).Show("Запись добавлена", "Добавление", MessageBoxButtons.OK, MessageBoxIcon.Information); } {.Show("Введены некорректные данные", "Добавление", MessageBoxButtons.OK, MessageBoxIcon.Error); } 5. Тестирование программного продукта 5.1 Руководство пользователя Для начала работы запускаем исполнительный файл, его название “Form1.exe”. При запуске появится рабочее окно, в котором можно начинать работать. ![]() Рисунок 8 - Рабочее окно программы Если необходимо добавить в базу данных нового сотрудника, то нужно нажать на кнопку «Трудоустройство». Откроется новое окно Form2.cs, в котором необходимо заполнить все предложенные поля, это позволит добавить данные о сотруднике во все таблицы базы данных одновременно, что необходимо для обеспечения целостности базы данных. ![]() Рисунок 9 - Добавление нового сотрудника После введения всех необходимых данных следует нажать кнопку «Добавить» и если все данные были введены правильно, то выйдет диалоговое окно, подтверждающее выполнение запроса. Табельный номер сотрудника высчитывается программой автоматически, дата поступления на работу запишется текущая. ![]() Рисунок 10 - Диалоговое сообщение, подтверждающее добавление нового сотрудника Если необходимо изменить данные о сотруднике, то необходимо кликнуть левой кнопкой мыши по ячейке, в которую необходимо ввести изменения, и после введения исправлений нажать Enter или просто кликнуть один раз левой кнопкой мыши по любой другой ячейке таблицы. Если исправления введены верно, то изменение необходимо подтвердить в вышедшем диалогом окне. ![]() Рисунок 11 - Изменение данных в таблице Для удаления записи необходимо ввести информацию о сотруднике и нажать кнопку «Добавить». ![]() Рисунок 12 - Удаление сотрудника Заключение В данном курсовом проекте был разработан проект автоматизированного приложения для учета перемещений работников на предприятии (на примере оформления трудового договора в отделе кадров). Реализация этой системы повысит уровень производительности на предприятии за счет уменьшения времени обработки перемещений работников, автоматизации документооборота и обработки информации. Для разработки данной системы использовался программой StarUML, упростившая процесс создания автоматизированной системы и оптимизировав сроки ее создания. Система в дальнейшем будет реализована, она может быть доработана относительно полученной спецификации для ее улучшения. Список использованной литературы Технологии разработки программного обеспечения. Учебное пособие. 2-е изд./ С.Орлов. – СПб.: Питер, 2003. – 480 с.: ил. Белых А.А. Проектирование ЭИС. Методическое пособие по дипломному проектированию. Пермь: Пермская ГСХА, 2005 г. ГОСТ 34.602-89. Техническое задание на создание автоматизированной системы. Симонович С. В., Евсеев Г. А., Алексеев А. Г. Специальная информатика: Учебное пособие. – М.: АСТ-ПРЕСС: Инфорком-Пресс, 2010г. Астахова И.Ф., Толстобров А.П., Мельников В.М. SQL в примерах и задачах: Учеб.пособие. – Мн.: Новое знание, 2002. Вендров А.М. Проектирование программного обеспечения экономических информационных систем: Учебник. – М.: Финансы и статистика, 2002. Игорева, Е.Л., Основы алгоритмизации и программирования (3-е издание)./ И.И. Попов, О.Л. Игорева - М. : Инфа-М, 2006 - 432 с. Иванова Г.С. Технология программирования: Учебник для вузов. – М.: Изд-во МГТУ им. Баумана, 2003. Информатика. Базовый курс. 2-е издание / Под ред. С.В. Симоновича. – СПб.: Питер, 2008. – 640 с.: ил. Трудовой кодекс Российской Федерации. |