Курсовая работа, Рзработка программы для учета товаров на складе. Разработка программы для автоматизации учета товаров на складе
Скачать 2.17 Mb.
|
ЗаключениеВ работе был рассмотрен объектный и функциональный подходы проектирования и разработки информационных систем. В ходе функционального проектирования были определены модели функциональные и нефункциональные требования, алгоритмы работы системы. Объектное проектирование информационной системы позволило разработать модель классов программного обеспечения, модель его компонентов. В работе также выполнено проектирование информационного обеспечения в виде базы данных в СУБД SQLite. Проектирование и реализация информационной системы были осуществлены с применением современных методов разработки и дизайна. Разработка всех моделей выполнена в среде проектирования Visual Paradigm for UML версии 13.2. Разработка программного обеспечения ИС была выполнена с применением объектно-ориентированного подхода в среде разработки MS Visual Studio 2015 на высокоуровневом языке программирования C# .NET. Для реализации и управления базой данных системы использовалась среда DB Browser for SQLite, а также набор библиотек для интегрирования возможности разработки и использования СУБД в среде MS Visual Studio: провайдер SQLite для .NET, драйвера SQLite. Результаты выполненной работы представлены: техническим проектом информационной системы, в котором приведены и описаны все модели системы; разработанным программным продуктом; разработанной базой данных; разработанной программной документацией, в состав которой входят: настоящий отчет, руководство пользователя. Список литературыБалдин К.В., Уткин В.Б. Информационные системы в экономике. М.– Издательский центр Академия, 2015 – 288 с. Баранкова И.А. Нотация моделирования бизнес-процессов BPMN и ее применение при проектировании автоматизированных систем.: Молодежный научно-технический вестник. – Электронный журнал.: Изд. ФГБОУ ВПО «МГТУ им. Н.Э. Баумана». Эл. No. ФС77-51038. Бардина Н.В. Диаграмма классов и модель «сущность-связь» как логические модели информационной системы. // Модели, системы, сети в экономике, технике, природе и обществе. 2012., № 2 (3) Буч Г. UML. Классика CS / Буч Г., Якобсон А., Рамбо Дж.; пер. с англ.; под общей ред. проф. С. Орлова. – СПб.: Питер, 2009. – [2-е изд.]. – 736 с. Вершинин М., Иванова Е. C# Enterprise Edition. Технологии проектирования и разработки. – М.: BHV, 2013 г. – 1088 с. Джозеф Албахари – C#. Справочник. Полное описание языка. Пер. с англ. - М: ООО «И.Д. Вильямс», 6-е изд., 2016, 1040 с. Киреева Н.С. Складское хозяйство Учебное пособие - Москва: Издательский цент "Академия", 2009. - 192 с. - (Непрерывное профессиональное образование: Логистика) Кратчен Ф., Новиков Л. – Введение в Rational Unified Process. СПб.: Вильямс, 2002. – 240 с. Кулябов Д.С., Королькова А.В. Введение в формальные методы описания бизнес-процессов: Учеб. Пособие. – М.: РУДН, 2014. – 173 с. Нотация BPMN. [Электронный ресурс] URL: http://bpmsoft.org/bpmn/ (дата обращения: 12.10.2020 г.) Обзор программ складского учета [Электронный ресурс] URL: http://sklad-prog.ru/obzor/o_ind.htm/ (дата обращения: 10.10.2020) Пискунов А.Г. Неполное Руководство по SQLite для пользователей Windows, пер.: А.Г.Пискунов, 2015 г. – 119 с. Тагиров Т. С. СУБД. Учебно-методическое пособие. КФУ ИГиНТ, ИММ, Казань, 2013. Человеко-машинное взаимодействие. – Учебное пособие для дистанционного образования. – Сибирский гос. университет телекоммуникаций и информатики. Новосибирск, 2009, 49 с. Jay A. Kreibich. Using SQLite. – O’Reilly Media, Inc., First Edition – 2012. Object Management Group Inc., UML 2.0 Infrastructure Specification: Document number 03-09-15 (Спецификация инфраструктуры языка UML 2.0: Документ номер 03-09-15). сентябрь 2003 г. RUP. Rational Unified Process, 2003, Version 2003.06.13 SAP Power Designer. User’s manual. Document Ver.: 16.5 SP05-2015-03-30 Svetlin Nakov & Co. – Fundamentals of computer programming with C#. The Bulgarian C# book: – Sofia, 2013, 1122 p. Visual Paradigm for UML 13. User’s guide.: Software documentation – user’s manual - 1485 pages. Visual Studio IDE, Редактор кода. // [электронная документация] // MSDN. Комплекс технической документации по продуктам Microsoft. Режим доступа: https://docs.microsoft.com/ru-ru/windows/uwp/get-started/ (дата обращения: 12.10.2020 г.) Приложение А. Фрагменты исходного кода программных модулей на языке программирования высокого уровня C# .NETЛистинг А.1 — Код формы подсистемы учета вариантов изделий
Листинг А.2 — Код модуля обработки учетных операций using System; using System.Windows.Forms; namespace WHControl { static class Operations { // --------------------------------------------------- // ВЫЗОВ ТАБЛИЦЫ УЧЕТА // --------------------------------------------------- #region "SHOW ACCOUNTING TABLES" // --------- Операции public static void ShowOperationTable(formMain MMenu) { formQueries QF = new formQueries(); QF.MdiParent = MMenu; QF.Show(); } // --------------------------------------------------- // --------- Операции public static void ShowReport(formMain MMenu, int op_id, string descr, DateTime D, DateTime T, bool Type, string employee, DataGridView DGVC) { formDocument DF = new formDocument(); DF.MdiParent = MMenu; DF.ApplyHTML(Operations.HTMLDocumentText(op_id, descr, D, T, Type, employee, DGVC)); DF.Show(); } // --------------------------------------------------- public static void GetComponents(int id, DataGridView DGV) { // Предварительно удаляем все DGV.Rows.Clear(); // Получаем строки DATABASE.ProductComponent[] PC = DATABASE.GetOperationComponents(id); DGV.Rows.Add(PC.Length); for (int i = 0; i < PC.Length; i++) { // Компонуем строку DGV.Rows[i].Cells[0].Value = PC[i].id; DGV.Rows[i].Cells[1].Value = PC[i].category; DGV.Rows[i].Cells[2].Value = PC[i].vendor; DGV.Rows[i].Cells[3].Value = PC[i].detailName + Environment.NewLine + PC[i].feat_1 + Environment.NewLine + PC[i].feat_2; DGV.Rows[i].Cells[4].Value = PC[i].qty; DGV.Rows[i].Cells[5].Value = PC[i].cid; DGV.Rows[i].Cells[6].Value = PC[i].vid; } } // --------------------------------------------------- #endregion // --------------------------------------------------- // Конструктор отчетаф public static string HTMLDocumentText(int op_id, string descr, DateTime D, DateTime T, bool Type, string employee, DataGridView DGVC) { string HTML = ""; //--------------------------------------------------- HTML += ""; HTML += ""; HTML += " "; HTML += " "; HTML += " ОТЧЕТ ОБ ОПЕРАЦИИ СКЛАДСКОГО УЧЕТА";HTML += "
HTML += " Учетные позиции:";HTML += " HTML += " rules=\"all\" width=\"100%\">"; HTML += " | |||||||||||||
№п/п | ";ID | ";Тип | ";Производитель | ";Деталь | ";Кол-во | ";||||||||
(1) | ";(2) | ";(3) | ";(4) | ";(5) | ";(6) | ";||||||||
" + (i + 1).ToString() + " | ";" + (Convert.ToInt32(DGVC.Rows[i].Cells[0].Value)).ToString("0000") + " | ";" + DGVC.Rows[i].Cells[1].Value.ToString() + " | ";" + DGVC.Rows[i].Cells[2].Value.ToString() + " | ";" + DGVC.Rows[i].Cells[3].Value.ToString() + " | ";" + Convert.ToInt32(DGVC.Rows[i].Cells[4].Value) + " | ";
//---------------------------------------------------
return HTML;
}
// ---------------------------------------------------
// ВЫЗОВ КОМАНД УПРАВЛЕНИЯ ДАННЫМИ
// ---------------------------------------------------
#region "DATA MANAGEMENT"
// --------- Операции
public static void AddNewOperationRow()
{
// read row
string UName = Users.UserName;
string descr = "Краткое описание";
DateTime D = DateTime.Now.Date, T = DateTime.Now;
bool Type = true;
// show dialog
formQuery QFD = new formQuery(true, UName, descr, 0, Type, D, T);
if (QFD.ShowDialog() == DialogResult.OK)
{
// new values
UName = QFD.txtUser.Text;
descr = QFD.txtDescription.Text;
D = QFD.dtpDate.Value.Date;
T = QFD.dtpTime.Value;
Type = QFD.rbtIn.Checked;
// commit db
DATABASE.AddOperation(UName, descr, D, T, Type);
int ccnt = QFD.dgvTableComponents.RowCount;
int old_q, new_q, det_id;
int op_id = DATABASE.LastAddedOperationID();
for (int i = 0; i < ccnt; i++)
{
det_id=Convert.ToInt32(QFD.dgvTableComponents.Rows[i].Cells[0].Value);
old_q = DATABASE.GetQuantity(det_id);
new_q = Convert.ToInt32(QFD.dgvTableComponents.Rows[i].Cells[4].Value);
// добавить позицию операции
DATABASE.AddOperationComponent
(
op_id,
det_id,
new_q
);
// обновить данные склада
DATABASE.SetQuantity
(
det_id,
(Type) ? (old_q + new_q) : (old_q - new_q)
);
}
}
// dispose
QFD.Dispose();
}
// ---------------------------------------------------
public static void DeleteOperationRow(DataGridViewRow row)
{
if (MessageBox.Show("Удалить операцию ID=" +
row.Cells[0].Value.ToString() +
" (" + row.Cells[1].Value.ToString() +
") и все ее данные ?",
"Удаление",
MessageBoxButtons.YesNo,
MessageBoxIcon.Question)
== System.Windows.Forms.DialogResult.Yes)
{
int operation_id = Convert.ToInt32(row.Cells[0].Value);
DATABASE.DeleteOperation(operation_id);
DATABASE.DeleteOperationComponents(operation_id);
}
}
// ---------------------------------------------------
public static void UpdateOperationRow(DataGridViewRow row)
{
// read row
int id = Convert.ToInt32(row.Cells[0].Value);
string UName = row.Cells[4].Value.ToString();
string descr = row.Cells[1].Value.ToString();
DateTime D = Convert.ToDateTime(row.Cells[2].Value);
DateTime T = Convert.ToDateTime(row.Cells[3].Value);
bool Type = Convert.ToBoolean(row.Cells[5].Value);
// show dialog
formQuery QFD = new formQuery(false, UName, descr, id, Type, D, T);
if (QFD.ShowDialog() == DialogResult.OK)
{
// new values
UName = QFD.txtUser.Text;
descr = QFD.txtDescription.Text;
D = QFD.dtpDate.Value.Date;
T = QFD.dtpTime.Value;
// commit db
// update general data
DATABASE.UpdateOperationGeneralData(UName, descr, D, T, id);
}
// dispose
QFD.Dispose();
}
// ---------------------------------------------------
#endregion
}
}