Разработка базы данных для Муниципального бюджетного образовательного учреждения "Основная общеобразовательная школа им. А.И. Бабухина"

 

Введение


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

Краткий перечень задач курсового проекта:

а) Спроектировать логическую и физическую модель базы данных;

б) Реализовать в СУБД спроектированную модель;

в) Создать клиентское приложения для работы с созданной базой данных.


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


По заданию на курсовой проект необходимо создать базу данных, а также клиентское приложение для предметной области «Железнодорожная пассажирская станция»:

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

В pасписании указывается тип поезда (скорый, пассажирский…), номер поезда, дни и время отправления и прибытия, маршрут (начальный и конечный пункты назначения, основные узловые станции), стоимость билета. Билеты на поезд можно пpиобpести заpанее или забpониpовать в железнодорожных кассах. До отпpавления поезда, если есть необходимость, билет можно веpнуть. Отправлениие поездов может быть задеpжано из-за опозданий поездов, погодных условий, технических неполадок.

Железнодорожные маршруты можно pазделить на следующие категоpии: внутpенние, междунаpодные, туристические, специальные маршруты. Пассажиpы могут сдавать свои вещи в багажное отделение.

Виды запросов:

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

2.Получить перечень и общее число pаботников в бpигаде, по всем отделам, в указанном отделе, обслуживающих некоторый локомотив, по возpасту, суммаpной (сpедней) заpплате в бpигаде.

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

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

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

.Получить перечень и общее число поездов на указанном маpшpуте, по длительности маршрута, по цене билета и по всем этим кpитеpиям сpазу.

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

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

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

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

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

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

.Получить общее число сданных билетов на указанный pейс, день, маpшpут.


2. Создание базы данных и приложения обработки данных


.1 Логическое проектирование базы данных

логический база клиентский приложение

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

-Работник (Ф.И.О., тип, стаж, пол, возраст, дети, з/п, дата медосмотра, номер отдела, номер бригады);

-Отдел (название отдела, Ф.И.О. начальника отдела);

-Бригада (тип бригады, номер отдела);

-Локомотив (дата последнего техосмотра, дата последнего ремонта, количество раз ремонта, количество рейсов, возраст локомотива);

-Расписание (номер рейса, номер поезда, тип поезда, дата и время отправления, дата и время прибытия, начальный пункт, конечный пункт, стоимость билета, количество билетов, длительность маршрута);

-Отмененный рейс (причина отмены);

-Задержанный рейс (причина задержки, время задержки, количество сданных билетов);

-Билет (номер билета, номер рейса, статус билета, тип билета, время покупки, Ф.И.О. владельца купленного билета, пол владельца, возраст владельца, номер багажа владельца).

Образуем связи и отношения между сущностями

)Работник-Отдел. Связь многие-к-одному. Количество работников в отделе может быть неограниченным, а отдел у работника может быть один.

)Отдел-Бригада. Связь один-ко-многим. Количество бригад в отделе может быть неограниченно, а бригада может быть только в одном отделе.

)Бригада-Локомотив. Связь многие-ко-многим. Одна бригада может обслуживать несколько локомотивов, и один локомотив может обслуживать несколько бригад.

)Локомотив-Расписание. Связь многие-ко-многим. Один локомотив может несколько раз встречаться в пунктах расписания. И в одном расписание может быть задействовано много локомотивов.

)Расписание-Билет. Связь один-ко-многим. У одного пункта расписания может быть несколько билетов.

На основе описании связей и отношений между сущностями построим логическую модель. (см. Рис2)


Рис2. Логическая модель базы данных.


Выделим внешние ключи определенных отношений:

1)Id_otdela - Внешний ключ для организации связи - Работник-Отдел

2)Id_otd - внешний ключ для организации связи Бригада-Отдел

3)Id_brig, id_lok - внешние ключи для организации связи Бригада-Локомотив

4)Id_r, id_lok - внешние ключи для организации связи Локомотив-Расписание

5)Id_r - внешний ключ для организации связи Расписание-Билет

На основе описанных сущностей и отношений между ними построим реляционную модель базы данных для СУБД MySQL (см. Рис3). Код создания базы данных модно посмотреть в «Приложении А».


Рис3. Реляционная модель базы данных


2.2 Описание программы


Клиентское приложение разработано для обработки конкретной базы данных предметной области «Железнодорожная пассажирская станция».

Данное приложение имеет следующие функции:

-Просмотр базы данных;

-Добавление данных в базу;

-Редактирование уже имеющихся данных в базе;

-Удаление данных из базы.

Также реализованы следующие запросы, позволяющие эффективно использовать данные:

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

2.Получить перечень и общее число pаботников в бpигаде, по всем отделам, в указанном отделе, обслуживающих некоторый локомотив, по возpасту, суммаpной (сpедней) заpплате в бpигаде.

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

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

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

.Получить перечень и общее число поездов на указанном маpшpуте, по длительности маршрута, по цене билета и по всем этим кpитеpиям сpазу.

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

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

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

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

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

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

.Получить общее число сданных билетов на указанный pейс, день, маpшpут.

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


Рис4. Главное окно приложения


Также организованно меню для удобства использования запросов (см. Рис5, Рис6).


Рис5. Выпадающее меню для выбора нужного запроса


Рис. 6. Окно для выполнения запроса, выбранного в меню главного окна


2.3 Тестирование программы


При тестировании программы мы проверили ее работоспособность и выполнение следующий функций:)Добавление данных в базу. (Рис7)

Рис7. Добавление нового работника

)Редактирование данных в базе. (Рис. 8)


Рис. 8. Изменение статуса билета

)Удаление данных из базы. (Рис. 9)


Рис. 9. Удаление работника

)Выполнение запросов. (Рис10, 11, 12)


Рис10. Показаны локомотивы, отправленные на ремонт в заданный день


Рис11. Показанно количество сданных билетов по заданному маршруту


Рис12. Показаны все задержанные рейсы по заданной причине



Приложение А


Листинг скрипта базы данных

логический база клиентский приложение

# SQL Manager 2010 for MySQL 4.5.0.9

# -

# Host: localhost

# Port: 3306

# Database: zd_21var_db



/*! 40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;

/*! 40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;

/*! 40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;

/*! 40101 SET NAMES utf8 */;

FOREIGN_KEY_CHECKS=0;

DATABASE `zd_21var_db`SET 'cp1251''cp1251_general_ci';

`zd_21var_db`;


#

# Structure for the `raspisanie` table:

#

TABLE `raspisanie` (

`id_r` int(11) NOT NULL AUTO_INCREMENT,

`nomer_poezd` int(11) DEFAULT NULL,

`type_poezd` varchar(30) DEFAULT NULL,

`otprav` datetime DEFAULT NULL,

`prib` datetime DEFAULT NULL,

`marshrut_nach` varchar(30) DEFAULT NULL,

`marshrut_kon` char(20) DEFAULT NULL,

`stoim_bilet` int(11) DEFAULT NULL,

`kol_bilet` int(11) DEFAULT NULL,

`vremya_marsh` int(11) DEFAULT NULL,KEY (`id_r`),KEY `id_r` (`id_r`)

) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8;


#

# Structure for the `bileti` table:

#

TABLE `bileti` (

`id_bil` bigint(20) NOT NULL AUTO_INCREMENT,

`status_bil` varchar(30) DEFAULT NULL,

`type_bil` varchar(20) DEFAULT NULL,

`vrem_buy` time DEFAULT NULL,

`fio_owner` varchar(20) DEFAULT NULL,

`sex` varchar(3) DEFAULT NULL,

`age_ow` int(11) DEFAULT NULL,

`nomer_bagazh` int(11) DEFAULT NULL,

`id_r` int(11) NOT NULL,KEY (`id_bil`,`id_r`),KEY `id_bil` (`id_bil`),`Relationship8` (`id_r`),`Relationship8` FOREIGN KEY (`id_r`) REFERENCES `raspisanie` (`id_r`) ON DELETE NO ACTION ON UPDATE NO ACTION

) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8;


#

# Structure for the `log` table:

#

TABLE `log` (

`log` varchar(20) DEFAULT NULL

) ENGINE=InnoDB DEFAULT CHARSET=utf8;


#

