Задание:
Требуется автоматизировать рабочее место системного администратора учебного заведения.
Программа может делать следующее:
- Учёт всего складского оборудования учебного заведения.
- Учёт всего оборудования установленного в аудиториях.
- Хранить список всех аудиторий.
- Иметь возможность добавить изображение аудитории.
- Хранить список всех преподавателей.
- Хранить список всех работников вычислительного центра учебного заведения.
- Хранить список всего установленного программного обеспечения в учебном заведении.
- Принимать заявки на ремонт или установку ПО от преподавателя.
- В режиме реального времени давать возможность просмотра состояния заявки конкретного преподавателя.
- Хранить заявки.
- Генерировать Microsoft Word документ на покупку нового оборудования (печать по шаблону).
- SQL панель для генерации стандартных SQL запросов и любых других запросов.
- Выводить на печать любые данные, в файл Microsoft Excel.
- Генерация отчётов об оборудовании с помощью встроенной программы AIDA64.
- Возможность добавления системного блока компьютера или ноутбука через файл отчёта программы AIDA64.
- Возможность добавлять / редактировать данные через таблицу.
- Возможность добавлять / редактировать данные через специальную форму.
- Удалять данные.
- Сортировать данные.
- Фильтровать данные.
- Искать данные.
- Хранить пароли администратора и преподавателя.
В проекте имеется разделенным доступ к функциональность проекта на администратора и пользователя.
Администратор может:
- Всё, и немного больше
Преподаватель может:
- Создавать заявку на ремонт или установку ПО.
- Проверять в реальном времени статус своей заявки.
Содержимое проекта:
Содержимое папки Data (bin/Debug/Data):
- aida64extreme520 - портативная версия программы AIDA64
- DB - папка с исходным SQL кодом, для создания базы данных и её заполнения
- Help - папка с файлом справки о проекте, а также проектом Help and Manual для изменения файла справки
- Ico - папка со всеми иконками проекта
- Img - папка для хранения изображений проекта
- Txt - папка для хранения паролей администратора и преподавателя. Позволяет входить без повторного ввода пароля
- MySQLcon.cfg - файл хранящий строку подключениия к СУБД (системе управления базами данных)
- Count.txt - системный файл
- Shablon.doc - шаблон Microsoft Word для заявки на покупку нового оборудования
Пример кода:
//Кнопка "Сохранить данные", вкладка "Ноутбуки" private void buttonSaveRecordLaptop_Click(object sender, EventArgs e) { if (_saveTableNout == false) { if (MessageBox.Show("Прежде чем вносить какие либо изменения в таблицу, прогрузите все записи!\nПоказать все записи?", "Сообщение", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.Yes) { _conMySQL.LoadTable("Param_nout", "SELECT * FROM `Param_nout`", _binSourceLaptop, dataGridVNout, NavigatorNout); _saveTableNout = true; } } else { if (checkEmptyDataGridCell(11, dataGridVNout) == true) { //Определяем индекс выбранной строки int i = dataGridVNout.CurrentRow.Index; if (_conMySQL.QueryToBool("SELECT * FROM `Param_nout`") == false) { string queryStringInsert = "INSERT INTO `Param_nout` VALUES (" + 1 + ",'" + dataGridVNout[1, i].Value + "','" + dataGridVNout[2, i].Value + "','" + dataGridVNout[3, i].Value + "','" + dataGridVNout[4, i].Value + "','" + dataGridVNout[5, i].Value + "','" + dataGridVNout[6, i].Value + "','" + dataGridVNout[7, i].Value + "','" + dataGridVNout[8, i].Value + "','" + dataGridVNout[9, i].Value + "','" + dataGridVNout[10, i].Value + "','" + dataGridVNout[11, i].Value + "','" + dataGridVNout[12, i].Value + "','" + dataGridVNout[13, i].Value + "','" + dataGridVNout[14, i].Value + "')"; if (_conMySQL.QueryToBool(queryStringInsert) == false & _conMySQL.checkException == false) { i++; MessageBox.Show("Строка " + i + " успешно сохранена!", "Сообщение", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { i++; MessageBox.Show("Строка " + i + " не сохранена!", "Сообщение", MessageBoxButtons.OK, MessageBoxIcon.Warning); } } else { string Count = _conMySQL.AgregateQueryToDataGrid("SELECT COUNT(*) FROM `Param_nout`"); int chislo = Convert.ToInt32(Count); chislo--; if (i <= chislo) { string queryStringUpdate = "UPDATE `Param_nout` SET `Inv_Nomer` = '" + dataGridVNout[1, i].Value + "', `OS` = '" + dataGridVNout[2, i].Value + "', `Nazvanie` = '" + dataGridVNout[3, i].Value + "', `Protsessor` = '" + dataGridVNout[4, i].Value + "', `Video` = '" + dataGridVNout[5, i].Value + "', `Diag` = '" + dataGridVNout[6, i].Value + "', `Pamyat` = '" + dataGridVNout[7, i].Value + "', `HDD` = '" + dataGridVNout[8, i].Value + "', `Status` = '" + dataGridVNout[9, i].Value + "', `Tsena` = '" + dataGridVNout[10, i].Value + "', `Dop_Inf` = '" + dataGridVNout[11, i].Value + "', `Data_vvoda` = '" + dataGridVNout[12, i].Value + "', `Data_spisania` = '" + dataGridVNout[13, i].Value + "', `Auditoria` = '" + dataGridVNout[14, i].Value + "' WHERE `ID` = " + dataGridVNout[0, i].Value; if (_conMySQL.QueryToBool(queryStringUpdate) == false & _conMySQL.checkException == false) { i++; MessageBox.Show("Строка " + i + " успешно изменена!", "Сообщение", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { i++; MessageBox.Show("Строка " + i + " не изменена!", "Сообщение", MessageBoxButtons.OK, MessageBoxIcon.Warning); } } else { string maxID = _conMySQL.AgregateQueryToDataGrid("SELECT MAX(ID) FROM `Param_nout`"); int int_maxID = Convert.ToInt32(maxID); int_maxID++; string queryStringInsert = "INSERT INTO `Param_nout` VALUES (" + int_maxID + ",'" + dataGridVNout[1, i].Value + "','" + dataGridVNout[2, i].Value + "','" + dataGridVNout[3, i].Value + "','" + dataGridVNout[4, i].Value + "','" + dataGridVNout[5, i].Value + "','" + dataGridVNout[6, i].Value + "','" + dataGridVNout[7, i].Value + "','" + dataGridVNout[8, i].Value + "','" + dataGridVNout[9, i].Value + "','" + dataGridVNout[10, i].Value + "','" + dataGridVNout[11, i].Value + "','" + dataGridVNout[12, i].Value + "','" + dataGridVNout[13, i].Value + "','" + dataGridVNout[14, i].Value + "')"; if (_conMySQL.QueryToBool(queryStringInsert) == false & _conMySQL.checkException == false) { i++; MessageBox.Show("Строка " + i + " успешно сохранена!", "Сообщение", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { i++; MessageBox.Show("Строка " + i + " не сохранена!", "Сообщение", MessageBoxButtons.OK, MessageBoxIcon.Warning); } } } } else { MessageBox.Show("Проверьте ячейки таблицы\nСтрока: " + indexRow + ", ячейка: " + indexColumn, "Ошибка сохранения!", MessageBoxButtons.OK, MessageBoxIcon.Warning); } } }
Перед первым запуском проекта требуется внимательно изучить файл инструкции Настройки.docx.
Содержание архива
-
Исходный код на C# для Visual Studio
-
Исходный код на SQL MySQL (XAMPP)
-
Файл инструкции по установке и настройке
Zicise