Добавлен: 25.06.2023
Просмотров: 45
Скачиваний: 2
«Select
Штраф.Код
,Владелец.ФИО AS [Владелец]
,Автомобиль.Номер+' '+Марка.Название+' '+Модель.Название AS [Автомобиль]
,Полицейский.ФИО AS [Выписал]
,Нарушение.Название AS [Нарушение]
,Штраф.Выписан AS [Дата выписки]
,Штраф.Сумма AS [Сумма]
FROM Штраф
INNER JOIN ПТС ON ПТС.Код=Штраф.ПТС
INNER JOIN Владелец ON Владелец.Код=ПТС.Владелец
INNER JOIN Автомобиль ON Автомобиль.Код=ПТС.Автомобиль
INNER JOIN Марка ON Марка.Код=Автомобиль.Марка
INNER JOIN Модель ON Модель.Код=Автомобиль.Модель
INNER JOIN Полицейский ON Полицейский.Код=Штраф.Полицейский
INNER JOIN Нарушение ON Нарушение.Код=Штраф.Нарушение
WHERE (ISNULL(Штраф.Аннулирован,0)=0) AND (ISNULL(Штраф.Оплачен,0)=0) AND (Автомобиль.Номер LIKE '')».
Для формирования списка всех неоплаченных штрафов разработан следующий запрос:
«Select
Штраф.Код
,Владелец.ФИО AS [Владелец]
,Автомобиль.Номер+' '+Марка.Название+' '+Модель.Название AS [Автомобиль]
,Полицейский.ФИО AS [Выписал]
,Нарушение.Название AS [Нарушение]
,Штраф.Выписан AS [Дата выписки]
,Штраф.Сумма AS [Сумма]
FROM Штраф
INNER JOIN ПТС ON ПТС.Код=Штраф.ПТС
INNER JOIN Владелец ON Владелец.Код=ПТС.Владелец
INNER JOIN Автомобиль ON Автомобиль.Код=ПТС.Автомобиль
INNER JOIN Марка ON Марка.Код=Автомобиль.Марка
INNER JOIN Модель ON Модель.Код=Автомобиль.Модель
INNER JOIN Полицейский ON Полицейский.Код=Штраф.Полицейский
INNER JOIN Нарушение ON Нарушение.Код=Штраф.Нарушение
WHERE (ISNULL(Штраф.Аннулирован,0)=0) AND (ISNULL(Штраф.Оплачен,0)=0)».
Была разработана хранимая процедура для проверки штрафов по следующему принципу: штраф не оплачен более 2 месяцев, владелец транспортного средства попадает в чёрный список; штрафу более 3 лет, он аннулируется. Код процедуры представлен ниже:
«CREATE PROCEDURE [dbo].[PR_CHECK_PAY]
AS
BEGIN
DECLARE @dt datetime
SET @dt = GETDATE()
UPDATE Штраф
SET Аннулирован = 1
WHERE DateDiff(YY,Выписан,@dt)>=3 AND (ISNULL(Оплачен,0)=0)
UPDATE Владелец
SET Владелец.ЧС = (CASE WHEN (isNULL(Штраф.Оплачен,0)=0) AND (isNULL(Штраф.Аннулирован,0)=0) AND (DateDiff(MM,Выписан,@dt)>=2) THEN 1 ELSE 0 END)
FROM Владелец
INNER JOIN ПТС ON ПТС.Владелец = Владелец.Код
INNER JOIN Штраф ON Штраф.ПТС = ПТС.Код
END».
Рассмотрим структуру ИС учёта штрафов ГИБДД. На рисунке 3.3 представлена схема взаимодействия программных модулей системы.
Рис. 3.3. Структура программных модулей
Система состоит из 10 программных модулей, описание которых представлено в таблице 3.1.
Таблица 3.1
Описание программных модулей
Модуль |
Описание |
uLogin |
Авторизация в системе |
uMain |
Главный модуль, для ведения списков штрафов, пример кода приведён в приложении |
uOwner |
Модуль обработки карт владельцев |
uPTS |
Модуль обработки ПТС |
uAuto |
Модуль обработки карт автотранспорта |
uPoliceman |
Модуль обработки карт полицейских |
uMarkModel |
Модуль обработки справочника марок и списка моделей |
uModel |
Модуль обработки справочника моделей |
uFine |
Модуль обработки штрафа |
uLibrary |
Модуль ведения справочной информации |
uDM |
Модуль доступа к данным |
Разработанная система позволяет работать в многопользовательском режиме с разными профилями пользователей.
Рассмотрим работу инспектора в ИС. Работа в ИС учёта штрафов ГИБДД начинается с главного окна, пример которого представлен на рисунке 3.4. При выборе типа поиска данных появляются поля для ввода данных поиска: ФИО владельца или номер автотранспорта (рис. 3.5).
Рис. 3.4. Главное окно
Рис. 3.5. Смена типа поиска
Для редактирования карт автотранспорта требуется в главном меню выбрать пункт «Основное» - «Автотранспорт». Откроется окно, изображённое на рисунке 3.6.
Рис. 3.6. Окно «Автотранспорт»
Для редактирования карт владельцев требуется в главном меню выбрать пункт «Основное» - «Владелец». Откроется окно, изображённое на рисунке 3.7.
Рис. 3.7. Окно «Владельцы»
Для редактирования ПТС нужно вызвать контекстное меню таблицы ПТС и выбрать соответствующий пункт – рисунок 3.8.
Рис. 3.8. Окно «ПТС»
Для редактирования карт полицейских требуется в главном меню выбрать пункт «Основное» - «Полицейские». Откроется окно, изображённое на рисунке 3.9.
Рис. 3.9. Окно «Полицейские»
Для редактирования справочников требуется выбрать пункт меню «Справочники» и выбрать требуемый тип справочника, пример редактирования справочника «Модели и марки» представлен на рисунке 3.10.
Рис. 3.10. Окно справочника «Марки и модели»
Для добавления штрафа требуется в главном окне вызвать контекстное меню таблицы и выбрать пункт «Добавить». Появится окно, представленное на рисунке 3.11.
Рис. 3.11. Окно «Штраф»
Пункт меню «Основное» - «Проверка штрафов» - проверяем штрафы по датам: если штраф не оплачен более 2 месяцев, то владелец попадает в чёрный список. Если штрафу уже 3 года, то он аннулируется.
Заключение
Цель работы изучить и применить на практике технологию клиент-сервер. В первой главе был проведён анализ теории клиент-серверной технологии.
Во второй главе была произведена постановка задачи, описаны функции системы учёта штрафов ГИБДД: