Курсовая работа. ПЗ_Самый итоговый вариант. Допустить к защите
Скачать 1.4 Mb.
|
ЗаключениеВ ходе данного дипломного проекта было спроектировано программное обеспечение, которое способно оптимизировать работу предприятия. Данный программный продукт обеспечивает выполнение следующих задач: добавление, изменение, удаление и хранение информации; просмотр и редактирование справочника услуг; возможность учёта персонала, заказов, клиентов; поиск необходимой информации; оформление заказа; подсчет итоговой суммы заказов, выполненных за определенный период; защиту от несанкционированного доступа. Все критерии, необходимые для безотказной работы программы соблюдены: хранение информации; формирование отчетов; выполнение поиска нужных данных; улучшение взаимоотношения с клиентами. С помощью программного обеспечения, предприятию удалось ускорить принятие и рассмотрение заявок, уменьшить время ожидания клиента. Список использованных источниковБурков, А.В. Проектирование информационных систем в Microsoft SQL Server 2008 и Visual Studio 2008 [Электронный ресурс] / А.В. Бурков. – 4-е изд. – Электрон.дан. – Москва: Национальный Открытый Университет «ИНТУИТ», 2015. – Режим доступа: http://www.iprbookshop.ru/22431.html, только для зарегистрированных пользователей. – Загл. с экрана. Голицына, О.Л. Основы проектирования баз данных: учебное пособие [Электронный ресурс] / О.Л. Голицына, Т.Л. Партыка, И.И. Попов. – 2-е изд., перераб. и доп. – Электрон.дан. – Москва: ФОРУМ: ИНФРА-М, 2017. – Режим доступа: https://znanium.com/catalog.php?bookinfo=899656, только для зарегистрированных пользователей. – Загл. с экрана. Дейтел, П. Как программировать на Visual C# 2012 [Электронный ресурс] / П. Дейтел, Х. Дейтел. – 5-е изд. – Электрон.дан. – Санкт-Петербург: Питер, 2015. – Режим доступа: https://ibooks.ru/reading.php?productid=341183, только для зарегистрированных пользователей. – Загл. с экрана. Заботина, Н.Н. Проектирование информационных систем: Учебное пособие [Электронный ресурс] / Н.Н. Заботина. – Электрон.дан. – Москва: НИЦ ИНФРА-М, 2015. – Режим доступа: http://znanium.com/bookread2.php? book=454282, только для зарегистрированных пользователей. – Загл. с экрана. Карпова, И.П. Базы данных. Учебное пособие [Электронный ресурс] / И.П. Карпова. – Электрон.дан. – Санкт-Петербург: Питер, 2013. Режим доступа: https://ibooks.ru/reading.php?productid=334057, только для зарегистрированных пользователей. – Загл. с экрана. Мартишин, С. А. Базы данных. Практическое применение СУБД SQL и NoSOL-типа для применения проектирования информационных систем: Учебное пособие [Электронный ресурс] / С.А. Мартишин, В.Л. Симонов, М.В. Храпченко. – Электрон.дан. – Москва: ИД «ФОРУМ»: ИНФРА-М, 2018. – Режим доступа: http://znanium.com/bookread2.php?book=926871. Тарасов, С.В. СУБД для программиста. Базы данных изнутри [Электронный ресурс] / С.В. Тарасов. – Электрон.дан. – Москва: СОЛОНПРЕСС, 2015. – Режим доступа: https://ibooks.ru/reading.php?productid=344900, только для зарегистрированных пользователей. – Загл. с экрана. Туманов, В.Е. Основы проектирования реляционных баз данных [Электронный ресурс] / В.Е. Туманов. – Электрон.дан. – Москва: Национальный Открытый Университет «ИНТУИТ», 2016. – Режим доступа: http://www.iprbookshop.ru/16730.html, только для зарегистрированных пользователей. – Загл. с экрана. Федорова, Г.Н. Разработка, внедрение и адаптация программного обеспечения отраслевой направленности: учебное пособие [Электронный ресурс] / Г.Н. Федорова. – Электрон.дан. – Москва: КУРС: ИНФРА-М, 2018. – Режим доступа: http://znanium.com/bookread2.php?book=898670, только для зарегистрированных пользователей. – Загл. с экрана. Интерактивный учебник по Visual C# – [интернет-ресурс] – https://msdn.microsoft.com/ru-ru/library/bb383962(v=vs.90).aspx Интерактивный учебник по Visual Studio – [интернет-ресурс] – https://msdn.microsoft.com/ru-ru/library/90h82b3x(v=vs.90).aspx Приложение А Текст программы using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace DryCleaning { public partial class Sotrud : Form { static public string @Sotr; public Sotrud() { InitializeComponent(); } private void сотрудникиBindingNavigatorSaveItem_Click(object sender, EventArgs e) { this.Validate(); this.сотрудникиBindingSource.EndEdit(); this.tableAdapterManager.UpdateAll(this.химчисткаDataSet); } private void Form2_Load(object sender, EventArgs e) { // TODO: This line of code loads data into the 'химчисткаDataSet.Должность' table. You can move, or remove it, as needed. this.должностьTableAdapter.Fill(this.химчисткаDataSet.Должность); if (Auth.admin == true) { // TODO: This line of code loads data into the 'химчисткаDataSet.Сотрудники' table. You can move, or remove it, as needed. this.сотрудникиTableAdapter.Fill(this.химчисткаDataSet.Сотрудники); } else { MessageBox.Show("У вас недостаточно прав для просмотра"); this.Close(); Glavn f1 = new Glavn(); f1.Show(); } } //Процедура для добавления фотографии сотрудника в таблицу Сотрудники базы данных private void dobavFoto_Click(object sender, EventArgs e) { Bitmap image; //Bitmap для открываемого изображения OpenFileDialog open_dialog = new OpenFileDialog(); open_dialog.Filter = "Image Files(*.BMP;*.JPG;*.GIF;*.PNG)|*.BMP;*.JPG;*.GIF;*.PNG|All files (*.*)|*.*"; if (open_dialog.ShowDialog() == DialogResult.OK) { try { image = new Bitmap(open_dialog.FileName); this.фотоPictureBox.Size = image.Size; фотоPictureBox.Image = image; фотоPictureBox.Invalidate(); } catch { DialogResult rezult = MessageBox.Show("Невозможно открыть выбранный файл", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); } } фотоPictureBox.SizeMode = PictureBoxSizeMode.Zoom; this.Validate(); this.сотрудникиBindingSource.EndEdit(); this.tableAdapterManager.UpdateAll(this.химчисткаDataSet); } //Процедура сортировки табличных данных по выбранному столбцу по убыванию private void sortDesc_Click(object sender, EventArgs e) { if (ComboBoxSortColumns.SelectedIndex > -1) сотрудникиDataGridView.Sort(сотрудникиDataGridView.Columns[ComboBoxSortColumns.SelectedIndex], ListSortDirection.Descending); } //Процедура фильтрации табличных данных по фамилии сотрудника private void filtr_Click(object sender, EventArgs e) { сотрудникиBindingSource.Filter = "Фамилия='" + comboBox1.Text + "'"; } //Процедура отмены фильтрации private void button4_Click(object sender, EventArgs e) { сотрудникиBindingSource.Filter = ""; } //Процедура поиска данных private void poisk_Click(object sender, EventArgs e) { for (int i = 0; i < сотрудникиDataGridView.RowCount; i++) { сотрудникиDataGridView.Rows[i].Selected = false; for (int j = 0; j < сотрудникиDataGridView.ColumnCount; j++) if (сотрудникиDataGridView.Rows[i].Cells[j].Value != null) if (сотрудникиDataGridView.Rows[i].Cells[j].Value.ToString().Contains(textBox1.Text)) { сотрудникиDataGridView.Rows[i].Selected = true; break; } } } //Процедура отмены поиска private void button5_Click(object sender, EventArgs e) { for (int i = 0; i < сотрудникиDataGridView.RowCount; i++) { сотрудникиDataGridView.Rows[i].Selected = false; } } //Добавление данных в таблицу Сотрудники private void dobav_Click(object sender, EventArgs e) { сотрудникиBindingSource.AddNew(); } //Удаление данных из таблицы Сотрудники private void udalen_Click(object sender, EventArgs e) { сотрудникиBindingSource.RemoveCurrent(); } //Сохранение изменений данных в таблице Сотрудники private void sohran_Click(object sender, EventArgs e) { try { this.Validate(); this.сотрудникиBindingSource.EndEdit(); this.tableAdapterManager.UpdateAll(this.химчисткаDataSet); } catch { MessageBox.Show("Введены неверные данные!", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); } } //Обновление данных в таблице Сотрудники private void obnov_Click(object sender, EventArgs e) { this.сотрудникиTableAdapter.Fill(this.химчисткаDataSet.Сотрудники); } //Выход из формы private void vyhod_Click(object sender, EventArgs e) { Glavn f1 = new Glavn(); f1.Show(); this.Hide(); } //Открытие отчета Договор private void button12_Click(object sender, EventArgs e) { @Sotr = фамилияTextBox.Text; Report1 f3 = new Report1(); f3.Show(); } //Обработка ввода ошибочных данных в таблицу Сотрудники private void сотрудникиDataGridView_DataError(object sender, DataGridViewDataErrorEventArgs e) { MessageBox.Show("Введены не верные данные!", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); } //Процедура сортировки табличных данных по выбранному столбцу по возрастанию private void sortAsc_Click(object sender, EventArgs e) { if (ComboBoxSortColumns.SelectedIndex > -1) сотрудникиDataGridView.Sort(сотрудникиDataGridView.Columns[ComboBoxSortColumns.SelectedIndex], ListSortDirection.Ascending); } } } Листинг формы «Авторизация»: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.Data.SqlClient; using System.Data.Common; namespace DryCleaning { public partial class Auth : Form { static public Boolean admin; static public Boolean mened; static public Boolean sotr; static public string @fam; public Auth() { InitializeComponent(); } private void vhod_Click(object sender, EventArgs e) { //Проверка на заполнение полей авторизации if (textBox1.Text == "") { MessageBox.Show("Вы не ввели логин."); return; } if (textBox2.Text == "") { MessageBox.Show("Вы не ввели пароль."); return; } if (comboBox1.Text == "") { MessageBox.Show("Вы не выбрали тип пользователя."); return; } //создание подключения к базе данных. SqlConnection con = new SqlConnection(@"Data Source=WIN-1UIALDNCRFO\SQLEXPRESS; Initial Catalog=Химчистка; Integrated Security=True; User Instance=False"); //присвоение переменной str строки запроса string str = "select * from Авторизация " + "where Логин='" + textBox1.Text + "' " + "and Пароль='" + textBox2.Text + "'" + "and Тип_пользователя='" + comboBox1.Text + "'"; //открытие подключения к базе данных con.Open(); //создание и выполнение sql-выражения SqlCommand cmd = new SqlCommand(str, con); object obj = cmd.ExecuteScalar(); //если запрос ничего не вернул выводим сообщение if (obj == null) { MessageBox.Show("Такого логина и пароля с таким типом пользователя в БД нет."); } //иначе для директора и менеджера открываем главную форму, а для сотрудника - форму Заказы else { if (comboBox1.Text == "Директор") { Glavn f1 = new Glavn(); f1.Show(); this.Hide(); admin = true; } if (comboBox1.Text == "Менеджер") { this.Hide(); Glavn f1 = new Glavn(); f1.Show(); mened = true; } if (comboBox1.Text == "Сотрудник") { this.Hide(); @fam = textBox1.Text; ZakazySotr f15 = new ZakazySotr(); f15.Show(); sotr = true; } } } private void button3_Click(object sender, EventArgs e) { Application.Exit(); } private void button2_Click(object sender, EventArgs e) { Registr f14 = new Registr(); f14.Show(); this.Hide(); } } } Листинг формы «Регистрация»: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.Data.SqlClient; using System.Data.Common; namespace DryCleaning { public partial class Registr : Form { public Registr() { InitializeComponent(); } private void Registracia_Click(object sender, EventArgs e) { if (textBox1.Text == "") { MessageBox.Show("Вы не ввели логин."); return; } if (textBox2.Text == "") { MessageBox.Show("Вы не ввели пароль."); return; } if (textBox2.Text != textBox3.Text) { MessageBox.Show("Введенные пароли не совпадают."); return; } SqlConnection con = new SqlConnection(@"Data Source=WIN-1UIALDNCRFO\SQLEXPRESS; Initial Catalog=Химчистка; Integrated Security=True; User Instance=False"); try { string str="insert into Авторизация (Логин, Пароль, Тип_пользователя) values (@log, @pas, @p3)"; con.Open(); SqlCommand cmd = new SqlCommand(str, con); //добавим три параметра - логин, пароль, а тип учетной записи будет постоянный - сотрудник cmd.Parameters.AddWithValue("@log", textBox1.Text); cmd.Parameters.AddWithValue("@pas", textBox2.Text); cmd.Parameters.AddWithValue("@p3", "Сотрудник"); cmd.ExecuteNonQuery(); con.Close(); MessageBox.Show("Запись успешно добавлена."); this.Hide(); Auth f13 = new Auth(); f13.Show(); Auth.sotr = true; } catch { MessageBox.Show("Возможно такой логин уже существует в БД."); } } private void button2_Click(object sender, EventArgs e) { this.Hide(); Auth f13 = new Auth(); f13.Show(); } } |