Главная страница
Навигация по странице:

  • Номер операции

  • Ответственный

  • Курсовая работа, Рзработка программы для учета товаров на складе. Разработка программы для автоматизации учета товаров на складе


    Скачать 2.17 Mb.
    НазваниеРазработка программы для автоматизации учета товаров на складе
    Дата11.05.2022
    Размер2.17 Mb.
    Формат файлаdocx
    Имя файлаКурсовая работа, Рзработка программы для учета товаров на складе.docx
    ТипКурсовая
    #522909
    страница8 из 8
    1   2   3   4   5   6   7   8

    Заключение



    В работе был рассмотрен объектный и функциональный подходы проектирования и разработки информационных систем.

    В ходе функционального проектирования были определены модели функциональные и нефункциональные требования, алгоритмы работы системы.

    Объектное проектирование информационной системы позволило разработать модель классов программного обеспечения, модель его компонентов.

    В работе также выполнено проектирование информационного обеспечения в виде базы данных в СУБД SQLite.

    Проектирование и реализация информационной системы были осуществлены с применением современных методов разработки и дизайна.

    Разработка всех моделей выполнена в среде проектирования Visual Paradigm for UML версии 13.2.

    Разработка программного обеспечения ИС была выполнена с применением объектно-ориентированного подхода в среде разработки MS Visual Studio 2015 на высокоуровневом языке программирования C# .NET.

    Для реализации и управления базой данных системы использовалась среда DB Browser for SQLite, а также набор библиотек для интегрирования возможности разработки и использования СУБД в среде MS Visual Studio: провайдер SQLite для .NET, драйвера SQLite.

    Результаты выполненной работы представлены:

    • техническим проектом информационной системы, в котором приведены и описаны все модели системы;

    • разработанным программным продуктом;

    • разработанной базой данных;

    • разработанной программной документацией, в состав которой входят: настоящий отчет, руководство пользователя.



    Список литературы





    1. Балдин К.В., Уткин В.Б. Информационные системы в экономике. М.– Издательский центр Академия, 2015 – 288 с.

    2. Баранкова И.А. Нотация моделирования бизнес-процессов BPMN и ее применение при проектировании автоматизированных систем.: Молодежный научно-технический вестник. – Электронный журнал.: Изд. ФГБОУ ВПО «МГТУ им. Н.Э. Баумана». Эл. No. ФС77-51038.

    3. Бардина Н.В. Диаграмма классов и модель «сущность-связь» как логические модели информационной системы. // Модели, системы, сети в экономике, технике, природе и обществе. 2012., № 2 (3)

    4. Буч Г. UML. Классика CS / Буч Г., Якобсон А., Рамбо Дж.; пер. с англ.; под общей ред. проф. С. Орлова. ­– СПб.: Питер, 2009. – [2-е изд.]. – 736 с.

    5. Вершинин М., Иванова Е. C# Enterprise Edition. Технологии проектирования и разработки. – М.: BHV, 2013 г. – 1088 с.

    6. Джозеф Албахари – C#. Справочник. Полное описание языка. Пер. с англ. - М: ООО «И.Д. Вильямс», 6-е изд., 2016, 1040 с.

    7. Киреева Н.С. Складское хозяйство Учебное пособие - Москва: Издательский цент "Академия", 2009. - 192 с. - (Непрерывное профессиональное образование: Логистика)

    8. Кратчен Ф., Новиков Л. – Введение в Rational Unified Process. СПб.: Вильямс, 2002. – 240 с.

    9. Кулябов Д.С., Королькова А.В. Введение в формальные методы описания бизнес-процессов: Учеб. Пособие. – М.: РУДН, 2014. – 173 с.

    10. Нотация BPMN. [Электронный ресурс] URL: http://bpmsoft.org/bpmn/ (дата обращения: 12.10.2020 г.)

    11. Обзор программ складского учета [Электронный ресурс] URL: http://sklad-prog.ru/obzor/o_ind.htm/ (дата обращения: 10.10.2020)

    12. Пискунов А.Г. Неполное Руководство по SQLite для пользователей Windows, пер.: А.Г.Пискунов, 2015 г. – 119 с.

    13. Тагиров Т. С. СУБД. Учебно-методическое пособие. КФУ ИГиНТ, ИММ, Казань, 2013.

    14. Человеко-машинное взаимодействие. – Учебное пособие для дистанционного образования. – Сибирский гос. университет телекоммуникаций и информатики. Новосибирск, 2009, 49 с.

    15. Jay A. Kreibich. Using SQLite. – O’Reilly Media, Inc., First Edition – 2012.

    16. Object Management Group Inc., UML 2.0 Infrastructure Specification: Document number 03-09-15 (Спецификация инфраструктуры языка UML 2.0: Документ номер 03-09-15). сентябрь 2003 г.

    17. RUP. Rational Unified Process, 2003, Version 2003.06.13

    18. SAP Power Designer. User’s manual. Document Ver.: 16.5 SP05-2015-03-30

    19. Svetlin Nakov & Co. – Fundamentals of computer programming with C#. The Bulgarian C# book: – Sofia, 2013, 1122 p.

    20. Visual Paradigm for UML 13. User’s guide.: Software documentation – user’s manual - 1485 pages.

    21. Visual Studio IDE, Редактор кода. // [электронная документация] // MSDN. Комплекс технической документации по продуктам Microsoft. Режим доступа: https://docs.microsoft.com/ru-ru/windows/uwp/get-started/ (дата обращения: 12.10.2020 г.)



    Приложение А. Фрагменты исходного кода программных модулей на языке программирования высокого уровня C# .NET


    Листинг А.1 — Код формы подсистемы учета вариантов изделий

    using System;

    using System.Windows.Forms;
    namespace WHControl

    {

    public partial class formProducts : Form

    {

    // Constructor

    public formProducts()

    {

    InitializeComponent();

    }
    // Load data

    private void formProducts_Load(object sender, EventArgs e)

    {

    UpdateTable(-1);

    if (dgvTable.SelectedRows.Count > 0)

    ShowComponents(Convert.ToInt64(dgvTable.Rows[dgvTable.SelectedRows[0].Index].Cells[0].Value));

    }
    // update list

    public void UpdateTable(int SR)

    {

    string Filter = (chkFName.Checked && txtName.Text.Trim() != "")

    ? "%" + txtName.Text.Trim() + "%"

    : "%";

    // Фильтр изделий

    this.productListTableAdapter.FillByFilter(this.wh_databaseDataSet.ProductList, Filter, Filter);

    // Таблица компонентов изделия

    if (dgvTable.SelectedRows.Count > 0)

    {

    if (dgvTable.Rows[dgvTable.SelectedRows[0].Index].Cells[0].Value.ToString().Trim() != "")

    {

    ShowComponents(Convert.ToInt64(dgvTable.Rows[(SR == -1) ? dgvTable.SelectedRows[0].Index : SR].Cells[0].Value));

    }

    }

    else

    {

    ShowComponents(0);

    }

    }
    // operative filters applying

    private void txtName_TextChanged(object sender, EventArgs e)

    {

    UpdateTable(-1);

    }

    private void chkFName_CheckedChanged(object sender, EventArgs e)

    {

    UpdateTable(-1);

    }

    // Редактирование выбранной записи

    private void dgvTable_CellDoubleClick(object sender, DataGridViewCellEventArgs e)

    {

    if (dgvTable.Rows[e.RowIndex].Cells[0].Value.ToString().Trim() != "")

    {

    Products.UpdateProductRow(dgvTable.Rows[e.RowIndex]);

    }

    }
    // Отображение компонентов выбранной записи

    private void dgvTable_RowEnter(object sender, DataGridViewCellEventArgs e)

    {

    // Таблица компонентов изделия

    if (e.RowIndex >= 0)

    {

    if (dgvTable.Rows[e.RowIndex].Cells[0].Value.ToString().Trim() != "")

    {

    ShowComponents(Convert.ToInt64(dgvTable.Rows[e.RowIndex].Cells[0].Value));

    }

    }

    }
    // Компоненты

    protected void ShowComponents(long product_ID)

    {

    this.componentListTableAdapter.FillByProduct(this.wh_databaseDataSet.ComponentList, product_ID);

    //

    if (dgvTableComponents.RowCount > 0)

    {

    for (int i = 0; i < dgvTableComponents.RowCount; i++)

    {

    dgvTableComponents.Rows[i].Cells[3].Value =

    dgvTableComponents.Rows[i].Cells[10].Value.ToString() + Environment.NewLine +

    dgvTableComponents.Rows[i].Cells[5].Value.ToString() + Environment.NewLine +

    dgvTableComponents.Rows[i].Cells[6].Value.ToString();

    }

    }

    }

    }

    }


    Листинг А.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 += " ";

    HTML += " ";

    HTML += " ";

    HTML += " ";

    HTML += "
    Номер операции:" + op_id.ToString("0000") + "
    Основание:" + descr + "
    Дата:" + D.ToString("D") + "
    Время:" + T.ToShortTimeString() + "
    Тип:" + ((Type) ? "поступление" : "выдача") + "
    Ответственный:" + employee + "
    ";
    HTML += "

    Учетные позиции:

    ";

    HTML += "
    HTML += " rules=\"all\" width=\"100%\">";

    HTML += " ";

    HTML += " ";

    HTML += " ";

    HTML += " ";

    HTML += " ";

    HTML += " ";

    HTML += " ";

    HTML += " ";

    HTML += " ";

    HTML += " ";

    HTML += " ";

    HTML += " ";

    HTML += " ";

    HTML += " ";

    HTML += " ";

    HTML += " ";

    //---------------------------------------------------

    if (DGVC.RowCount > 0)

    {

    for (int i = 0; i < DGVC.RowCount; i++)

    {

    HTML += " ";

    HTML += " ";

    HTML += " ";

    HTML += " ";

    HTML += " ";

    HTML += " ";

    HTML += " ";

    HTML += " ";
    }

    }

    //---------------------------------------------------

    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

    }

    }
    1   2   3   4   5   6   7   8


    написать администратору сайта