Разработка базы данных и прикладного программного обеспечения для учёта автозапчастей и предоставляемых услуг автосервиса

Сравнительный анализ автоматизированных систем для предприятий. Проектирование концептуальной базы данных для учёта автозапчастей и предоставляемых услуг автосервиса. Разработка прикладного программного обеспечения, пользовательского интерфейса.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 19.07.2014
Размер файла 1,5 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

- Наглядный и функциональный механизм установки связей между таблицами, в том числе "многие ко многим" с созданием таблицы связей;

- Reverse Engineering - восстановление структуры таблиц из уже существующей на сервере БД (связи восстанавливаются в InnoDB);

- Удобный редактор SQL запросов, позволяющий сразу же отправлять их серверу и получать ответ в виде таблицы;

- Возможность редактирования данных в таблице в визуальном режиме.

После создания базы данных необходимо установить соединение с приложением. Так как был использован язык программирования C#, для соединения с СУБД необходима библиотека-коннектор. В качестве библиотеки была выбрана mysql-connector-net 6.8.3 Так же для соединения используется класс MySqlComm. Он представляет инструкцию Transact-SQL или хранимую процедуру, выполняемую над базой данных. Для использования MySQL необходимо подключить MySql. Data. MySqlClient.

Далее необходимо создать новое подключение. Создаем переменную Conn, которая будет использоваться для выполнения запросов к БД, указываем localhost и номер порта для соединения, а так же логин и пароль базы данных:

public static MySqlConnection Conn = new MySqlConnection ("Data Source = localhost; Port= 3306; User Id= admin; Password= *******; ");

Создаем переменную Query, которая будет содержать непосредственно текст запроса:

public static MySqlCommand Query = new MySqlCommand ();

Запрос на выбор используемой базы данных:

try

