Разработка программного обеспечения "Станция техобслуживания"

Разработка приложения по автоматизации подсистемы станции техобслуживания, занимающейся ремонтом автомобилей. Физическая модель базы данных, разработанная в ToadModeler. Программа обработки данных на языке JAVA в среде NetBeans 8.1. на платформе JDK 1.8.

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

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

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

Размещено на http://www.allbest.ru//

Задание

Разработать базу данных и приложение обработки данных для конкретной предметной области (типовой предметной области или предметной области научных исследований студента).

Введение

Целью данной курсовой работы является автоматизация подсистемы станции техобслуживания, занимающейся ремонтом автомобилей.

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

1. Анализ предметной области Станция техобслуживания.

2. Проектирование БД в исследуемой предметной области, включающее проектирование структуры таблиц, ключевых полей и схемы данных.

3. Приобретение навыков по созданию запросов различных типов в СУБД MySQL 5.5.

4. Разработка форм, обеспечивающих интерфейс пользователя.

1. Описание предметной области

Требуется создать базу данных и программу обработки данных, предназначенную для диспетчера станции техобслуживания. База данных должна обеспечивать хранение сведений об услугах, оказываемых станцией и их стоимости, о клиентах станции, о работниках станции и об автомобилях, которые они ремонтируют в текущий момент. Клиент станции - это человек, который хотя бы раз воспользовался услугами станции. О клиенте должны хранится следующие сведения: паспортные данные, включая фамилию, имя, отчество, дату рождения, прописку, а также даты обращения на станцию техобслуживания с указанием автомобилей, которые он сдавал в ремонт. Клиент сдает в ремонт не обязательно автомобиль, владельцем которого он является. Сведения об автомобилях включают в себя марку автомобиля, его цвет, год выпуска, номер государственной регистрации, перечень неисправностей и данные о владельце. Сведения о работнике - это его фамилия, имя, отчество, специальность, разряд, стаж работы. Диспетчер заносит в БД сведения об автомобиле и о клиенте, если клиент обращается на станцию впервые. После этого диспетчер определяет рабочих, которые будут устранять имеющиеся в автомобиле неисправности. Оставляя автомобиль на станции техобслуживания, клиент получает расписку, в которой указано, когда автомобиль был поставлен на ремонт, какие он имеет неисправности, когда станция обязуется возвратить отремонтированный автомобиль. После возвращения автомобиля клиенту данные о произведенном ремонте помещаются в архив, клиент получает счет, в котором содержится перечень устраненных неисправностей с указанием времени работы, стоимости работы и стоимости запчастей. Возможно увольнение и прием на работу работников станции, изменение сведений о клиенте (клиент может поменять паспорт, права, адрес, телефон), номера государственной регистрации и цвета автомобиля.

Диспетчеру могут потребоваться следующие сведения:

Фамилия, имя, отчество и адрес владельца автомобиля с данным номером государственной регистрации?

Марка и год выпуска автомобиля данного владельца?

Перечень устраненных неисправностей в автомобиле данного владельца?

фамилия, имя, отчество работника станции, устранявшего данную неисправность в автомобиле данного клиента, и время ее устранения?

фамилия, имя, отчество клиентов, сдавших в ремонт автомобили с указанным типом неисправности?

Самая распространенная неисправность в автомобилях указанной марки?

Количество рабочих каждой специальности на станции?

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

2. Проектирование и создание баз данных

В ходе работы была разработана следующая физическая модель базы данных, разработанная в ToadModeler (рисунок 1).

Рисунок - 1. Модель базы данных.

Создание базы данных «Станция техобслуживания» с помощью программы EMS SQL Manager for MySQL

Клик по «База данных» -> «Создать базу данных», вводим имя базы данных, клик «Далее».

Рисунок - 2. Мастер создания баз данных

Вводим параметры подключения к БД, клик «Далее»

Рисунок - 3. Мастер создания баз данных

Клик «Запустить»

Рисунок - 4. Мастер создания баз данных.

Регистрация базы в программе, клик «ОК»

Рисунок - 5. Регистрация базы данных

Клик правой кнопкой мыши на созданной базе данных, клик по «Подключиться к базе данных»

Клик на «Инструменты» -> «Новый редактор SQL»

Рисунок - 6. Редактор SQL

В редактор вставляем описание таблиц на языке SQL, выгруженные из Toad Data Modeler и выполняем их. После выполнения появляются созданные таблицы.

Рисунок - 7. Создание таблиц БД.

Добавим записи в таблицу «Clients»

insert into clients

VALUES(NULL,'Иванов','Иван','Иванович',STR_TO_DATE('01.01.1980','%d.%m.%Y'),'Красная площадь, д.1');

insert into clients