# Structure for the `lokomotivi` table:

#

TABLE `lokomotivi` (

`id_lok` int(11) NOT NULL AUTO_INCREMENT,

`date_teh_osm` date DEFAULT NULL,

`date_remont_last` date DEFAULT NULL,

`kol_remont` int(11) DEFAULT NULL,

`kol_reis` int(11) DEFAULT NULL,

`age_lok` int(11) DEFAULT NULL,KEY (`id_lok`),KEY `id_lok` (`id_lok`)

) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;

#

# Structure for the `otdeli` table:

#

TABLE `otdeli` (

`id_otd` int(11) NOT NULL AUTO_INCREMENT,

`fio_nach_otd` varchar(30) DEFAULT NULL,

`name_otd` varchar(30) DEFAULT NULL,KEY (`id_otd`),KEY `id_otd` (`id_otd`)

) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;


#

# Structure for the `teh_brigad` table:

#

TABLE `teh_brigad` (

`id_brig` int(11) NOT NULL AUTO_INCREMENT,

`type_brigad` varchar(30) DEFAULT NULL,

`id_otd` int(11) NOT NULL,

`sred_zp` int(11) DEFAULT NULL,KEY (`id_brig`),KEY `id_brig` (`id_brig`),`id_otd` (`id_otd`),`teh_brigad_fk` FOREIGN KEY (`id_otd`) REFERENCES `otdeli` (`id_otd`) ON DELETE CASCADE ON UPDATE CASCADE

) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;


#

# Structure for the `lokomotivi_teh_brigad` table:

#

TABLE `lokomotivi_teh_brigad` (

`id_lok` int(11) NOT NULL,

`id_brig` int(11) NOT NULL,KEY (`id_lok`,`id_brig`),`Relationship6_Teh_brigad` (`id_brig`),`Relationship6_Lokomotivi` FOREIGN KEY (`id_lok`) REFERENCES `lokomotivi` (`id_lok`) ON DELETE NO ACTION ON UPDATE NO ACTION,`Relationship6_Teh_brigad` FOREIGN KEY (`id_brig`) REFERENCES `teh_brigad` (`id_brig`) ON DELETE NO ACTION ON UPDATE NO ACTION

) ENGINE=InnoDB DEFAULT CHARSET=utf8;


#

# Structure for the `otmen_reis` table:

#

TABLE `otmen_reis` (

`prichina_otmen` varchar(20) DEFAULT NULL,

`id_r` int(11) NOT NULL,KEY (`id_r`),`Raspisanie_Otmen_reis` FOREIGN KEY (`id_r`) REFERENCES `raspisanie` (`id_r`) ON DELETE NO ACTION ON UPDATE NO ACTION

) ENGINE=InnoDB DEFAULT CHARSET=utf8;


#

# Structure for the `rabotniki` table:

#

TABLE `rabotniki` (

`id_rab` int(11) NOT NULL AUTO_INCREMENT,

`fio` varchar(30) DEFAULT NULL,

`type` varchar(30) DEFAULT NULL,

`stazh` int(11) DEFAULT NULL,

`sex` varchar(2) DEFAULT NULL,

`age` int(4) DEFAULT NULL,

`deti` int(11) DEFAULT NULL,

`zar_pl` int(11) DEFAULT NULL,

`date_med` date DEFAULT NULL,

`id_otd` int(11) NOT NULL,

`id_br` int(11) DEFAULT NULL,KEY (`id_rab`),KEY `id_rab` (`id_rab`),`id_otd` (`id_otd`),`rabotniki_fk` FOREIGN KEY (`id_otd`) REFERENCES `otdeli` (`id_otd`)

) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8;

DEFINER = 'root'@'localhost' TRIGGER `sred_zp_update` AFTER INSERT ON `rabotniki`EACH ROWidbr INT(255);zp INT(255);srzp INT(255);`rabotniki`.`id_br`, `rabotniki`.`zar_pl` into idbr, zp from `rabotniki` where id_rab = NEW.id_rab;AVG (`rabotniki`.`zar_pl`) into srzp from `rabotniki` where `rabotniki`.`id_br` = idbr;`teh_brigad` SET `teh_brigad`.`sred_zp` = srzp where `teh_brigad`.`id_brig` = idbr;INTO `log` VALUES («nhbut»);;

DEFINER = 'root'@'localhost' TRIGGER `rabotniki_after_upd_tr` AFTER UPDATE ON `rabotniki`EACH ROWidbr INT(255);zp INT(255);srzp INT(255);`rabotniki`.`id_br`, `rabotniki`.`zar_pl` into idbr, zp from `rabotniki` where id_rab = NEW.id_rab;AVG (`rabotniki`.`zar_pl`) into srzp from `rabotniki` where `rabotniki`.`id_br` = idbr;`teh_brigad` SET `teh_brigad`.`sred_zp` = srzp where `teh_brigad`.`id_brig` = idbr;INTO `log` VALUES («nhbut»);;


#

# Structure for the `raspisanie_lokomotivi` table:

#

TABLE `raspisanie_lokomotivi` (

`id_r` int(11) NOT NULL,

`id_lok` int(11) NOT NULL,KEY (`id_r`,`id_lok`),`Relationship7_Lokomotivi` (`id_lok`),`Relationship7_Lokomotivi` FOREIGN KEY (`id_lok`) REFERENCES `lokomotivi` (`id_lok`) ON DELETE NO ACTION ON UPDATE NO ACTION,`Relationship7_Raspisanie` FOREIGN KEY (`id_r`) REFERENCES `raspisanie` (`id_r`) ON DELETE NO ACTION ON UPDATE NO ACTION

) ENGINE=InnoDB DEFAULT CHARSET=utf8;


#

# Structure for the `zaredzh_reis` table:

#

TABLE `zaredzh_reis` (

`prichina_zad` varchar(30) DEFAULT NULL,

`vremya_zad` varchar(30) DEFAULT NULL,

`kol_sdan_bilet` int(11) DEFAULT NULL,

`id_r` int(11) NOT NULL,KEY (`id_r`),`Raspisanie_Zaredzh_reis` FOREIGN KEY (`id_r`) REFERENCES `raspisanie` (`id_r`) ON DELETE NO ACTION ON UPDATE NO ACTION

) ENGINE=InnoDB DEFAULT CHARSET=utf8;


#

# Definition for the `new_proc` procedure:

#DEFINER = 'root'@'localhost' PROCEDURE `new_proc`(param1 DATETIME,param2 DATETIME

)DETERMINISTICSQLSECURITY DEFINER''raspisanie.otprav, `raspisanie`.prib into param1, param2 from raspisanie;raspisanie set raspisanie.`vremya_marsh` = param2 - param1 where raspisanie.otprav = param1;into log values (param2 - param1);;


#

# Data for the `raspisanie` table (LIMIT 0,500)

#

INTO `raspisanie` (`id_r`, `nomer_poezd`, `type_poezd`, `otprav`, `prib`, `marshrut_nach`, `marshrut_kon`, `stoim_bilet`, `kol_bilet`, `vremya_marsh`) VALUES

(1,1,'пассажирский скорый', '2011-01-01 00:00:00', '2011-01-01 00:00:00', 'Барнаул', 'Новосибирск', 400,120,12),

(2,2,'пассажирский', '2012-02-02 12:30:00', '2012-02-05 15:30:00', 'Барнаул', 'Астана', 4000,100,72),

(5,3,'грузовой', '2011-02-01 06:00:00', '2011-02-06 16:35:00', 'Владивосток', 'Красноярск', NULL, NULL, 120),

(6,4,'грузовой', '2011-12-21 00:00:00', '2011-12-28 00:00:00', 'Москва', 'Рига', NULL, NULL, 168);

COMMIT;


#

# Data for the `bileti` table (LIMIT 0,500)

#

INTO `bileti` (`id_bil`, `status_bil`, `type_bil`, `vrem_buy`, `fio_owner`, `sex`, `age_ow`, `nomer_bagazh`, `id_r`) VALUES

(1,'сдан', 'межгород', '12:32:00', 'Иванов', 'м', 19,25486,1),

(2,'сдан', 'межгород', '12:32:00', 'Петров', 'м', 56, NULL, 1),

