Проектирование интерфейса программы

Интерфейс пользователя – эта та среда, которую пользователь видит на экране, с которой взаимодействует. От ее удобства зависит то, насколько клиент «привяжется» к системе, насколько ему удобно будет работать.

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

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

 

Рисунок 2.3 – Эскиз интерфейса окна для добавление рейсов

Рисунок 2.2 – Эскиз интерфейса окна для добавления автовокзалов.

Рисунок 2.3 – Эскиз интерфейса окна для добавления городов.

Рисунок 2.4 – Эскиз интерфейса окна для добавления автопарков.

Рисунок 2.5 – Эскиз интерфейса окна для добавления билетов.

Рисунок 2.6 – Эскиз интерфейса окна для добавления сотрудников.

Рисунок 2.7 – Эскиз интерфейса окна для добавления заказа.

Программная реализация продукта

Создание структуры таблиц

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

CREATE TABLE IF NOT EXISTS `avtopark` (

`idavtopark` int(11) NOT NULL AUTO_INCREMENT,

`idavtovokz` int(11) NOT NULL,

`num_avto` int(11) NOT NULL,

`marka` varchar(20) DEFAULT NULL,

`model` varchar(20) DEFAULT NULL,

`color` varchar(20) DEFAULT NULL,

`kolvo_mest` int(11) NOT NULL,

PRIMARY KEY (`idavtopark`)

)

CREATE TABLE IF NOT EXISTS `avtovokzal` (

`idavtovokz` int(11) NOT NULL AUTO_INCREMENT,

`gorod` varchar(20) DEFAULT NULL,

`adress` varchar(20) DEFAULT NULL,

`telefon` varchar(20) DEFAULT NULL,

`fioDirector` varchar(20) DEFAULT NULL,

PRIMARY KEY (`idavtovokz`)

)

CREATE TABLE IF NOT EXISTS `bilet` (

`num_bileta` int(11) NOT NULL AUTO_INCREMENT,

`num_reysa` int(11) NOT NULL,

`num_zakaza` int(11) NOT NULL,

`place` varchar(100) NOT NULL,

`price` float NOT NULL,

`student` float NOT NULL,

`pensia` float NOT NULL,

PRIMARY KEY (`num_bileta`)

)

CREATE TABLE IF NOT EXISTS `doljnost` (

`iddolj` int(11) NOT NULL AUTO_INCREMENT,

`name` varchar(20) DEFAULT NULL,

PRIMARY KEY (`iddolj`)

)

CREATE TABLE IF NOT EXISTS `gorod` (

`idgorod` int(11) NOT NULL AUTO_INCREMENT,

`name` varchar(20) DEFAULT NULL,

PRIMARY KEY (`idgorod`)

)

CREATE TABLE IF NOT EXISTS `obsl_reysov` (

`idobsl_reysov` int(11) NOT NULL AUTO_INCREMENT,

`idavtopark` int(11) NOT NULL,

`num_reysa` int(11) NOT NULL,

PRIMARY KEY (`idobsl_reysov`)

)

CREATE TABLE IF NOT EXISTS `personal` (

`idsotr` int(11) NOT NULL AUTO_INCREMENT,

`fio` varchar(20) DEFAULT NULL,

`iddolj` int(11) NOT NULL,

`pol` varchar(20) DEFAULT NULL,

`data_rojd` varchar(100) NOT NULL,

`adress` varchar(20) NOT NULL,

`telefon` varchar(20) DEFAULT NULL,

`idavtovokz` int(11) NOT NULL,

PRIMARY KEY (`idsotr`)

)

CREATE TABLE IF NOT EXISTS `reysi` (

`num_reysa` int(11) NOT NULL AUTO_INCREMENT,

`data_reysa` varchar(100) NOT NULL,

`place_otpr` varchar(20) NOT NULL,

`place_nazn` varchar(20) NOT NULL,

`num_platf` int(11) NOT NULL,

`idsotr` int(11) NOT NULL,

PRIMARY KEY (`num_reysa`)

)

CREATE TABLE IF NOT EXISTS `zakazi` (

`num_zakaza` int(11) NOT NULL AUTO_INCREMENT,

`num_reysa` int(11) NOT NULL,

`data_zakaza` varchar(255) DEFAULT NULL,

`fio` varchar(20) DEFAULT NULL,

`telefon` varchar(20) DEFAULT NULL,

PRIMARY KEY (`num_zakaza`)

)

Дамп данных таблицы `avtopark`

INSERT INTO `avtopark` (`idavtopark`, `idavtovokz`, `num_avto`, `marka`, `model`, `color`, `kolvo_mest`) VALUES

(11, 11, 133, 'Лада', '8', 'Красный', 34),