VALUES(NULL,'Петров','Петр','Петрович',STR_TO_DATE('02.01.1980','%d.%m.%Y'),'Красная площадь, д.2');

Добавим записи в таблицу Workers

insert into workers

values(NULL,'Петров','Иван','Иванович','Шиномонтажник',1,5);

insert into workers

values(NULL,'Сидоров','Иван','Иванович','Жестянщик',2,10);

6.2.9 Добавим записи в таблицу «Part» insert into part

values (NULL,'Шина',100);

insert into part

values (NULL,'Крыло заднее левое',200);

Добавим записи в таблицу «Services»

insert into services

values(NULL,'Замена шины',140);

insert into services

values(NULL,'Замена крыла',200);

Добавим записи в таблицу «Auto»

insert into auto

values(NULL,'BMW','Белый',1980,'o001oo',1);

insert into auto

values(NULL,'Aston Martin','Белый',1981,'o101oo',2);

Добавим записи в таблицу «Repair»

insert into repair

values(NULL,NULL,STR_TO_DATE('01.01.2015','%d.%m.%Y'),'не едет',STR_TO_DATE('01.02.2015','%d.%m.%Y'),NULL,NULL,NULL,NULL,1,1,1);

insert into repair

values(NULL,NULL,STR_TO_DATE('02.01.2015','%d.%m.%Y'),'не катит',STR_TO_DATE('02.02.2015','%d.%m.%Y'),NULL,NULL,NULL,NULL,2,2,2);

3. Описание программы обработки данных

Программа обработки данных разрабатывалась на языке JAVA в среде NetBeans 8.1, на платформе JAVA JDK 1.8.

Использовались библиотеки: mysql-connector-java-5.1.29 и microba-0.4.4.3

Использовалась СУБД MySQL Server 5.5

Структура программы:

gui - пакет с классами интерфейса.

Stat.java - окно вызова статистических функций.

amountWorkerTable - модель таблицы количества работников каждой специальности.

amountWorkerWindow - окно с таблицей количества работников каждой специальности. программный приложение техобслуживание

autoEdit - окно редактирования информации о автомобиле.

autoTable - модель таблицы со списком автомобилей.

autoWindows - окно с таблицей со списком автомобилей.

clientEdit - окно редактирования информации о клиенте.

clientTable - модель таблицы со списком клиентов.

clientWindow - окно с таблицей со списком клиентов

defectReportTable - модель таблицы с отчетом по неисправностям

defectReportWindow - окно с таблицей отчета по неисправностям

editAmount - окно редактирования количества зап. частей

editTime - окно редактирования затраченного времени на услугу

mainWindow - главное окно со списков авто находящихся в ремонте

partEdit - окно редактирования информации о детали

partTable - модель таблицы со списком деталей

partWindow - окно с таблицей со списком деталей

partsListTable - модель таблицы со списком использованных в ремонте деталей

repairArchive - окно архива ремонтов

repairInfoWindow - окно подробной информации о ремонте

repairReportTable - модель таблицы отчета по ремонтам

repairReportWindow - Окно отчета по ремонтам

repairTable - модель таблицы со списком ремонтов

serviceEdit - окно редактирования информации о услуги

serviceListTable - модель таблицы со списком оказанных при ремонте услуг

serviceTable - модель таблицы со списком услуг

serviceWindow - окно с таблицей со списком услуг

workerEdit - окно редактирования информации о работнике

workerTable - модель таблицы со списком работников

workerWindow - окно с таблицей со списком работников

Main - пакет с основными классами.

MyConnection - класс обработки запросов к БД

PrintPayCheck - класс печати счета

PrintingReceipt - класс печати квитанции

amountWorker - класс количество работников каждой специальности

auto - характеристики авто

client - характеристики клиента

defectReport - отчет по неисправностям

main - главный исполняемый класс

part - характеристики деталей

partsList - сопоставление деталей и ремонтов

repair - характеристики ремонта

repaiкReport - отчет по ремонтам

service - характеристики услуги

serviceList - сопоставление услуг и ремонтов

worker - характеристики работника

Рис. 2 - UML диаграмма классов.

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

4. Тестирование программы обработки данных

Программа запускается посредством запуска исполняемого файла AutoService.jar. для выполнения программы необходима платформа JAVA8, СУБД MySQL Server 5.5, библиотеки mysql-connector-java-5.1.29 и microba-0.4.4.3

Тестирование методов выполняющих запросы к базе данных:

1) Фамилия, имя, отчество и адрес владельца автомобиля с данным номером государственной регистрации?

В справочнике «автомобили» выбираем интересующий авто и кликаем «Изменить»

Ожидаемый результат: получить информацию о владельце

Полученный результат: отобразилось окно с параметрами авто и информацией о владельце

Вывод: получена информация о владельце автомобиля

2) Марка и год выпуска автомобиля данного владельца?

В справочнике «Клиенты» выбираем интересующего клиента и щелкаем по «Автомобили клиента»

Ожидаемый результат: получить информация о автомобиле данного владельца

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

Вывод: информация о автомобиле интересующего клиента получена.

3) Перечень устраненных неисправностей в автомобиле данного владельца?

В справочнике «Клиенты» выбрать интересующего клиента и кликнуть по «История обращений», отобразится список обращений клиента, дважды щелкнуть на интересующий.

Ожидаемый результат: получен перечень устраненных неисправностей в автомобиле данного владельца

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

Вывод: Получена требуемая информация.

4) фамилия, имя, отчество работника станции, устранявшего данную неисправность в автомобиле данного клиента, и время ее устранения?

В справочнике «Клиенты» выбрать интересующего клиента и кликнуть по «История обращений», отобразится список обращений клиента, дважды щелкнуть на интересующий.

Ожидаемый результат: Получить информацию о работнике ремонтировавшем авто данного клиента.

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

Вывод: Получена требуемая информация.

фамилия, имя, отчество клиентов, сдавших в ремонт автомобили с указанным типом неисправности?

В окне «Статистика» указать интересующую неисправность в поле «Дефект» и кликнуть по «Найти».

Ожидаемый результат: Отобразится список клиентов, сдавших в ремонт автомобили с указанным типом неисправности.

Полученный результат: Отобразился список клиентов, сдавших в ремонт автомобили с указанным типом неисправности.

Вывод: Получена требуемая информация.

Самая распространенная неисправность в автомобилях указанной марки?

В окне «Статистика» указать интересующую марку в поле «Марка» и кликнуть по «Найти»

Ожидаемый результат: отобразится самая распространенная неисправность в автомобилях указанной марки

Полученный результат: отобразилось сообщение с самой распространенной неисправностью данной марки.

Вывод: Искомая информация получена.

Количество рабочих каждой специальности на станции

В окне «Статистика» в области «Количество работников каждой специальности» кликнуть по «Отобразить»

Ожидаемый результат: Отобразится информация о количестве работников каждой специальности

Полученный результат: Отобразилось окно со списком специальностей и количеством рабочих на станции.

Вывод: необходимая информация получена.

Тестирование методов которые заносят и модифицируют информацию в базе данных.

Добавление нового клиента:

В справочнике «Клиенты» кликаем по кнопке «Новый», заполняем информацию о новом клиенте, кликаем по «ОК»

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

Полученный результат: в справочнике «Клиенты» появился новый клиент.

Выводы: в программе реализована функция добавления данных в таблицы БД.

Изменение данных о клиенте

В справочнике клиенты выбираем клиента данные о котором необходимо изменить и кликаем по «Изменить», корректируем необходимые данные и нажимаем «Ок».

Ожидаемы результат: в БД изменится информация о клиенте.

Полученный результат: в справочнике «Клиенты» изменилась информация о клиенте.

Выводы: в программе реализована функция изменения данных в таблицах БД.

Удаление информации о клиенте

В справочнике клиенты выбираем клиента данные о котором необходимо удалить и кликаем по «удалить».

Ожидаемый результат: информация о клиенте удалится из базы данных.

Полученный результат: Информация о клиенте удалена.

Вывод: в программе реализована функция удаления данных из таблицы БД.

Тестирование ссылочной и семантической целостности

В справочнике «Клиенты» пытаемся удалить клиента, который является владельцем хотя бы одного авто, либо хотя бы раз обращался в сервис.

Ожидаемый результат: Клиента удалить не удастся.

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

Вывод: в программе реализована система поддержки ссылочной и семантической целостности.

Заключение

В ходе выполнения курсовой работы был проведен анализ предметной области Станция техобслуживания, спроектирована БД в исследуемой предметной области, приобретены навыки по созданию запросов в СУБД MySQL 5.5, разработаны формы ввода вывода данных.

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

Приложение А

SQL - Скрипт создания базы данных

/*

Created: 02.11.2015

Modified: 05.11.2015

Model: kurs

Database: MySQL 5.5

*/

-- Create tables section -------------------------------------------------

-- Table Services

CREATE TABLE `Services`

(

`ID` Int NOT NULL AUTO_INCREMENT,

`Name` Varchar(30) NOT NULL,

`Price` Int NOT NULL,

PRIMARY KEY (`ID`)

)

;

-- Table Clients

CREATE TABLE `Clients`

(

`ID` Int NOT NULL AUTO_INCREMENT,

`Firstname` Varchar(30) NOT NULL,

`Secondname` Varchar(30) NOT NULL,

`Middlename` Varchar(30),

`Birthday` Date NOT NULL,

`Registration` Varchar(100),

PRIMARY KEY (`ID`)

)

;

-- Table Auto

CREATE TABLE `Auto`

(

`ID` Int NOT NULL AUTO_INCREMENT,

`Brand` Varchar(30) NOT NULL,

`Color` Varchar(30) NOT NULL,

`Year` Int NOT NULL,

`Number` Varchar(10) NOT NULL,

`Owner` Int NOT NULL,

PRIMARY KEY (`ID`)

)

;

CREATE INDEX `IX_Relationship7` ON `Auto` (`Owner`)

;

-- Table Workers

CREATE TABLE `Workers`

(

`ID` Int NOT NULL AUTO_INCREMENT,

`Firstname` Varchar(30) NOT NULL,

`Secondname` Varchar(30) NOT NULL,

`Middlename` Varchar(30),

`Speciality` Varchar(30) NOT NULL,

`Rate` Int,

`Experience` Int,

PRIMARY KEY (`ID`)

)

;

-- Table Repair

CREATE TABLE `Repair`

(

`ID` Int NOT NULL AUTO_INCREMENT,

`Repaired` Varchar(300),

`Startdate` Datetime NOT NULL,

`Defect` Varchar(150) NOT NULL,

`Enddate` Datetime,

`Costofwork` Int,

`Costofparts` Int,

`Returndate` Datetime,

`Comment` Longtext,

`AutoID` Int NOT NULL,

`WorkerID` Int NOT NULL,

`ClientID` Int NOT NULL,

PRIMARY KEY (`ID`),

UNIQUE `ID` (`ID`)

)

;

CREATE INDEX `IX_Relationship2` ON `Repair` (`AutoID`)

;

CREATE INDEX `IX_Relationship4` ON `Repair` (`WorkerID`)

;

CREATE INDEX `IX_Relationship5` ON `Repair` (`ClientID`)

;

-- Table Service

CREATE TABLE `Service`

(

`ServiceID` Int,

`RepairID` Int,

`Time` Bigint NOT NULL DEFAULT 1

)

;

CREATE INDEX `IX_Relationship8` ON `Service` (`ServiceID`)

;

CREATE INDEX `IX_Relationship12` ON `Service` (`RepairID`)

;

-- Table Part

CREATE TABLE `Part`

(

`ID` Int NOT NULL AUTO_INCREMENT,

`Name` Varchar(100) NOT NULL,

`Price` Int,

PRIMARY KEY (`ID`),

UNIQUE `ID` (`ID`)

)

;

-- Table Parts

CREATE TABLE `Parts`

(

`RepairID` Int,

`PartID` Int,

`amount` Bigint NOT NULL DEFAULT 1

)

;

CREATE INDEX `IX_Relationship15` ON `Parts` (`RepairID`)

;

CREATE INDEX `IX_Relationship16` ON `Parts` (`PartID`)

;

-- Create relationships section -------------------------------------------------

ALTER TABLE `Repair` ADD CONSTRAINT `Relationship2` FOREIGN KEY (`AutoID`) REFERENCES `Auto` (`ID`) ON DELETE NO ACTION ON UPDATE NO ACTION

;

ALTER TABLE `Repair` ADD CONSTRAINT `Relationship4` FOREIGN KEY (`WorkerID`) REFERENCES `Workers` (`ID`) ON DELETE NO ACTION ON UPDATE NO ACTION

;

ALTER TABLE `Repair` ADD CONSTRAINT `Relationship5` FOREIGN KEY (`ClientID`) REFERENCES `Clients` (`ID`) ON DELETE NO ACTION ON UPDATE NO ACTION

;

ALTER TABLE `Auto` ADD CONSTRAINT `Relationship7` FOREIGN KEY (`Owner`) REFERENCES `Clients` (`ID`) ON DELETE NO ACTION ON UPDATE NO ACTION

;

ALTER TABLE `Service` ADD CONSTRAINT `Relationship8` FOREIGN KEY (`ServiceID`) REFERENCES `Services` (`ID`) ON DELETE CASCADE ON UPDATE NO ACTION

;

ALTER TABLE `Service` ADD CONSTRAINT `Relationship12` FOREIGN KEY (`RepairID`) REFERENCES `Repair` (`ID`) ON DELETE CASCADE ON UPDATE NO ACTION

;

ALTER TABLE `Parts` ADD CONSTRAINT `Relationship15` FOREIGN KEY (`RepairID`) REFERENCES `Repair` (`ID`) ON DELETE CASCADE ON UPDATE NO ACTION

;

ALTER TABLE `Parts` ADD CONSTRAINT `Relationship16` FOREIGN KEY (`PartID`) REFERENCES `Part` (`ID`) ON DELETE CASCADE ON UPDATE NO ACTION

;

Приложение Б

Исходный код программы

В виду большого объема исходного кода, исходный код приложен в электронном виде, в виде проекта NetBeans.

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


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

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