(3,'сдан', 'таможня', '15:56:00', 'Радонежский', 'м', 41, NULL, 2),

(4,'невыкуплен', 'межгород', NULL, NULL, NULL, NULL, NULL, 1),

(5,'невыкуплен', 'таможня', NULL, NULL, NULL, NULL, NULL, 2);

COMMIT;


#

# Data for the `log` table (LIMIT 0,500)

#

INTO `log` (`log`) VALUES

('nhbut'),

('nhbut'),

('nhbut'),

('nhbut'),

('nhbut'),

('nhbut'),

('nhbut'),

('nhbut');;


#

# Data for the `lokomotivi` table (LIMIT 0,500)

#

INTO `lokomotivi` (`id_lok`, `date_teh_osm`, `date_remont_last`, `kol_remont`, `kol_reis`, `age_lok`) VALUES

(1,'2010-02-25', NULL, NULL, 14,2),

(2,'2011-12-04', '2011-12-01', 4,25,3);;


#

# Data for the `otdeli` table (LIMIT 0,500)

#

INTO `otdeli` (`id_otd`, `fio_nach_otd`, `name_otd`) VALUES

(1,'Иванов', 'Ремонтный'),

(2,'Семшов', 'Локомотивый');;


#

# Data for the `teh_brigad` table (LIMIT 0,500)

#

INTO `teh_brigad` (`id_brig`, `type_brigad`, `id_otd`, `sred_zp`) VALUES

(1,'Ремонтники состава', 1,17000),

(2,'Локомотивная', 2,18750);;

#

# Data for the `lokomotivi_teh_brigad` table (LIMIT 0,500)

#

INTO `lokomotivi_teh_brigad` (`id_lok`, `id_brig`) VALUES

(1,2),

(2,1);;


#

# Data for the `otmen_reis` table (LIMIT 0,500)

#

INTO `otmen_reis` (`prichina_otmen`, `id_r`) VALUES

('Погодные условия', 5),

('Таможня', 6);;


#

# Data for the `rabotniki` table (LIMIT 0,500)

#

INTO `rabotniki` (`id_rab`, `fio`, `type`, `stazh`, `sex`, `age`, `deti`, `zar_pl`, `date_med`, `id_otd`, `id_br`) VALUES

(1,'Иванов', 'администрация', 20,'м', 40,2,50000, NULL, 1, NULL),

(2,'Петров', 'водитель', 12,'м', 42,1,18000,'2011-02-25', 2,2),

(3,'Семенов', 'ремонтник состава', 15,'м', 45,1,17000,'2010-03-22', 1,1),

(4,'Семшов', 'администрация', 25,'м', 50,1,20000, NULL, 2, NULL),

(8,'Туркина', 'диспетчер', 22,'ж', 42,1,21000, NULL, 2,2),

(9,'Ведин', 'водитель', 22,'м', 42, NULL, 24000,'2010-02-25', 2,2),

(10,'Сидоров', 'водитель', 15,'м', 35,1,12000,'2011-02-25', 2,2);

COMMIT;


#

# Data for the `raspisanie_lokomotivi` table (LIMIT 0,500)

#

INTO `raspisanie_lokomotivi` (`id_r`, `id_lok`) VALUES

(1,2);;


#

# Data for the `zaredzh_reis` table (LIMIT 0,500)

#

INTO `zaredzh_reis` (`prichina_zad`, `vremya_zad`, `kol_sdan_bilet`, `id_r`) VALUES

('Таможня', '3', 1,1),

('Погода', '1', 0,2);;


Приложение Б


Листинг кода программы


Unit1.h

// -


#ifndef Unit1H

#define Unit1H

// -

#include <Classes.hpp>

#include <Controls.hpp>

#include <StdCtrls.hpp>

#include <Forms.hpp>

#include <ADODB.hpp>

#include <DB.hpp>

#include <DBGrids.hpp>

#include <Grids.hpp>

#include <Menus.hpp>

#include <ExtCtrls.hpp>

#include <DBCtrls.hpp>

#include <DBTables.hpp>

// -TForm1: public TForm

{

__published: // IDE-managed Components*ADOConnection1;*ADOQuery1;*DataSource1;*DBGrid1;*MainMenu1;*N1;*N2;*N3;*N4;*N5;*DBNavigator1;*N6;*N7;*N8;*N9;*N10;*N11;*N12;*N13;*N14;*N15;*Button1;*Button2;*Button3;*Button4;*Button5;*Button6;*Button7;*Button8;*Button9;*Button10;__fastcall N5Click (TObject *Sender);__fastcall N2Click (TObject *Sender);__fastcall N3Click (TObject *Sender);__fastcall N4Click (TObject *Sender);__fastcall RadioButton1Click (TObject *Sender);__fastcall RadioButton2Click (TObject *Sender);__fastcall RadioButton3Click (TObject *Sender);__fastcall RadioButton4Click (TObject *Sender);__fastcall RadioButton5Click (TObject *Sender);__fastcall RadioButton6Click (TObject *Sender);__fastcall RadioButton7Click (TObject *Sender);__fastcall RadioButton8Click (TObject *Sender);__fastcall RadioButton9Click (TObject *Sender);__fastcall RadioButton10Click (TObject *Sender);__fastcall N6Click (TObject *Sender);__fastcall N7Click (TObject *Sender);__fastcall N8Click (TObject *Sender);__fastcall N9Click (TObject *Sender);__fastcall N10Click (TObject *Sender);__fastcall N11Click (TObject *Sender);__fastcall N12Click (TObject *Sender);__fastcall N13Click (TObject *Sender);__fastcall N14Click (TObject *Sender);__fastcall N15Click (TObject *Sender);__fastcall Button1Click (TObject *Sender);__fastcall Button3Click (TObject *Sender);__fastcall Button5Click (TObject *Sender);__fastcall Button7Click (TObject *Sender);__fastcall Button9Click (TObject *Sender);__fastcall Button2Click (TObject *Sender);__fastcall Button4Click (TObject *Sender);__fastcall Button6Click (TObject *Sender);__fastcall Button8Click (TObject *Sender);__fastcall Button10Click (TObject *Sender);: // User declarations: // User declarations

__fastcall TForm1 (TComponent* Owner);

};

// -PACKAGE TForm1 *Form1;

// -

#endif

.cpp

// -


#include <vcl.h>

#pragma hdrstop


#include «Unit1.h»

#include «Unit2.cpp»

// -

#pragma package (smart_init)

#pragma resource «*.dfm»*Form1;NameTable;DoneKey;keyMenu = 0;query = «»;

// -

__fastcall TForm1:TForm1 (TComponent* Owner)

: TForm(Owner)

{

}

// -

__fastcall TForm1:N5Click (TObject *Sender)

{>Terminate();

}

// -

__fastcall TForm1:N2Click (TObject *Sender)

{>Show();>Caption = «Перечень всех работников»;= 1;>Button1->Visible = true;>Button2->Visible = true;>Button3->Visible = true;>Button4->Visible = true;>Button5->Visible = true;>Button6->Visible = true;>Button7->Visible = true;

>Button1->Caption = «Все работники жд»;>Button2->Caption = «Начальники отделов»;>Button3->Caption = «Работники отдела»;>Button4->Caption = «По стажу»;>Button5->Caption = «По пол. признаку»;>Button6->Caption = «По наличию детей»;>Button7->Caption = «По размеру з/п»;

InsertForm->Label1->Visible = false;>Label2->Visible = false;>Label3->Visible = true;>Label4->Visible = true;>Label5->Visible = true;>Label6->Visible = true;>Label7->Visible = true;

>Label1->Caption = «»;>Label2->Caption = «»;>Label3->Caption = «Номер =»;>Label4->Caption = «Стаж =»;>Label5->Caption = «Пол =»;>Label6->Caption = «Кол.дет=»;>Label7->Caption = «з/п =»;

>Edit1->Visible = false;>Edit2->Visible = false;>Edit3->Visible = true;>Edit4->Visible = true;>Edit5->Visible = true;>Edit6->Visible = true;>Edit7->Visible = true;


}

// -

__fastcall TForm1:N3Click (TObject *Sender)

{>Show();>Caption = «Перечень всех работников в бригадах»;= 2;>Button1->Visible = true;>Button2->Visible = true;>Button3->Visible = true;>Button4->Visible = true;>Button5->Visible = true;>Button6->Visible = true;>Button7->Visible = false;

>Button1->Caption = «Все работ. в бригадах»;>Button2->Caption = «Работ. в бриг по отдел»;>Button3->Caption = «Работники отдела»;>Button4->Caption = «Работ обслуж локом.»;>Button5->Caption = «По возрасту»;>Button6->Caption = «По ср. з/п в бриг»;>Button7->Caption = «»;

>Label1->Visible = false;>Label2->Visible = false;>Label3->Visible = true;>Label4->Visible = true;>Label5->Visible = true;>Label6->Visible = true;>Label7->Visible = false;

>Label1->Caption = «»;>Label2->Caption = «»;>Label3->Caption = «Номер =»;>Label4->Caption = «Номер =»;>Label5->Caption = «=»;>Label6->Caption = «з/п =»;>Label7->Caption = «»;

>Edit1->Visible = false;>Edit2->Visible = false;>Edit3->Visible = true;>Edit4->Visible = true;>Edit5->Visible = true;>Edit6->Visible = true;>Edit7->Visible = false;


}

// -

__fastcall TForm1:N4Click (TObject *Sender)

{>Show();>Caption = «Перечень всех водителей локомотивов»;= 3;>Button1->Visible = true;>Button2->Visible = true;>Button3->Visible = true;>Button4->Visible = true;>Button5->Visible = true;>Button6->Visible = true;>Button7->Visible = false;

>Button1->Caption = «Все водители локом.»;>Button2->Caption = «Прошли мед. осмотр»;>Button3->Caption = «Не прошли ме. осмотр»;>Button4->Caption = «По пол. признак (м-ж)»;>Button5->Caption = «По возрасту»;>Button6->Caption = «По з/п»;>Button7->Caption = «»;

>Label1->Visible = false;>Label2->Visible = true;>Label3->Visible = true;>Label4->Visible = true;>Label5->Visible = true;>Label6->Visible = true;>Label7->Visible = false;

>Label1->Caption = «»;>Label2->Caption = «год =»;>Label3->Caption = «год =»;>Label4->Caption = «пол =»;>Label5->Caption = «возр =»;>Label6->Caption = «з/п =»;>Label7->Caption = «»;

>Edit1->Visible = false;>Edit2->Visible = true;>Edit3->Visible = true;>Edit4->Visible = true;>Edit5->Visible = true;>Edit6->Visible = true;>Edit7->Visible = false;


}

// -

__fastcall TForm1:N6Click (TObject *Sender)

{>Show();>Caption = «Перечень всех локомотивов»;= 4;>Button1->Visible = true;>Button2->Visible = true;>Button3->Visible = true;>Button4->Visible = false;>Button5->Visible = false;>Button6->Visible = false;>Button7->Visible = false;

>Button1->Caption = «Все локомотивы»;>Button2->Caption = «По времени прибытия»;>Button3->Caption = «По кол-ву рейсов»;>Button4->Caption = «»;>Button5->Caption = «»;>Button6->Caption = «»;>Button7->Caption = «»;

>Label1->Visible = false;>Label2->Visible = true;>Label3->Visible = true;>Label4->Visible = false;>Label5->Visible = false;>Label6->Visible = false;>Label7->Visible = false;

>Label1->Caption = «»;>Label2->Caption = «время»;>Label3->Caption = «=»;>Label4->Caption = «»;>Label5->Caption = «»;>Label6->Caption = «»;>Label7->Caption = «»;

>Edit1->Visible = false;>Edit2->Visible = true;>Edit3->Visible = true;>Edit4->Visible = false;>Edit5->Visible = false;>Edit6->Visible = false;>Edit7->Visible = false;

}

// -__fastcall TForm1:N7Click (TObject *Sender)

{>Show();>Caption = «Перечень всех локомотивов техосмотра»;= 5;>Button1->Visible = true;>Button2->Visible = false;>Button3->Visible = true;>Button4->Visible = true;>Button5->Visible = true;>Button6->Visible = true;>Button7->Visible = false;

>Button1->Caption = «Прошедшие ТО»;>Button2->Caption = «»;>Button3->Caption = «Ремонт кол. раз»;>Button4->Caption = «Кол.рейсов до рем.»;>Button5->Caption = «Отправл. на ремонт»;>Button6->Caption = «По возрасту лок.»;>Button7->Caption = «»;

>Label1->Visible = true;>Label2->Visible = true;>Label3->Visible = true;>Label4->Visible = true;>Label5->Visible = true;>Label6->Visible = true;>Label7->Visible = false;

>Label1->Caption = «С»;>Label2->Caption = «ПО»;>Label3->Caption = «=»;>Label4->Caption = «=»;>Label5->Caption = «дата:»;>Label6->Caption = «=»;>Label7->Caption = «»;

>Edit1->Visible = true;>Edit2->Visible = true;>Edit3->Visible = true;>Edit4->Visible = true;>Edit5->Visible = true;>Edit6->Visible = true;>Edit7->Visible = false;


}

// -__fastcall TForm1:N8Click (TObject *Sender)

{>Show();>Caption = «Перечень всех поездов»;= 6;>Button1->Visible = true;>Button2->Visible = true;>Button3->Visible = false;>Button4->Visible = true;>Button5->Visible = true;>Button6->Visible = false;>Button7->Visible = false;

>Button1->Caption = «По всем парам.»;>Button2->Caption = «По маршруту:»;>Button3->Caption = «»;>Button4->Caption = «По времени марш.»;>Button5->Caption = «По цене билета»;>Button6->Caption = «»;>Button7->Caption = «»;

>Label1->Visible = true;>Label2->Visible = true;>Label3->Visible = true;>Label4->Visible = true;>Label5->Visible = true;>Label6->Visible = true;>Label7->Visible = false;

>Label1->Caption = «»;>Label2->Caption = «нач:»;>Label3->Caption = «кон:»;>Label4->Caption = «=»;>Label5->Caption = «=»;>Label6->Caption = «»;>Label7->Caption = «»;

>Edit1->Visible = false;>Edit2->Visible = true;>Edit3->Visible = true;>Edit4->Visible = true;>Edit5->Visible = true;>Edit6->Visible = false;>Edit7->Visible = false;


}

// -__fastcall TForm1:N9Click (TObject *Sender)

{>Show();>Caption = «Перечень отмененных рейсов»;= 7;>Button1->Visible = true;>Button2->Visible = true;>Button3->Visible = true;>Button4->Visible = false;>Button5->Visible = false;>Button6->Visible = false;>Button7->Visible = false;

>Button1->Caption = «Все отм. рейсы»;>Button2->Caption = «Отм. рейс в направ:»;>Button3->Caption = «Отм. рейс по марш.:»;>Button4->Caption = «»;>Button5->Caption = «»;>Button6->Caption = «»;>Button7->Caption = «»;

>Label1->Visible = true;>Label2->Visible = true;>Label3->Visible = true;>Label4->Visible = true;>Label5->Visible = false;>Label6->Visible = false;>Label7->Visible = false;

>Label1->Caption = «»;>Label2->Caption = «»;>Label3->Caption = «нач:»;>Label4->Caption = «кон:»;>Label5->Caption = «»;>Label6->Caption = «»;>Label7->Caption = «»;

InsertForm->Edit1->Visible = false;>Edit2->Visible = true;>Edit3->Visible = true;>Edit4->Visible = true;>Edit5->Visible = false;>Edit6->Visible = false;>Edit7->Visible = false;


}

// -__fastcall TForm1:N10Click (TObject *Sender)

{>Show();>Caption = «Перечень задержанных рейсов»;= 8;>Button1->Visible = true;>Button2->Visible = true;>Button3->Visible = true;>Button4->Visible = false;>Button5->Visible = false;>Button6->Visible = false;>Button7->Visible = false;

>Button1->Caption = «Все зад. рейсы»;>Button2->Caption = «Зад. рейс по прич.:»;>Button3->Caption = «Зад. рейс по марш.:»;>Button4->Caption = «»;>Button5->Caption = «Кол. сданных билетов»;>Button6->Caption = «»;>Button7->Caption = «»;

>Label1->Visible = true;>Label2->Visible = true;>Label3->Visible = true;>Label4->Visible = true;>Label5->Visible = false;>Label6->Visible = false;>Label7->Visible = false;

>Label1->Caption = «»;>Label2->Caption = «»;>Label3->Caption = «нач:»;>Label4->Caption = «кон:»;>Label5->Caption = «»;>Label6->Caption = «»;>Label7->Caption = «»;

>Edit1->Visible = false;>Edit2->Visible = true;>Edit3->Visible = true;>Edit4->Visible = true;>Edit5->Visible = false;>Edit6->Visible = false;>Edit7->Visible = false;


}

// -__fastcall TForm1:N11Click (TObject *Sender)

{>Show();>Caption = «Перечень проданных билетов»;= 9;>Button1->Visible = true;>Button2->Visible = false;>Button3->Visible = false;>Button4->Visible = false;>Button5->Visible = true;>Button6->Visible = true;>Button7->Visible = false;

>Button1->Caption = «Продан. билеты»;>Button2->Caption = «»;>Button3->Caption = «»;>Button4->Caption = «»;>Button5->Caption = «По длинтел. марш.»;>Button6->Caption = «По цене билета»;>Button7->Caption = «»;

>Label1->Visible = true;>Label2->Visible = true;>Label3->Visible = true;>Label4->Visible = true;>Label5->Visible = true;>Label6->Visible = true;>Label7->Visible = false;

>Label1->Caption = «с:»;>Label2->Caption = «по:»;>Label3->Caption = «нач:»;>Label4->Caption = «кон:»;>Label5->Caption = «=»;>Label6->Caption = «=»;>Label7->Caption = «»;

>Edit1->Visible = true;>Edit2->Visible = true;>Edit3->Visible = true;>Edit4->Visible = true;>Edit5->Visible = true;>Edit6->Visible = true;>Edit7->Visible = false;

}

// -__fastcall TForm1:N12Click (TObject *Sender)

{>Show();>Caption = «Перечень маршрутов»;= 10;>Button1->Visible = true;>Button2->Visible = false;>Button3->Visible = false;>Button4->Visible = false;>Button5->Visible = false;>Button6->Visible = false;>Button7->Visible = false;

>Button1->Caption = «Маршруты»;>Button2->Caption = «»;>Button3->Caption = «»;>Button4->Caption = «»;>Button5->Caption = «»;>Button6->Caption = «»;>Button7->Caption = «»;

>Label1->Visible = true;>Label2->Visible = true;>Label3->Visible = false;>Label4->Visible = false;>Label5->Visible = false;>Label6->Visible = false;>Label7->Visible = false;

>Label1->Caption = «тип:»;>Label2->Caption = «направ.:»;>Label3->Caption = «»;>Label4->Caption = «»;>Label5->Caption = «»;>Label6->Caption = «»;>Label7->Caption = «»;

>Edit1->Visible = true;>Edit2->Visible = true;>Edit3->Visible = false;>Edit4->Visible = false;>Edit5->Visible = false;>Edit6->Visible = false;>Edit7->Visible = false;

}

// -__fastcall TForm1:N13Click (TObject *Sender)

{>Show();>Caption = «Перечень пассажиров»;= 11;>Button1->Visible = true;>Button2->Visible = true;>Button3->Visible = true;>Button4->Visible = true;>Button5->Visible = true;>Button6->Visible = true;>Button7->Visible = false;

>Button1->Caption = «По рейсу»;>Button2->Caption = «По дню отъезда»;>Button3->Caption = «За границу»;>Button4->Caption = «Сдали в багаж»;>Button5->Caption = «По полу»;>Button6->Caption = «По возрасту»;>Button7->Caption = «»;

>Label1->Visible = true;>Label2->Visible = true;>Label3->Visible = true;>Label4->Visible = true;>Label5->Visible = true;>Label6->Visible = true;>Label7->Visible = false;

>Label1->Caption = «=»;>Label2->Caption = «=»;>Label3->Caption = «день от.»;>Label4->Caption = «»;>Label5->Caption = «(м, ж)»;>Label6->Caption = «=»;>Label7->Caption = «»;

>Edit1->Visible = true;>Edit2->Visible = true;>Edit3->Visible = true;>Edit4->Visible = false;>Edit5->Visible = true;>Edit6->Visible = true;>Edit7->Visible = false;


}

// -__fastcall TForm1:N14Click (TObject *Sender)

{>Show();>Caption = «Перечень невыкупленных билетов»;= 12;>Button1->Visible = true;>Button2->Visible = true;>Button3->Visible = true;>Button4->Visible = false;>Button5->Visible = false;>Button6->Visible = false;>Button7->Visible = false;

>Button1->Caption = «По рейсу»;>Button2->Caption = «По дню отъезда»;>Button3->Caption = «По маршруту»;>Button4->Caption = «»;>Button5->Caption = «»;>Button6->Caption = «»;>Button7->Caption = «»;

>Label1->Visible = true;>Label2->Visible = true;>Label3->Visible = true;>Label4->Visible = true;>Label5->Visible = false;>Label6->Visible = false;>Label7->Visible = false;

>Label1->Caption = «№»;>Label2->Caption = «день от:»;>Label3->Caption = «нач:»;>Label4->Caption = «кон:»;>Label5->Caption = «»;>Label6->Caption = «»;>Label7->Caption = «»;

>Edit1->Visible = true;>Edit2->Visible = true;>Edit3->Visible = true;>Edit4->Visible = true;>Edit5->Visible = false;>Edit6->Visible = false;>Edit7->Visible = false;

}

// -__fastcall TForm1:N15Click (TObject *Sender)

{>Show();>Caption = «Количество сданных билетов»;= 13;>Button1->Visible = true;>Button2->Visible = true;>Button3->Visible = true;>Button4->Visible = false;>Button5->Visible = false;>Button6->Visible = false;>Button7->Visible = false;

>Button1->Caption = «По рейсу»;>Button2->Caption = «По дню отъезда»;>Button3->Caption = «По маршруту»;>Button4->Caption = «»;>Button5->Caption = «»;>Button6->Caption = «»;>Button7->Caption = «»;

>Label1->Visible = true;>Label2->Visible = true;>Label3->Visible = true;>Label4->Visible = true;>Label5->Visible = false;>Label6->Visible = false;>Label7->Visible = false;>Label1->Caption = «№»;>Label2->Caption = «день от:»;>Label3->Caption = «нач:»;>Label4->Caption = «кон:»;>Label5->Caption = «»;>Label6->Caption = «»;>Label7->Caption = «»;

>Edit1->Visible = true;>Edit2->Visible = true;>Edit3->Visible = true;>Edit4->Visible = true;>Edit5->Visible = false;>Edit6->Visible = false;>Edit7->Visible = false;


}

// -



// -

__fastcall TForm1: RadioButton1Click (TObject *Sender)

{= «raspisanie»;->ADOQuery1->SQL->Text = «select * from «+NameTable+»»;->ADOQuery1->Active = 1;->ADOQuery1->ExecSQL();

}

// -

__fastcall TForm1: RadioButton2Click (TObject *Sender)

{= «bileti»;->ADOQuery1->SQL->Text = «select * from «+NameTable+»»;->ADOQuery1->Active = 1;->ADOQuery1->ExecSQL();

}

// -

__fastcall TForm1: RadioButton3Click (TObject *Sender)

{= «zaredzh_reis»;->ADOQuery1->SQL->Text = «select * from «+NameTable+»»;->ADOQuery1->Active = 1;->ADOQuery1->ExecSQL();

}

// -

__fastcall TForm1: RadioButton4Click (TObject *Sender)

{= «otmen_reis»;->ADOQuery1->SQL->Text = «select * from «+NameTable+»»;->ADOQuery1->Active = 1;->ADOQuery1->ExecSQL();

}

// -

__fastcall TForm1: RadioButton5Click (TObject *Sender)

{= «raspisanie_lokomotivi»;->ADOQuery1->SQL->Text = «select * from «+NameTable+»»;->ADOQuery1->Active = 1;->ADOQuery1->ExecSQL();

}

// -

__fastcall TForm1: RadioButton6Click (TObject *Sender)

{= «rabotniki»;->ADOQuery1->SQL->Text = «select * from «+NameTable+»»;->ADOQuery1->Active = 1;->ADOQuery1->ExecSQL();

}

// -

__fastcall TForm1: RadioButton7Click (TObject *Sender)

{= «otdeli»;->ADOQuery1->SQL->Text = «select * from «+NameTable+»»;->ADOQuery1->Active = 1;->ADOQuery1->ExecSQL();

}

// -

__fastcall TForm1: RadioButton8Click (TObject *Sender)

{= «teh_brigad»;->ADOQuery1->SQL->Text = «select * from «+NameTable+»»;->ADOQuery1->Active = 1;->ADOQuery1->ExecSQL();

}

// -

__fastcall TForm1: RadioButton9Click (TObject *Sender)

{= «lokomotivi»;->ADOQuery1->SQL->Text = «select * from «+NameTable+»»;->ADOQuery1->Active = 1;->ADOQuery1->ExecSQL();

}

// -

__fastcall TForm1: RadioButton10Click (TObject *Sender)

{= «lokomotivi_teh_brigad»;->ADOQuery1->SQL->Text = «select * from «+NameTable+»»;->ADOQuery1->Active = 1;->ADOQuery1->ExecSQL();

}

// -

__fastcall TInsertForm: Button1Click (TObject *Sender)

{(keyMenu)

{1: InsertForm->ADOQuery1->SQL->Text = «select * from rabotniki»;;2: InsertForm->ADOQuery1->SQL->Text = «SELECT * FROM rabotniki WHERE `rabotniki`.`id_br` IS NOT NULL»;;3: InsertForm->ADOQuery1->SQL->Text = «select * from rabotniki where rabotniki.type = 'водитель'»;;4: InsertForm->ADOQuery1->SQL->Text = «select * from lokomotivi»;;5: InsertForm->ADOQuery1->SQL->Text = «select * from lokomotivi where lokomotivi.date_teh_osm >= '»+InsertForm->Edit1->Text+«'and lokomotivi.date_teh_osm <= ' «+InsertForm->Edit2->Text+» '»;;6: InsertForm->ADOQuery1->SQL->Text = «select * from raspisanie»;;7: InsertForm->ADOQuery1->SQL->Text = «select * from raspisanie, otmen_reis where raspisanie.id_r = otmen_reis.id_r»;;8: InsertForm->ADOQuery1->SQL->Text = «select * from raspisanie, zaredzh_reis where raspisanie.id_r = zaredzh_reis.id_r»;;9: InsertForm->ADOQuery1->SQL->Text = «select raspisanie.id_r, bileti.status_bil, bileti.fio_owner, bileti.vrem_buy, raspisanie.marshrut_nach, raspisanie.marshrut_kon from bileti, raspisanie where raspisanie.id_r = bileti.id_r and raspisanie.marshrut_nach = '»+InsertForm->Edit3->Text+«' and raspisanie.marshrut_kon = ' «+InsertForm->Edit4->Text+» ' and bileti.vrem_buy >= ' «+InsertForm->Edit1->Text+» ' and bileti.vrem_buy <= ' «+InsertForm->Edit2->Text+» '»;;10: InsertForm->ADOQuery1->SQL->Text = «select * from raspisanie where raspisanie.type_poezd = '»+InsertForm->Edit1->Text+«' and raspisanie.marshrut_kon = ' «+InsertForm->Edit2->Text+» '»;;11: InsertForm->ADOQuery1->SQL->Text = «select * from bileti where bileti.id_r = «+InsertForm->Edit1->Text;;12: InsertForm->ADOQuery1->SQL->Text = «select * from bileti where bileti.status_bil = «невыкуплен» and bileti.id_r = «+InsertForm->Edit1->Text;;13: InsertForm->ADOQuery1->SQL->Text = «select count(*) AS «Кол. сданных билетов» from bileti where bileti.status_bil = «сдан» and bileti.id_r = «+InsertForm->Edit1->Text;;

:break;

}>ADOQuery1->Active = 1;>ADOQuery1->ExecSQL();

}

// -__fastcall TInsertForm: Button2Click (TObject *Sender)

{(keyMenu)

{1: InsertForm->ADOQuery1->SQL->Text = «select * from rabotniki, otdeli where otdeli.fio_nach_otd = rabotniki.fio»;;2: InsertForm->ADOQuery1->SQL->Text = «SELECT * FROM rabotniki WHERE `rabotniki`.`id_br` IS NOT NULL AND `rabotniki`.`id_otd` IS NOT NULL»;;3: InsertForm->ADOQuery1->SQL->Text = «select * from rabotniki where rabotniki.type = «водитель» and rabotniki.date_med >= '»+InsertForm->Edit2->Text+» - 01-01' AND rabotniki.date_med <= ' «+InsertForm->Edit2->Text+» - 12-31'»;;4: InsertForm->ADOQuery1->SQL->Text = «select lokomotivi.id_lok, raspisanie.id_r, raspisanie.marshrut_nach, raspisanie.marshrut_kon, raspisanie.otprav, raspisanie.prib from lokomotivi, raspisanie, raspisanie_lokomotivi where raspisanie.prib = '»+InsertForm->Edit2->Text+ «' and raspisanie.id_r = raspisanie_lokomotivi.id_r and raspisanie_lokomotivi.id_lok = lokomotivi.id_lok»;;6: InsertForm->ADOQuery1->SQL->Text = «select raspisanie.nomer_poezd, raspisanie.type_poezd, raspisanie.marshrut_nach, raspisanie.marshrut_kon from raspisanie where raspisanie.marshrut_nach = '»+InsertForm->Edit2->Text+«' and raspisanie.marshrut_kon = ' «+InsertForm->Edit3->Text+» '»;;7: InsertForm->ADOQuery1->SQL->Text = «select * from raspisanie, otmen_reis where raspisanie.id_r = otmen_reis.id_r and raspisanie.marshrut_kon = '»+InsertForm->Edit2->Text+ «'»;;8: InsertForm->ADOQuery1->SQL->Text = «select * from raspisanie, zaredzh_reis where raspisanie.id_r = zaredzh_reis.id_r and zaredzh_reis.prichina_zad = '»+InsertForm->Edit2->Text+ «'»;;11: InsertForm->ADOQuery1->SQL->Text = «select bileti.fio_owner, bileti.age_ow, bileti.sex from bileti, raspisanie where raspisanie.otprav >= '»+InsertForm->Edit2->Text+» 00:00' and raspisanie.otprav <= ' «+InsertForm->Edit2->Text+» 23:59' and raspisanie.id_r = bileti.id_r»;;12: InsertForm->ADOQuery1->SQL->Text = «select * from bileti, raspisanie where bileti.status_bil = «невыкуплен» and bileti.id_r = raspisanie.id_r and raspisanie.otprav >= '»+InsertForm->Edit2->Text+» 00:00' and raspisanie.otprav <= ' «+InsertForm->Edit2->Text+» 23:59'»;;13: InsertForm->ADOQuery1->SQL->Text = «select count(*) AS «Кол. сданных билетов» from bileti, raspisanie where bileti.status_bil = «сдан» and bileti.id_r = raspisanie.id_r and raspisanie.otprav >= '»+InsertForm->Edit2->Text+» 00:00' and raspisanie.otprav <= ' «+InsertForm->Edit2->Text+» 23:59'»;;

:break;

}>ADOQuery1->Active = 1;>ADOQuery1->ExecSQL();

}

// -

__fastcall TInsertForm: Button3Click (TObject *Sender)

{(keyMenu)

{1: InsertForm->ADOQuery1->SQL->Text = «select * from `rabotniki`, `otdeli` where «+>Edit3->Text+» = `rabotniki`.`id_otd`;»;;2: InsertForm->ADOQuery1->SQL->Text = «select rabotniki.fio, rabotniki.type, rabotniki.stazh, rabotniki.sex, rabotniki.age, rabotniki.zar_pl, rabotniki.date_med from `rabotniki`, `otdeli` where «+>Edit3->Text+» = `rabotniki`.`id_otd` AND `rabotniki`.`id_br` IS NOT NULL group by rabotniki.fio»;;3: InsertForm->ADOQuery1->SQL->Text = «select * from rabotniki where rabotniki.type = «водитель» and rabotniki.date_med < '»+InsertForm->Edit3->Text+» - 01-01'»;;4: InsertForm->ADOQuery1->SQL->Text = «select * from lokomotivi where kol_reis = «+InsertForm->Edit3->Text;;5: InsertForm->ADOQuery1->SQL->Text = «select * from lokomotivi where lokomotivi.kol_remont = «+InsertForm->Edit3->Text;;7: InsertForm->ADOQuery1->SQL->Text = «select * from raspisanie, otmen_reis where raspisanie.id_r = otmen_reis.id_r and raspisanie.marshrut_nach = '»+InsertForm->Edit3->Text+«' and raspisanie.marshrut_kon = ' «+InsertForm->Edit4->Text+» '»;;8: InsertForm->ADOQuery1->SQL->Text = «select * from raspisanie, zaredzh_reis where raspisanie.id_r = zaredzh_reis.id_r and raspisanie.marshrut_nach = '»+InsertForm->Edit3->Text+«' and raspisanie.marshrut_kon = ' «+InsertForm->Edit4->Text+» '»;;11: InsertForm->ADOQuery1->SQL->Text = «select bileti.fio_owner, bileti.age_ow, bileti.sex from bileti, raspisanie where raspisanie.otprav >= '»+InsertForm->Edit3->Text+» 00:00' and raspisanie.otprav <= ' «+InsertForm->Edit3->Text+» 23:59' and raspisanie.id_r = bileti.id_r and bileti.type_bil = 'таможня'»;;12: InsertForm->ADOQuery1->SQL->Text = «select * from bileti, raspisanie where bileti.status_bil = «невыкуплен» and bileti.id_r = raspisanie.id_r and raspisanie.marshrut_nach = '»+InsertForm->Edit3->Text+«' and raspisanie.marshrut_kon = ' «+InsertForm->Edit4->Text+» '»;;13: InsertForm->ADOQuery1->SQL->Text = «select count(*) AS «Кол. сданных билетов» from bileti, raspisanie where bileti.status_bil = «сдан» and bileti.id_r = raspisanie.id_r and raspisanie.marshrut_nach = '»+InsertForm->Edit3->Text+«' and raspisanie.marshrut_kon = ' «+InsertForm->Edit4->Text+» '»;;

:break;

}>ADOQuery1->Active = 1;>ADOQuery1->ExecSQL();

}

// -

__fastcall TInsertForm: Button4Click (TObject *Sender)

{(keyMenu)

{1: InsertForm->ADOQuery1->SQL->Text = «select * from `rabotniki` where «+>Edit4->Text+» = `rabotniki`.`stazh`;»;;2: InsertForm->ADOQuery1->SQL->Text = «SELECT `rabotniki`.`id_br`,`rabotniki`.`fio` FROM rabotniki, `teh_brigad`, `lokomotivi_teh_brigad` WHERE `lokomotivi_teh_brigad`.`id_lok` = «+InsertForm->Edit4->Text+» and `lokomotivi_teh_brigad`.`id_brig` = `teh_brigad`.`id_brig` and `teh_brigad`.`type_brigad` = «Локомотивная» and `rabotniki`.`id_br` = `teh_brigad`.`id_brig`»;;3: InsertForm->ADOQuery1->SQL->Text = «select * from rabotniki where rabotniki.type = «водитель» and rabotniki.sex = '»+InsertForm->Edit4->Text+ «'»;;4: InsertForm->ADOQuery1->SQL->Text = «select * from lokomotivi»;;5: InsertForm->ADOQuery1->SQL->Text = «select * from lokomotivi where lokomotivi.date_remont_last IS NOT NULL and lokomotivi.kol_reis = «+InsertForm->Edit4->Text;;6: InsertForm->ADOQuery1->SQL->Text = «select raspisanie.nomer_poezd, raspisanie.type_poezd, raspisanie.marshrut_nach, raspisanie.marshrut_kon, raspisanie.vremya_marsh from raspisanie where raspisanie.vremya_marsh = '»+InsertForm->Edit4->Text+ «'»;;11: InsertForm->ADOQuery1->SQL->Text = «select bileti.fio_owner, bileti.age_ow, bileti.sex from bileti where bileti.nomer_bagazh IS NOT NULL»;;:break;

}>ADOQuery1->Active = 1;>ADOQuery1->ExecSQL();

}

// -

void __fastcall TInsertForm: Button5Click (TObject *Sender)

{(keyMenu)

{1: InsertForm->ADOQuery1->SQL->Text = «select * from `rabotniki` where '»+>Edit5->Text+ «' = `rabotniki`.`sex`;»;;2: InsertForm->ADOQuery1->SQL->Text = «SELECT * FROM rabotniki WHERE «+>Edit5->Text+» = `rabotniki`.`age` AND `rabotniki`.`id_br` IS NOT NULL»;

;3: InsertForm->ADOQuery1->SQL->Text = «select * from rabotniki where rabotniki.type = «водитель» and rabotniki.age = «+InsertForm->Edit5->Text;;5: InsertForm->ADOQuery1->SQL->Text = «select * from lokomotivi where lokomotivi.date_remont_last = '»+InsertForm->Edit5->Text+ «'»;;6: InsertForm->ADOQuery1->SQL->Text = «select * from raspisanie where stoim_bilet = «+InsertForm->Edit5->Text;;9: InsertForm->ADOQuery1->SQL->Text = «select raspisanie.id_r, bileti.status_bil, bileti.fio_owner, bileti.vrem_buy, raspisanie.marshrut_nach, raspisanie.marshrut_kon, raspisanie.vremya_marsh from bileti, raspisanie where raspisanie.id_r = bileti.id_r and raspisanie.vremya_marsh = «+InsertForm->Edit5->Text;;11: InsertForm->ADOQuery1->SQL->Text = «select bileti.fio_owner, bileti.age_ow, bileti.sex from bileti where bileti.sex = '»+InsertForm->Edit5->Text+ «'»;;


:break;

}>ADOQuery1->Active = 1;>ADOQuery1->ExecSQL();

}

// -

__fastcall TInsertForm: Button6Click (TObject *Sender)

{int count;(keyMenu)

{1: InsertForm->ADOQuery1->SQL->Text = «select * from `rabotniki` where «+>Edit6->Text+» = `rabotniki`.`deti`;»;;2: InsertForm->ADOQuery1->SQL->Text = «select * from rabotniki, teh_brigad where teh_brigad.id_brig = rabotniki.id_br AND teh_brigad.sred_zp = «+InsertForm->Edit6->Text;

//InsertForm->ADOQuery1->Active = 1;

//InsertForm->ADOQuery1->ExecSQL();

//DBgrid1->DataSource->DataSet->First();

// InsertForm->DBGrid1->DataSource->DataSet->First();

//// count = InsertForm->DBGrid1->DataSource->DataSet->RecordCount;

// for (int i = 0; i<count; i++)

// {if (i!=0) {InsertForm->DBGrid1->DataSource->DataSet->Next();}

// if (InsertForm->DBGrid1->DataSource->DataSet->FieldByName («Sred_zp»)->AsString == InsertForm->Edit6->Text)

// {

//

// String temp;

// temp = InsertForm->DBGrid1->DataSource->DataSet->FieldByName («id_br»)->AsString;

// i = count;

// InsertForm->ADOQuery1->SQL->Text = «select * from rabotniki where rabotniki.id_br = «+temp;

// }

//

// };3: InsertForm->ADOQuery1->SQL->Text = «select * from rabotniki where rabotniki.type = «водитель» and rabotniki.zar_pl = «+ InsertForm->Edit6->Text;;5: InsertForm->ADOQuery1->SQL->Text = «select * from lokomotivi where lokomotivi.age_lok = «+InsertForm->Edit6->Text;;9: InsertForm->ADOQuery1->SQL->Text = «select raspisanie.id_r, bileti.status_bil, bileti.fio_owner, raspisanie.stoim_bilet, bileti.vrem_buy, raspisanie.marshrut_nach, raspisanie.marshrut_kon from bileti, raspisanie where raspisanie.id_r = bileti.id_r and raspisanie.stoim_bilet = «+InsertForm->Edit6->Text;;11: InsertForm->ADOQuery1->SQL->Text = «select bileti.fio_owner, bileti.age_ow, bileti.sex from bileti where bileti.age_ow = '»+InsertForm->Edit6->Text+ «'»;;

:break;

}>ADOQuery1->Active = 1;>ADOQuery1->ExecSQL();

}

// -

__fastcall TInsertForm: Button7Click (TObject *Sender)

{(keyMenu)

{1: InsertForm->ADOQuery1->SQL->Text = «select * from `rabotniki` where «+>Edit7->Text+» = `rabotniki`.`zar_pl`;»;;:break;

}>ADOQuery1->Active = 1;>ADOQuery1->ExecSQL();

}

__fastcall TForm1: Button1Click (TObject *Sender)

{= «rabotniki»;->ADOQuery1->SQL->Text = «select * from «+NameTable+»»;->ADOQuery1->Active = 1;->ADOQuery1->ExecSQL();->Button1->Enabled = false;->Button2->Enabled = true;->Button3->Enabled = true;->Button4->Enabled = true;->Button5->Enabled = true;->Button6->Enabled = true;->Button7->Enabled = true;->Button8->Enabled = true;->Button9->Enabled = true;->Button10->Enabled = true;

}

// -

__fastcall TForm1: Button3Click (TObject *Sender)

{= «otdeli»;->ADOQuery1->SQL->Text = «select * from «+NameTable+»»;->ADOQuery1->Active = 1;->ADOQuery1->ExecSQL();->Button1->Enabled = true;->Button2->Enabled = true;->Button3->Enabled = false;->Button4->Enabled = true;->Button5->Enabled = true;->Button6->Enabled = true;->Button7->Enabled = true;->Button8->Enabled = true;->Button9->Enabled = true;->Button10->Enabled = true;


}

// -

__fastcall TForm1: Button5Click (TObject *Sender)

{= «teh_brigad»;->ADOQuery1->SQL->Text = «select * from «+NameTable+»»;->ADOQuery1->Active = 1;->ADOQuery1->ExecSQL();->Button1->Enabled = true;->Button2->Enabled = true;->Button3->Enabled = true;->Button4->Enabled = true;->Button5->Enabled = false;->Button6->Enabled = true;->Button7->Enabled = true;->Button8->Enabled = true;->Button8->Enabled = true;->Button10->Enabled = true;


}

// -

__fastcall TForm1: Button7Click (TObject *Sender)

{= «lokomotivi»;->ADOQuery1->SQL->Text = «select * from «+NameTable+»»;->ADOQuery1->Active = 1;->ADOQuery1->ExecSQL();->Button1->Enabled = true;->Button2->Enabled = true;->Button3->Enabled = true;->Button4->Enabled = true;->Button5->Enabled = true;->Button6->Enabled = true;->Button7->Enabled = false;->Button8->Enabled = true;->Button9->Enabled = true;->Button10->Enabled = true;


}

// -

__fastcall TForm1: Button9Click (TObject *Sender)

{= «lokomotivi_teh_brigad»;->ADOQuery1->SQL->Text = «select * from «+NameTable+»»;->ADOQuery1->Active = 1;->ADOQuery1->ExecSQL();->Button1->Enabled = true;->Button2->Enabled = true;->Button3->Enabled = true;->Button4->Enabled = true;->Button5->Enabled = true;->Button6->Enabled = true;->Button7->Enabled = true;->Button8->Enabled = true;->Button9->Enabled = false;->Button10->Enabled = true;


}

// -

__fastcall TForm1: Button2Click (TObject *Sender)

{= «raspisanie»;->ADOQuery1->SQL->Text = «select * from «+NameTable+»»;->ADOQuery1->Active = 1;->ADOQuery1->ExecSQL();->Button1->Enabled = true;->Button2->Enabled = false;->Button3->Enabled = true;->Button4->Enabled = true;->Button5->Enabled = true;->Button6->Enabled = true;->Button7->Enabled = true;->Button8->Enabled = true;->Button9->Enabled = true;->Button10->Enabled = true;


}

// -

__fastcall TForm1: Button4Click (TObject *Sender)

{= «bileti»;->ADOQuery1->SQL->Text = «select * from «+NameTable+»»;->ADOQuery1->Active = 1;->ADOQuery1->ExecSQL();->Button1->Enabled = true;->Button2->Enabled = true;->Button3->Enabled = true;->Button4->Enabled = false;->Button5->Enabled = true;->Button6->Enabled = true;->Button7->Enabled = true;->Button8->Enabled = true;->Button9->Enabled = true;->Button10->Enabled = true;


}

// -

__fastcall TForm1: Button6Click (TObject *Sender)

{= «zaredzh_reis»;->ADOQuery1->SQL->Text = «select * from «+NameTable+»»;->ADOQuery1->Active = 1;->ADOQuery1->ExecSQL();->Button1->Enabled = true;->Button2->Enabled = true;->Button3->Enabled = true;->Button4->Enabled = true;->Button5->Enabled = true;->Button6->Enabled = false;->Button7->Enabled = true;->Button8->Enabled = true;->Button9->Enabled = true;->Button10->Enabled = true;


}

// -

__fastcall TForm1: Button8Click (TObject *Sender)

{= «otmen_reis»;->ADOQuery1->SQL->Text = «select * from «+NameTable+»»;->ADOQuery1->Active = 1;->ADOQuery1->ExecSQL();->Button1->Enabled = true;->Button2->Enabled = true;->Button3->Enabled = true;->Button4->Enabled = true;->Button5->Enabled = true;->Button6->Enabled = true;->Button7->Enabled = true;->Button8->Enabled = false;->Button9->Enabled = true;->Button10->Enabled = true;


}

// -

__fastcall TForm1: Button10Click (TObject *Sender)

{= «raspisanie_lokomotivi»;->ADOQuery1->SQL->Text = «select * from «+NameTable+»»;->ADOQuery1->Active = 1;->ADOQuery1->ExecSQL();->Button1->Enabled = true;->Button2->Enabled = true;->Button3->Enabled = true;->Button4->Enabled = true;->Button5->Enabled = true;->Button6->Enabled = true;->Button7->Enabled = true;->Button8->Enabled = true;->Button9->Enabled = true;->Button10->Enabled = false;


}

// -

.h

// -


#ifndef Unit2H

#define Unit2H

// -

#include <Classes.hpp>

#include <Controls.hpp>

#include <StdCtrls.hpp>

#include <Forms.hpp>

#include <ExtCtrls.hpp>

#include <ADODB.hpp>

#include <DB.hpp>

#include <DBGrids.hpp>

#include <Grids.hpp>

// -TInsertForm: public TForm

{

__published: // IDE-managed Components*Edit1;*Edit2;*Edit3;*Edit4;*Edit5;*Edit6;*Edit7;*Label1;*Label2;*Label3;*Label4;*Label5;*Label6;*Label7;*DBGrid1;*ADOQuery1;*DataSource1;*ADOConnection1;*Button1;*Button2;*Button3;*Button4;*Button5;*Button6;*Button7;__fastcall Button1Click (TObject *Sender);__fastcall Button2Click (TObject *Sender);__fastcall Button3Click (TObject *Sender);__fastcall Button4Click (TObject *Sender);__fastcall Button5Click (TObject *Sender);__fastcall Button6Click (TObject *Sender);__fastcall Button7Click (TObject *Sender);

: // User declarations: // User declarations

__fastcall TInsertForm (TComponent* Owner);

};

// -PACKAGE TInsertForm *InsertForm;

// -

#endif


.cpp

// -


#include <vcl.h>

#pragma hdrstop


#include «Unit2.h»

// #include «Unit1.cpp»

// -

#pragma package (smart_init)

#pragma resource «*.dfm»*InsertForm;

// -

__fastcall TInsertForm:TInsertForm (TComponent* Owner)

: TForm(Owner)

{

}


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

Больше работ по теме:

КОНТАКТНЫЙ EMAIL: [email protected]

Скачать реферат © 2017 | Пользовательское соглашение

Скачать      Реферат

ПРОФЕССИОНАЛЬНАЯ ПОМОЩЬ СТУДЕНТАМ