{

Conn. Open ();

// открывает соединение}

catch (MySqlException SSDB_Exception)

{

// Ошибка - выходим

MessageBox. Show ("Проверьте настройки соединения, невозможно соединиться с базой данных! \nОшибка: " + SSDB_Exception. Message);

return;

}

Query.commandText = "USE STO; "; // текст запроса, выбираем использование базы данных "STO”

Query. ExecuteNonQuery ();

Данная строка присутствует после каждого запроса. Команда ExecuteNonQuery выполняет инструкцию SQL применительно к свойству Connection и возвращает количество измененных строк.

После того, как выбрана используемая БД, можно совершать запросы, такие как выборка данных, добавление данных, удаление данных, обновление данных в БД. Примеры запросов представлены ниже.

Запрос на выборку данных:

Query.commandText = "SELECT * FROM КЛИЕНТ";

Запрос на добавление данных в базу:

Query.commandText = "INSERT INTO КЛИЕНТ (ИД_клиента, ФИО_клиента) VALUES ('" + IdKlienta + "','" + textBox1. Text + "'); ";

Запрос на обновление данных:

Query.commandText = "UPDATE КЛИЕНТ SET ФИО_клиента = '" + textBox1. Text + "' WHERE ИД_ клиента = '" + IdKlienta +"'";

Запрос на удаление данных:

Query.commandText = "DELETE FROM КЛИЕНТ WHERE ИД_ клиента = '" + IdKlienta + "'";

Чтобы вывести данные в табличном виде на экран необходимо сформировать источник данных, добавить туда данные, извлеченные из БД и заполнить ими соответствующий элемент на форме:

DataSet dataSet = new DataSet ();

DataTable table = dataSet. Tables. Add ();

dataSet. Load (Query. ExecuteReader (), LoadOption. OverwriteChanges, table);

dataGridView1. DataSource = table;

Выборка может быть двух видов: когда запрос возвращает нам одно значение и когда запрос возвращает нам набор значений. Обрабатывать их соответственно можно по-разному. Если запрос нам возвращает одно значение:

string znachenie = MyCommand. ExecuteScalar (). ToString ();

Если запрос возвращает множество значений:

MySqlDataReaderMyDataReader;

MyDataReader=myCommand. ExecuteReader ();

while (MyDataReader. Read ()) {string result = MyDataReader. GetString (0); // Получаем строку int id = MyDataReader. GetInt32 (1); // Получаем целое число} MyDataReader. Close (); После завершения использования БД необходимо закрывать соединение командой con. Close.

Заключение

В ходе выполнения выпускной квалификационной работы были полностью выполнены следующие задачи:

- проведен сравнительный анализ автоматизированных систем для предприятий;

- обоснован выбор средств разработки БД: СУБД и языка программирования;

- создана концептуальная модель данных;

- разработана БД учета автозапчастей и предоставляемых услуг автосервиса;

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

Выбирая СУБД главными критериями выбора были следующие: тип лицензии продукта; скорость работы; наличие полной документации. Всем этим критериям соответствует выбранная СУБД MySQL. Для соединения СУБД c программой была использована библиотеки mysql-connector-net 6.8.3 Каждая таблица спроектированной БД проверена на соответствие требованиям 3 нормальной форме для достижения минимальной избыточности данных.

В программе предусмотрена защита пользовательских данных путём ввода логина и пароля, а так же шифрованием данных в базе. Пароль и логин можно изменить в соответствующем меню программы. При запуске программы появляется окно авторизации, в котором сотрудник вводит логин и пароль, в случае если данные верны, происходит открытие основной формы. Интерфейс системы спроектирован с учетом работы неопытных пользователей без необходимости дополнительного обучения, что позволяет уменьшить временные затраты на внедрение программного продукта на предприятии. Реализованы следующие функции обработки данных: пополнение базы данных, изменение (редактирование и удаление) данных, поиск по заданным критериям, начисление заработной платы, формирование отчетности.

В программе предусмотрена история изменений данных, таких как продажа товара, оформление договора, оплата клиентом товаров и др. Историю можно отсортировать по дате, определённому клиенту или сотруднику, выполнившему работы, а так же по видам действий, таким как продажа, заказ услуг, оплата, и т.п. Пользователь может посмотреть всю необходимую ему информацию о том, что произошло за день, какие задачи нужно выполнить.

Для того чтобы добавить клиента пользователю необходимо заполнить данные о клиенте, за тем данные об автомобиле данного клиента, после чего выбрать парковочное место, где автомобиль клиента будет находиться во время ремонта. Если место занято, программа предложит пользователю одно из свободных мест. После завершения всех работ клиент забирает свой автомобиль со стоянки, и занимаемое им место становится доступным для стоянки других автомобилей.

Для оформления клиентом оплаты предусмотрена форма, на которой представлены клиенты, ещё не оплатившие заказ. Для того, чтобы посчитать сумму заказанных товаров и услуг для клиента необходимо выбрать клиента, оформившего заказ из списка клиентов, и общая стоимость, остаток и сдача будут посчитаны автоматически. Так же предусмотрена возможность предоплаты товара, наличный и безналичный расчет.

Для контроля количества запчастей на складе предприятия предусмотрены уведомления о том, что запчастей на складе остается мало, и их необходимо заказать у поставщика. Чтобы произвести заказ необходимо выбрать соответствующую ссылку, после чего пользователь попадает на форму заказа. Далее необходимо ввести необходимое количество для заказа товара.

Для подсчета заработной платы, выдаваемой сотрудникам, предусмотрена форма выдачи зарплаты. При подсчете заработной платы сотрудника учитываются такие факторы, как оклад, соответствующий занимаемой им должности, а так же премия за каждую выполненную сотрудником работу в зависимости от количества затраченных на данную работу часов. Для вывода суммы зарплаты на экран пользователю необходимо просто выбрать сотрудника из списка, и его оклад и премия за все выполненные работы будут посчитаны автоматически. Предусмотрена возможность выдать зарплату одним нажатием тем сотрудникам, которым зарплата ещё не выдавалась в этом месяце.

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

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

Разработанный программный комплекс проходит тестовую эксплуатацию на предприятии.

Библиографический список

1. Радченко, М. Г.1С: Предприятие 8.1 Практическое пособие разработчика / М.Г. Радченко. - Питер 1С-Паблишинг, 2007. - 512 с.

2. Бартеньев, О. В.1С: Предприятие: программирование для всех / О.В. Бартеньев. - Диалог-МИФИ, 2005. - 464 с.

3. Малков, О.Б. Работа с СУБД MySQL: учеб. пособие / О.Б. Малков, М.В. Девятерикова. - Омск: Изд-во ОмГТУ, 2010. - 84 с.

4. Кузнецов, М.С. Самоучитель MySQL 5/М.С. Кузнецов, И.И. Симдянов. - БХВ-Петербург, 2006. - 546 с.

5. Бен-Ари, М. Языки программирования: практ. сравнит. анализ: Учеб. по яз. программирования / М. Бен-Ари, В.С. Штаркман, М.Н. Яковлева. - М.: Мир, 2000. - 366 с.

6. Павловская, Т.А. С#. Программирование на языке высокого уровня: Учеб. для вузов / Т.А. Павловская. - СПб.: Питер, 2009. - 432 с.

7. Шилдт, Г. С# полное руководство / Г. Шилдт. - Вильямс, 2011. - 1056 с.

8. Неш, Т, С# 2008: ускоренный курс для профессионалов / Т. Неш. - Диалектика - Вильямс, 2008. - 576 с.

9. Павловская, Т.А. С/C++. Программирование на языке высокого уровня: Учеб. для вузов / Т.А. Павловская. - СПб.: Питер, 2011. - 461 с.

10. Эккель, Б. Философия Java. Библиотека программиста / Б. Эккель. - 4-е изд. - СПб.: Питер, 2011. - 640 с.

11. Томас, М. Базы данных. Проектирование, реализация, сопровождение / М. Томас. - Москва-Санкт-Петербург-Киев, 2007. - 1111 с.

12. Диго, С.М. База данных: проектирование и использование: учебник / С. М Диго. - М.: Финансы и статистика, 2005. - 546 с.

13. Дейтл, К. Дж. Введение в системы баз данных: [пер. с анг.] / К. Дж. Дейт. - 6-е изд. - СПб.: Изд. Дом Вильямс, 2000. - 786 с.

14. Елькин Б.И. Дипломное проектирование: методические указания для студентов обучающихся по специальности 230101 и направления подготовки бакалавров 230100/Б.И. Елькин, В.И. Потапов, О.П. Шафеева. - Омск: Изд-во ОмГТУ, 2007. - 64 с.

Приложение

using System;

using System. Data;

using MySql. Data. MySqlClient;

using System. Windows. Forms;

namespace STO

{

public partial class OsnForm: Form

{

public static MySqlConnection Connection =

new MySqlConnection ("Data Source=localhost; Port= 3306; User Id= root; Password= 21061992; "); // определение подключения

public static MySqlCommand Query = new MySqlCommand ();

public OsnForm ()

{

InitializeComponent ();

Query. Connection = Connection;

try

{

Connection. Open ();

Query.commandText = "USE autoshop; "; // выбор используемой базы

Query. ExecuteNonQuery ();

}

catch (Exception ex)

{

MessageBox. Show (ex. Message, @"Проверьте подключение к базе данных");

}

}

private void OsnForm_FormClosing (object sender, FormClosingEventArgs e) // закрытие приложения

{

try

{

Dispose ();

Environment. Exit (0);

}

catch (Exception)

{

}

}

public void Loading () // процедура загрузки таблицы

{

try

{

Query.commandText = "SELECT * FROM текущие_операции ORDER BY Дата DESC, Время DESC";

Query. ExecuteNonQuery ();

DataSet dataSet = new DataSet ();

DataTable table = dataSet. Tables. Add ();

dataSet. Load (Query. ExecuteReader (), LoadOption. OverwriteChanges, table);

dataGridView. DataSource = table;

dataGridView. Columns [0]. Visible = false;

}

catch (Exception ex)

{

MessageBox. Show (ex. Message, @"Не удалось загрузить таблицу");

}

}

private void OsnForm_Load (object sender, EventArgs e)

{

Loading ();

// MessageBox. Show (DateTime. Now. ToString ("yyyy-MM-dd"));

// MessageBox. Show (DateTime. Now. ToShortTimeString ());

}

// открытие форм

private void bMaster_Click (object sender, EventArgs e)

{

try

{

Connection. Close ();

var form = new Master ();

form. Show ();

Hide ();

}

catch (Exception)

{

}

}

private void bKlient_Click (object sender, EventArgs e)

{

try

{

Connection. Close ();

var form = new Klient ();

form. Show ();

Hide ();

}

catch (Exception)

{

}

}

private void bAvto_Click (object sender, EventArgs e)

{

try

{

Connection. Close ();

var form = new Avto ();

form. Show ();

Hide ();

}

catch (Exception)

{

}

}

private void bPostavshik_Click (object sender, EventArgs e)

{

try

{

Connection. Close ();

var form = new Postavshik ();

form. Show ();

Hide ();

}

catch (Exception)

{

}

}

private void bZayavka_Click (object sender, EventArgs e)

{

try

{

Connection. Close ();

var form = new Zayavka ();

form. Show ();

Hide ();

}

catch (Exception)

{

}

}

private void bZapchasti_Click (object sender, EventArgs e)

{

try

{

Connection. Close ();

var form = new Zapchasti ();

form. Show ();

Hide ();

}

catch (Exception)

{

}

}

private void bPostavki_Click (object sender, EventArgs e)

{

try

{

Connection. Close ();

var form = new Postavki ();

form. Show ();

Hide ();

}

catch (Exception)

{

}

}

private void bOplata_Click (object sender, EventArgs e)

{

try

{

Connection. Close ();

var form = new Oplata ();

form. Show ();

Hide ();

}

catch (Exception)

{

}

}

private void bProdano_Click (object sender, EventArgs e)

{

try

{

Connection. Close ();

var form = new Dogovor ();

form. Show ();

Hide ();

}

catch (Exception)

{

}

}

private void bStoyanka_Click (object sender, EventArgs e)

{

try

{

Connection. Close ();

var form = new Doljnost ();

form. Show ();

Hide ();

}

catch (Exception)

{

}

}

private void bUslugi_Click (object sender, EventArgs e)

{

try

{

Connection. Close ();

var form = new Uslugi ();

form. Show ();

Hide ();

}

catch (Exception)

{

}

}

private void button1_Click (object sender, EventArgs e)

{

try

{

Connection. Close ();

var form = new LoginParol ();

form. Show ();

Hide ();

}

catch (Exception)

{

}

}

// поиск

private void DTP_ValueChanged (object sender, EventArgs e)

{

try

{

if (RemoveSpaces. Remove (tBSPrice. Text)! = ": ")

{

Query.commandText = "SELECT * FROM текущие_операции WHERE Вид_операции LIKE '%" +

tBSName. Text. Trim () + "%' AND Дата LIKE '%" + DTP. Value. ToString ("yyyy-MM-dd") +

"%' AND Время LIKE '%" + tBSPrice. Text + "%' ORDER BY Дата DESC, Время DESC";

Query. ExecuteNonQuery ();

}

else

{

Query.commandText = "SELECT * FROM текущие_операции WHERE Вид_операции LIKE '%" +

tBSName. Text. Trim () + "%' AND Дата LIKE '%" + DTP. Value. ToString ("yyyy-MM-dd") + "%' ORDER BY Дата DESC, Время DESC";

Query. ExecuteNonQuery ();

}

DataSet dataSet = new DataSet ();

DataTable table = dataSet. Tables. Add ();

dataSet. Load (Query. ExecuteReader (), LoadOption. OverwriteChanges, table);

dataGridView. DataSource = table;

dataGridView. Columns [0]. Visible = false;

}

catch (Exception)

{

}

}

private void tBSName_TextChanged (object sender, EventArgs e)

{

try

{

if (RemoveSpaces. Remove (tBSPrice. Text)! = ": ")

{

Query.commandText = "SELECT * FROM текущие_операции WHERE Вид_операции LIKE '%" +

tBSName. Text. Trim () + "%' AND Время LIKE '%" + tBSPrice. Text + "%' ORDER BY Дата DESC, Время DESC";

Query. ExecuteNonQuery ();

}

else

{

Query.commandText = "SELECT * FROM текущие_операции WHERE Вид_операции LIKE '%" + tBSName. Text. Trim () + "%' ORDER BY Дата DESC, Время DESC";

Query. ExecuteNonQuery ();

}

DataSet dataSet = new DataSet ();

DataTable table = dataSet. Tables. Add ();

dataSet. Load (Query. ExecuteReader (), LoadOption. OverwriteChanges, table);

dataGridView. DataSource = table;

dataGridView. Columns [0]. Visible = false;

}

catch (Exception)

{

}

}

private void button2_Click (object sender, EventArgs e) // открытие формы зарплата

{

try

{

Connection. Close ();

var form = new Zarplata ();

form. Show ();

Hide ();

}

catch (Exception)

{

}

}

private void button3_Click (object sender, EventArgs e) // открытие формы заказанные услуги

{

try

{

Connection. Close ();

var form = new ZakUsl ();

form. Show ();

Hide ();

}

catch (Exception)

{

}

}

private void bReport_Click (object sender, EventArgs e) // открытие формы отчетности

{

try

{

Connection. Close ();

var form = new Reports ();

form. Show ();

Hide ();

}

catch (Exception)

{

}

}

}

}

Размещено на Allbest.ru


Подобные документы

  • Обзор и сравнительная характеристика программного обеспечения для создания СУБД. Принципы организации данных. Основные возможности MS Access. Разработка структуры и реализация средствами SQL базы данных для учета заказов, наличия и продажи автозапчастей.

    курсовая работа [2,5 M], добавлен 27.05.2013

  • Сущность и значение средств управления базами данных предприятия. Методика разработки базы данных и прикладного программного обеспечения автобусного парка, позволяющее структурировать информацию об автобусных маршрутах, остановках и автобусах парка.

    курсовая работа [163,4 K], добавлен 20.01.2010

  • Общие требования и этапы разработки автоматизированных информационных систем. Особенности работы, технологии доступа и проектирование структуры базы данных. Разработка клиентского программного обеспечения для магазина, защита и сохранность данных.

    курсовая работа [650,9 K], добавлен 27.02.2013

  • Автоматизация учёта поступления и обучения детей в "Доме детского творчества". Проектирование программного продукта ИС; выбор системы управления базы данных, языка программирования. Разработка концептуальной, логической и физической моделей данных.

    дипломная работа [1,5 M], добавлен 10.10.2015

  • Проектирование реляционной базы данных с помощью прикладного программного средства MS ACCESS. Описания особенностей использования запросов для извлечения, изменения и удаления информации из базы данных. Характеристика структуры интерфейса пользователя.

    курсовая работа [1,6 M], добавлен 19.11.2012

  • Разработка программного обеспечения, предназначенного для автоматизации деятельности туристической фирмы. Анализ и проектирование базы данных предметной области. Создание концептуальной, логической и физической моделей данных и программы их обработки.

    курсовая работа [816,5 K], добавлен 05.02.2018

  • Анализ программного обеспечения. Программа учета "Мой Склад". Разработка концептуальной и логической модели "База данных склада автомобильных запчастей". Требования к системе и ER-модель. Аccess как мощное приложение Windows, построение запросов.

    курсовая работа [764,7 K], добавлен 10.04.2014

  • Практические аспекты использования прикладного программного обеспечения при разработке базы данных "Аудиторный фонд ГБОУ СПО "Старооскольский педагогический колледж". Системы управления базами данных. Описание и функциональные возможности приложения.

    курсовая работа [360,4 K], добавлен 07.10.2014

  • Проектирование структуры информационной базы и разработка программного комплекса, позволяющего автоматизировать процесс учета налогоплательщиков. Разработка конфигурации и создание интерфейса базы данных, форм и отчетов в программе "1С Предприятие".

    дипломная работа [3,2 M], добавлен 21.06.2015

  • Критерии классификации баз данных. Использование C++ - компилируемого, статически типизированного языка программирования общего назначения. Этапы разработки специализированного прикладного программного обеспечения - базы данных "Прохождение практики".

    курсовая работа [1,4 M], добавлен 11.12.2015

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.