Автоматизация системы снятия показаний счетчиков энергии. Разработка базы данных и клиентского приложения для структур жилищно-коммунального хозяйства, занимающихся составлением квитанций. Описание предметной области. Тестирование клиентского приложения.
Цель данной курсовой работы - автоматизация доступа данных показаний счетчиков энергии и доступа к информации о них.
Задачами курсовой работы являются разработка базы данных и клиентского приложения для структур ЖКХ, занимающихся составлением квитанций. Разработанная база данных должна соответствовать требованиям предметной области, а клиентское приложение должно корректно работать с базой данных и должно быть достаточно простым и удобным для пользователя.
Целью данной работы является автоматизация работы системы снятия показаний. Разработанная программа позволит существенно сократить время "бумажного учета", обеспечит легкость, эффективность и быстроту работы в вычислении квитанций, в выведении необходимой информации за счет того, что вся работа будет осуществляться автоматически.
1. Описание предметной области
В базе данных "ЖКХ" представлена информация о клиентах и их потреблении.
База данных должна обеспечивать хранение показаний в течении некоторой глубины времени. Показания конечного пользователя привязаны к личному счету клиента. О каждом проживающем должна храниться следующая информация: фамилия, имя, отчество.
Клиенту могут потребоваться следующие сведения о текущем состоянии объектов: Текущие показания клиента. квитанцию об оплате определенного клиента, показания всего дома, Администратор должен иметь возможность выполнить следующие операции: добавлять квартиры, дома, счетчики. изменить тарифы оплаты. поселить или выселить клиента.
Необходимо предусмотреть также возможность автоматической выдачи клиенту счета за услуги за последний квартал текущего года. Такой отчет должен содержать следующие сведения: ФИО клиента, расход клиента, сумма к оплате.
Доступ к данным будет производиться с помощью клиентского приложения, в котором должна быть предусмотрена возможность не только получать необходимые сведения, но и добавлять и редактировать их.
Также следует обеспечить доступ к базе данных нескольких пользователей, имеющих разные права по работе с данными. Один из пользователей - администратор, который будет иметь полные и неограниченные права для работы с базой данных. Второй - контролер, который может только просматривать информацию о домах.
2. Разработка и создание базы данных
Разработка базы данных производилась в бесплатной программе Toad Data Modeler 5.2 Физическая модель для бесплатной СУБД MYSQL 5.5 была построена на основе логической.
Логическая модель изображена на рисунке 1. Физическая модель изображена на рисунке 2.
Рисунок 1 - Логическая модель базы данных.
Рисунок 2 - Физическая модель базы данных.
Для создания логической модели были выделены 9 сущности: 1. Счетчик. Содержит атрибуты: Ид_счетчика (PK), тип, сериальный номер, ип_адрес, текущие показания
2. Показания. Содержит атрибуты: Дата (РК), показания
3. Квартира. ИД_Квартиры (PK), ФИО, Номер_квартиры, Улица
4. Управляющая компания. ИД_Компании (PK), Имя управляющей компании
5. Квитанция. Содержит атрибуты: ИД_Квитанция (PK), Дата
6. Тариф квитанции. Содержит атрибуты: Тип оплаты (PK), Итого к оплате (FK)
7. Тариф УК. Содержит атрибуты: Ид тарифа (PK), Множитель (FK)
10. Показания общедомовые. Содержит атрибуты: Дата (РК), показания
Описание связей: 1. Показания счетчика. Счетчик - Показания, 1: N. Один счетчик имеет много показаний за разное время. Показание может быть у одного счетчика.
2. Счетчик в какой квартире. Счетчик - Квартира, N: 3. В одной квартире несколько счетчиков. Один счетчик может быть только в одной квартире.
4. Квитанция на квартиру. Квитанция-Квартира, N: 5. Каждый месяц квитанции приходят в одну квартиру. В одной квартире много квитанций.
6. Квитанция на дом. Квитанция-Дом, N: 7. Каждый месяц квитанции приходят в дом. В одном доме множество квитанций. база клиентское приложение тестирование
8. Имя управляющей компании. Квитанция-Управляющая компания, N: 9. Имя управляющей компании важно в квитанции. Во множестве квитанций одна управляющая компания.
10. Тариф в квитанции. Тариф квитанции - Квитанция, N: 11. Несколько пунктов оплаты в квитанции. В одной квитанции несколько тарифов.
12. Рекомендованный тариф. Тариф квитанции - Тариф, 1: 13. Для оплаты каждого потребителя энергии используется тариф выданный УК. Один тариф для многих потребителей.
14. Счетчик на дом. Счетчик общедомовой - Дом, N: 15. В доме несколько счетчиков. Счетчик в одном доме.
16. Квитанция на дом. Квитанция - Дом, N: 17. Каждый месяц квитанции приходят в дом. В одном доме много квитанции.
18. Показания общедомового счетчика. Счетчик общедомовой - Показания общедомовые, 1: N. Один счетчик имеет много показаний за разное время. может быть у одного счетчика.
На основе физической модели был сгенерирован SQL-скрипт для создания базу данных в СУБД MYSQL 5.5 Текст SQL-скрипта приведен в приложении А. Далее с помощью бесплатной версии программы SQL Manager Lite for MYSQL 5.4.3 из скрипта была создана база данных и разработано несколько процедур и триггеров для облегчения дальнейшей работы с базой данных.
Триггер, запрещающий вносить отрицательные показания счетчика. Код триггера: CREATE DEFINER = "root"@"localhost" TRIGGER `_before_ins_tr1` BEFORE INSERT ON `saw`
FOR EACH ROW
BEGIN
DECLARE ERROR CONDITION FOR SQLSTATE "45000";
IF (NEW. saw<=0) then signal ERROR set message_text ="Saw is wrong! ";
Запрос поиска показаний по фамилии человека. Код запроса: SELECT saw,date
FROM saw
WHERE id_kvart = (SELECT id_kvart FROM kvart WHERE FIO = \"" name "\")"
Запрос поиска счетчиков квартир по фамилии. Код запроса: SELECT type,serial, id_schet
FROM schet
WHERE id_kvart = (SELECT id_kvart FROM kvart WHERE FIO = \"" name "\")"
Показать ид человека по ФИО. Код запроса: SELECT id_kvart FROM kvart WHERE FIO = \"" name "\"
3. Создание клиентского приложения
Написание клиентского приложения производилось в программе QTCREATOR 3.0 с использованием библиотек Qt 5.2 Соединение с базой данных производилось через MYSQL ODBC драйвер версии 5.3 Структура исходных файлов проекта представлена на рисунке 3. Исходный код приложения приведен в приложении Б.
Рисунок 3 - структура исходных файлов проекта.
Класс MAINWINDOW описывает главное окно приложения, в котором производится отображение и основные манипуляции с данными базы данных для работы директора мебельного производства. В этом классе описаны диалоговые окна для работы с данными (добавление, редактирование и удаление), которые невозможно было реализовать встроенными возможностями таблиц.
Также в нем происходит соединение с базой данных и реализуются необходимые запросы к базе данных и отображаются результаты в виде таблицы.
Класс main описывает диалоговое окно, запрашивающее информацию для соединения с базой данных.
4. Тестирование клиентского приложения
Описание тестируемой программы
Для модульного тестирования основных методов разработанной системы классов использовалась Qt Creator 3.2.0 - свободная интегрированная среда разработки приложений на языках программирования C, C и ряда других.
Тестирование клиентского приложения включает: Тест №1. Тестирование и отладка работы клиентского приложения.
Рисунок 4 - Главное окно программы
Необходимо четкое разграничение прав пользователей приложения: Директор мебельной фабрики и менеджер по продажам. Посторонние лица не должны иметь открытого доступа к исходной БД. Исходя из этого, введен парольный вход в приложение.
Права Менеджера: просмотр таблиц.
Права Директора мебельной фабрики: Полный набор прав.
Рисунок 5 - Вход в БД с ограниченными правами.
Рисунок 6 - Таблицы доступные для Менеджера.
Рисунок 7 - Увеличенные привелегии.
Пароль для администратора "root1234”.
Рисунок 8 - Администратор обладает полным набором прав.
Итог, конлтролеру доступен просмотр таблиц. Другие данные ему не доступны.
Под учетной записью администратора проведем тестирование методов поиска и выборки.
Тест №2.
Тестирование работы запросов к базе данных. Результаты выполнения запросов представлены на рисунках 9-25.
Рисунок 9 - Представление "Установленные счетчики пользователей"
Рисунок 10 - Таблица "Квартиры"
Рисунок 11 - Таблица "Счетчики"
Рисунок 12 - Таблица "Показания счетчиков"
Рисунок 13 - Таблица "Квитанции"
Рисунок 14 - Таблица "Дома"
Рисунок 15 - Таблица "Управляющие компании"
Демонстрация работы пунктов меню "Правка":
Рисунок 1.10 - Уведомление
Рисунок 16 - Добавление нового поля и сохранение изменений
Рисунок 17 - Выполнение запроса, который ищет все показания счетчика холодной воды конкретного человека
Рисунок 18 - Выполнение запроса, который ищет все счетчики конкретного человека
Рисунок 19 - Выполнение запроса, который ищет все показания общедомовых счетчиков.
Рисунок 20 - Выполнение запроса, который показывает ИД человека по ФИО
Рисунок 21 - Выполнение запроса, который ищет все счетчики конкретного человека
Рисунок 22 - До выполнения процедуры, которая обновляет показания
Рисунок 23 - Выполнение процедуры, которая обновляет показания
Рисунок 24 - После выполнения процедуры, который перераспределяет деньги предприятия
Рисунок 25 - При попытке добавления отрицательной зарплаты
Необходимые запросы к базе данных работают корректно.
Тестирование функций программы прошло успешно. Ошибок в работе программы не выявлено.
Заключение
Разработана база данных решающая задачи предметной области: - Хранение и использование данных о счетчиках.
- Хранение и использование показаний счетчиков.
Создано клиентское приложение с графическим для удобной работы с созданной базой данных. Достоинства клиентского приложения: - Поддержка символов русского алфавита при работе с данными.
- Наличие графического интерфейса.
- Многопользовательский доступ с ограничениями прав доступа для различных пользователей.
Недостатки клиентского приложения: - Может корректно работать только на операционных системах семейства Microsoft Windows версии 7 или более поздней.
Цель курсовой работы достигнута. Дальнейшее совершенствование базы данных и клиентского приложения может быть направлено в сторону расширения функционала и обеспечения кроссплатформенности клиентского приложения.
Список использованных источников
1. MYSQL 5.0. Библиотека программиста: Питер - СПБ.: Питер, 2010. - 253с.
2. MYSQL. Справочник по языку.: Пер. с англ. - М.: Издательский дом "Вильяме", 2005. - 432 с. - Парал. тит. англ.
3. Шлее М.; Qt 4.8 Профессиональное программирование на C . - СПБ.: БХВ-Петербург, 2012. - 912 с.
4. Электронный портал сообщества разработчиков PHPCLUB.ru [Электронный ресурс]. - Режим доступа: , свободный.
5. Официальный сайт проекта Qt [Электронный ресурс]. - Режим доступа: , свободный.