(14, 9, 13, 'Лада', '5', 'Синий', 12);

Дамп данных таблицы `avtovokzal`

INSERT INTO `avtovokzal` (`idavtovokz`, `gorod`, `adress`, `telefon`, `fioDirector`) VALUES

(10, 'Киев', 'ул. Прямая', '883-4232', 'Романенко Д.В'),

(13, 'Киев', 'ул. Гоголя', '779-3123', 'Мингазиев Т.П'),

(14, 'Одесса', 'ул. Прямая', '779-8341', 'Порошенко Д.Р');


Дамп данных таблицы `bilet`

INSERT INTO `bilet` (`num_bileta`, `num_reysa`, `num_zakaza`, `place`, `price`, `student`, `pensia`) VALUES

(3, 6, 3, 'Москва', 1300, 0, 260),

(4, 6, 0, 'Москва', 2000, 0, 0),

(5, 6, 3, 'Москва', 2000, 400, 0),

(6, 6, 3, 'Москва', 19000, 0, 0);

Дамп данных таблицы `doljnost`

INSERT INTO `doljnost` (`iddolj`, `name`) VALUES

(1, 'водитель');

Дамп данных таблицы `gorod`

INSERT INTO `gorod` (`idgorod`, `name`) VALUES

(1, 'Одесса'),

(2, 'Киев'),

(3, 'Москва'),

(5, 'Семферополь');

Дамп данных таблицы `personal`

INSERT INTO `personal` (`idsotr`, `fio`, `iddolj`, `pol`, `data_rojd`, `adress`, `telefon`, `idavtovokz`) VALUES

(12, 'Падалка А.Б', 3, 'М', '13.07.1983', 'Харькв ул. Пятихатки', '99-54-32', 1),

(13, 'Кол Г.В', 1, 'М', '12.04.1980', 'Харьков ул. Шарикова', '40-34-32', 2);

Дамп данных таблицы `reysi`

INSERT INTO `reysi` (`num_reysa`, `data_reysa`, `place_otpr`, `place_nazn`, `num_platf`, `idsotr`) VALUES

(6, '14.02.2014', 'Харьков', 'Москва', 15, 13),

(10, '12.02.2014', 'Киев', 'Москва', 13, 12),

(11, '13.02.2014', 'Киев', 'Харьков', 12, 13),

(12, '15.02.2014', 'Одесса', 'Москва', 9, 12),

(13, '24.12.2012', 'Семферополь', 'Одесса', 11, 13);

Дамп данных таблицы `zakazi`

INSERT INTO `zakazi` (`num_zakaza`, `num_reysa`, `data_zakaza`, `fio`, `telefon`) VALUES

(2, 1, '19-02-2010', 'Ольшевский И.Б', '99-23-12'),

(3, 6, '13-02-2014', 'Мингазиев Т.Г', '99-34-26');

Формирование запросов

Запросы к БД производятся в ходе работы приложения для работы оператора, вследствие нажатия определенных кнопок или создания выпадающих списков. Все запросы, реализованные в программе, можно найти в программном коже приложения для работы оператора. Ниже приведены примеры программного кода, реализующего запросы к БД (Приложение А).

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

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

1 Вывод информации об автовокзалах: SELECT * FROM avtovokzal;

2 Вывод информации об автопарках: SELECT * FROM avtopark;

3 Вывод информации о рейсах: SELECT * FROM reysi;

4 Вывод информации о билетах: SELECT * FROM billet;

5 Вывод информации о заказах билетов: SELECT * FROM avtovokzal;

6 Вывод информации о персонале: SELECT * FROM personal;

7 Вывод информации о городах: SELECT * FROM gorod;

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

1 Удаление информации об автовокзалах из таблицы автовокзал: DELETE FROM avtovokzal WHERE idavtovokz='" + idavtoparkal + "';

2 Удаление информации об автопарках из таблицы автопарк: DELETE FROM avtopark WHERE idavtopark='" + idavtopark + "';

3 Удаление информации о рейсах из таблицы рейсы: DELETE FROM reysi WHERE num_reysa='" + idReysa + "';

4 Удаление информации о билетах из таблицы билеты: DELETE FROM bilet WHERE num_bileta='" + num_bileta + "';

5 Удаление информации о заказах билетов из таблицы заказы билетов: DELETE FROM zakazi WHERE num_zakaza='" + num_zakaza + "';

6 Удаление информации о персонале из таблицы персонала: DELETE FROM personal WHERE idsotr='" + idsotr + "';

7 Удаление информации о городе из таблицы города: DELETE FROM gorod WHERE idgorod='" + idgorod + "';

Запрос на редактирования данных в базе данных:

1 Редактирование информации об автовокзале в таблице автовокзал: UPDATE `avtovokzal` SET `gorod`='" + gorod + "',`adress`='" + adress + "',`telefon`='" + telefon + "',`fioDirector`='" + fioDirector + "' WHERE idAvtovokz = '" + idAvtovokz + "';

2 Редактирование информации об автопарке в таблице автопарк: UPDATE avtopark SET `idavtovokz`='" + idAvtovokzal + "',`num_avto`='" + numberAvto + "',`marka`='" + markaAvto + "',`model`='" + modelAvto + "',`color`='" + colorAvto + "', `kolvo_mest`='" + kolichestvoMestAvto + "' WHERE idavtopark = '" + idAvtopark + "';

3 Редактирование информации о рейсах в таблице рейсы: UPDATE `reysi` SET`data_reysa`='"+dateReysa+"',`place_otpr`='"+mestoOtpravki+"',`place_nazn`='"+mestoNaznachenia+"',`num_platf`='"+nomerPlatform+"',`idsotr`='"+idSotr+"'

WHERE num_reysa`='"+idReysa+"';

4 Редактирование информации о билетах в таблице билеты: UPDATE bilet SET `num_reysa`='" + idReysa + "',`num_zakaza`='" + idZakaza + "',`price`='" + cena + "',`student`='" + skidkaStudenta + "', `pensia`='" + skidkaPens + "' WHERE num_bileta = '" + idBilet + "';

5 Редактирование информации о заказах билетов в таблице заказы билетов: UPDATE zakazi SET `num_reysa`='" + idReysa + "',`data_zakaza`='" + dateZakaza + "',`fio`='" + fio + "',`telefon`='" + telefon + "' WHERE num_zakaza = '" + idZakaza + "';

6 Редактирование информации о персонале в таблице персонал: UPDATE personal SET `fio`='" + FioSotrudnik + "',`iddolj`='" + Iddolj + "',`pol`='" + Pol + "', `data_rojd`='" + BdSotrudnik + "', `adress`='" + AdresSotrudnik + "', `telefon`='" + TelefonSotrudnik + "', `idavtovokz`='" + Idavtovokz + "' WHERE idsotr = '" + IdSotrudnik + "';

7 Редактирование информации о городах в таблице города: UPDATE gorod SET `name`='" + nameGoroda + "' WHERE idgorod = '" + idGoroda + "';

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

1 Добавление информации об автовокзале в таблицу автовокзал: INSERT INTO avtovokzal(gorod, adress, telefon, fioDirector) VALUES('" + gorod + "','" + adress + "','" + telefon + "','" + fioDirector + "');

2 Добавление информации об автопарке в таблицу автопарк: INSERT INTO `avtopark`( `idAvtovokz`, `num_avto`, `marka`, `model`, `color`, `kolvo_mest`) VALUES('" + dc + "','" + numberAvto + "','" + markaAvto + "','" + modelAvto + "','" + colorAvto + "','" + kolichestvoMestAvto + "');

3 Добавление информации о рейсах в таблицу рейсы: INSERT INTO `reysi`(`data_reysa`, `place_otpr`, `place_nazn`, `num_platf`, `idsotr`) VALUES('" + dateReysa + "','" + mestoOtpravki + "','" + mestoNasnachenia + "','" + nomerPlatform + "','" + idSotrudnik + "');

4 Добавление информации о билетах в таблицу билеты: INSERT INTO `bilet`(`num_reysa`, `num_zakaza`, `place`, `price`, `student`, `pensia`) VALUES('" + num_reysa + "','" + num_zakaza + "','" + place + "','" + price + "','" + student + "','" + pensia + "');

5 Добавление информации о заказах билетов в таблицу заказы билетов: INSERT INTO zakazi (num_reysa, data_zakaza, fio, telefon) VALUES('" + idReysa + "','"+dateZakaza+"','"+fio+"','"+telefon+"');

6 Добавление информации о персонале в таблицу персонал: INSERT INTO `personal`(`fio`, `iddolj`, `pol`, `data_rojd`, `adress`, `telefon`, `idavtovokz`) VALUES('" + fioSotrudnik + "','" + iddolj + "','" + polSotrudnik + "','" + bdSotrudnik + "','" + adresSotrudnik + "','" + telefonSotrudnik + "','" + idavtovokz + "');

7 Добавление информации о городах в таблицу города: INSERT INTO gorod(name) VALUES('" + name+ "');

 

Отчеты

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

В данном отчете представлена информация об автовокзалах:

В данном отчете представлена информация об автопарках:


В данном отчете представлена информация о рейсах:

В данном отчете представлена информация о билетах:

В данном отчете представлена информация о заказах билетов:

В данном отчете представлена информация о персонале:


 

В данном отчете предоставлена информация о городах: