Разработка программного средства автоматизации процесса «Поселение в общежитие» - Студенческий научный форум

XI Международная студенческая научная конференция Студенческий научный форум - 2019

Разработка программного средства автоматизации процесса «Поселение в общежитие»

Халилов Ш.А. 1, Путивцева Н.П. 1, Зайцева Т.В. 1
1НИУ БелГУ
 Комментарии
Текст работы размещён без изображений и формул.
Полная версия работы доступна во вкладке "Файлы работы" в формате PDF

Данное программное средство было разработано для того, чтобы автоматизировать процесс поселения студентов в общежитие и дать возможность быстрого получения нужной информации по запросу.

Программное средство «Поселение в общежитие» будет отражать данные о поселенных студентах, дате заключения договоров, о самом общежитии, о комнате и об основании на поселение (социальные льготы, хорошая учеба и т.д.). Система будет работать с информацией из базы данных, предполагается наличие нескольких пользователей.

Исходя из примерного перечня информации, с которой будет работать программное средство, можно указать следующий список функций:

- Идентификация пользователей (полные права и ограниченные).

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

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

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

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

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

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

- Формирование необходимых пользователю отчетов.

- Наличие справки.

Использовать программное средство «Поселение в общежитие» будут:

- работники общежития при поселении студентов (имеют полные права);

- работники паспортного стола при выдаче временной регистрации (имеют право на просмотр, сортировку и поиск информации);

- кураторы групп тех студентов, которые поселены в общежитие (имеют право на просмотр, сортировку и поиск информации);

- сами студенты (имеют право на просмотр, сортировку и поиск информации).

Для разработки программного средства используются СУБД Firebird 1.5 и утилита IBExpert. Для России и стран СНГ данная СУБД бесплатна. Для создания клиентского приложения будет использован Borland C++Builder 6.0.

Исходя из функций программного средства «Поселение в общежитие», данных, которые в ней хранятся, и пользователей, которые будут ее использовать, можно построить функциональную структуру системы (рисунок 1).

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

Рисунок 1 - Функциональная структура программного средства «Поселение в общежитие»

Рассмотрим схему работы программного средства «Поселение в общежитие» подробнее (рисунок 2).

Рисунок 2 - Подробная схема функциональной структуры программного средства «Поселение в общежитие»

Данная схема отражает все функции системы, которые взаимосвязаны друг с другом.

Предполагается, что программное средство «Поселение в общежитие» будет работать с базой данных. Следовательно, необходимо создание инфологической модели данной базы. Для этого в базе данных «Поселение в общежитие» было выбрано 5 сущностей:

- «Основание на поселение»;

- «Договор»;

- «Комната»;

- «Общежитие»;

- «Студент».

На рисунке 3 показана инфологическая модель базы данных.

Рисунок 3 - Инфологическая модель базы данных «Поселение в общежитие»

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

Для полей таблиц нужны различные типы данных. Задаем их согласно предполагаемым записям (таблица 1).

Согласно полученным данным создаем домены (таблица 2).

Домены можно создавать, используя утилиту IBExpert.

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

Таблица 1 - Типы данных

Имя таблицы

Имя поля

Тип

Длина

Имя домена

DOGOVOR

ID_DOG

SMALLINT

 

D_INDEX

DATA_ZAKL

DATE

 

D_DATE

ID_OBC

SMALLINT

 

D_INDEX

ID_KOMN

SMALLINT

 

D_INDEX

ID_STUDENTS

SMALLINT

 

D_INDEX

DEYATELNOST_STUDENTOV

ID_DEYAT

SMALLINT

 

D_INDEX

NAZVANIE

VARCHAR

50

D_NAME

KOMNATA

ID_KOMN

SMALLINT

 

D_INDEX

KOLICH_MEST

SMALLINT

 

D_INDEX

ITAG

SMALLINT

 

D_INDEX

ID_OBC

SMALLINT

 

D_INDEX

NOMER

SMALLINT

 

D_INDEX

OBCHEGITIE

ID_OBC

SMALLINT

 

D_INDEX

ADRES

VARCHAR

60

D_ADRES

KOLICH_MEST

INTEGER

 

D_KOLICH

STUDENT

ID_STUDENTS

SMALLINT

 

D_INDEX

FIO

VARCHAR

50

D_NAME

FACULTY

VARCHAR

50

D_NAME

ID_DOG

SMALLINT

 

D_INDEX

ID_DEYAT

SMALLINT

 

D_INDEX

Таблица 2 - Типы создаваемых доменов

Имя домена

Тип

Длинна

Ограничения

D_INDEX

SMALLINT

 

VALUE>0

D_KOLICHESTVO

INTEGER

 

VALUE>0

D_NAME

VARCHAR

50

 

D_ADRES

VARCHAR

60

 

D_TELEPHONE

VARCHAR

20

 

D_DATE

DATE

 

VALUE<='TODAY'

Домены можно создавать, используя утилиту IBExpert.

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

Создаем таблицу «Студент». SQL-скрипт на создание таблицы имеет вид:

CREATE TABLE STUDENT (

ID_ST D_INDEX NOT NULL /* D_INDEX = SMALLINT NOT NULL CHECK (value>0) */,

FAMILY D_NAME /* D_NAME = VARCHAR(50) NOT NULL */,

NAME D_NAME /* D_NAME = VARCHAR(50) NOT NULL */,

OCHESTVO D_NAME /* D_NAME = VARCHAR(50) NOT NULL */,

FACULTY D_NAME /* D_NAME = VARCHAR(50) NOT NULL */,

ID_DEYAT D_INDEX /* D_INDEX = SMALLINT NOT NULL CHECK (value>0) */);

Аналогично создаются остальные таблицы базы данных.

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

Сервер Firebird автоматически создает уникальный индекс при создании ограничений PRIMARY KEY и UNIQUE для столбца или группы столбцов.[1]

После того как созданы, домены, таблицы, индексы, можно приступить к созданию генераторов. Генератор - это специальный объект базы данных, который генерирует уникальные последовательные числа.

Генераторы созданы для автоматического заполнения полей, входящих в первичный ключ. Стандартный код ля создания генератора выглядит следующим образом: CREATE GENERATOR GEN_STUDENT_ID.

Триггеры, созданные в таблицах, предназначены для реализации автоинкрементных первичных ключей. Создаем триггер, который ограничивает ввод дранных о студенте (№ студента) в таблицу «Договор». Сначала проверяется условие, чтобы с этим студентом не было ранее заключенного договора, а затем – условие, чтобы в комнате еще были свободные места:

CREATE OR ALTER trigger dogovor_unik for dogovor

active before insert position 1

as

declare variable t_success smallint;

declare variable t_kol_mest smallint;

declare variable t_kol_zan_mest smallint;

begin

select id_dog from dogovor where id_st=NEW.id_st into :t_success;

if (:t_success is not NULL) then exception exp_st_exist;

select KOLICHESTVO_MEST from komnata where id_komn=NEW.id_komn into :t_kol_mest;

select count(*) from dogovor where id_komn=NEW.id_komn into :t_kol_zan_mest;

if (:t_kol_zan_mest>=:t_kol_mest) then exception exp_st_komn;

end

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

Создан просмотр, который позволяет просмотреть данные таблицы STUDENT (Студенты) базы данных. Ниже, приведен SQL-скрипт просмотра.

CREATEVIEWSTUDENT_INFO(

ID_ST,

FIO,

FACULTY,

ID_DOG,

ID_DEYAT)

AS

Select student.id_st,student.fio,student.faculty,dogovor.id_dog,deyatelnost_studentov.id_deat

From student,dogovor,deyatelnost_studentov

where dogovor.id_dog=student.id_dog and deyatelnost_studentov.id_deyat=student.id_deyat;

Аналогичные просмотры созданы и для других таблиц базы данных. Создана хранимая процедура, которая добавляет поля в таблицу «Студенты».

CREATE OR ALTER PROCEDURE ADD_STUDENT (

family d_name,

name d_name,

ochestvo d_name,

faculty d_name,

id_deyat d_index)

as begin insert into student (family, name, ochestvo, faculty, id_deyat)

values(:family,:name,:ochestvo,:faculty,:id_deyat);

suspend;

end

Аналогично разрабатываются хранимые процедуры на добавление для всех оставшихся таблиц. Разработана хранимая процедура, которая удаляет записи из таблицы «Студенты».

CREATE OR ALTER PROCEDURE DEL_STUD (

id_st d_index)

as

begin

DELETE FROM student

WHERE (id_st=:id_st);

suspend;

end

Аналогично разрабатываются хранимые процедуры на удаление для всех оставшихся таблиц.

Разработана хранимая процедура, которая позволяет изменять записи в таблице «Студенты».

CREATE OR ALTER PROCEDURE UPD_STUDENT (

id_st d_index,

family d_name,

name d_name,

as

begin

UPDATE student

SET id_st=:id_st,

family=:family,

name=:name,

WHERE(id_st=:id_st);

when sqlcode -530 do

exception key_ex;

end

Аналогично разрабатываются хранимые процедуры на изменение для всех оставшихся таблиц. Исключения представляют собой именованное сообщение об ошибке. SQL-скрипт на создание исключений: CREATE EXCEPTION DATA_EX '"Дата должна быть >="сегодня""'.

Рассмотрим процесс создания приложения в среде Borland C++ Builder. Для решения поставленной задачи необходимо выполнить ряд стандартных операций.[2]

Начатьновый Builder-проект. File/New/Application, поместитьнаформу Form1 компонент DBGrid иззакладки Data Control, создатьконтейнер DataModule2 дляразмещенияневизуальныхкомпонентов. File/New/Data Module, поместитьна DataModule2 компонент IBDatabase (закладка InterBase). Выполнить настройку компонента IBDatabase1, а также компонент IBTransaction (закладка InterBase).

Для создания отчета, например, о студентах, переносится компонент QuickRep на форму. Свойство DataSet связывает отчет с набором данных Table. В свойстве компонента QuickReport Bands устанавливается HasTitle=true(отображать область заголовка отчета), HasColumnHeader=true(отображать область заголовка столбцов). Вставляются в полосы заголовков компоненты QRLabel с названиями отчета. Включается в лист отчета компонент полосы QRBand. Свойство BandsType определяет роль rbDetail данной полосы - отображать запись таблицы. Помещается компонент QRDBText на полосу Detail. Свойство DataField специфицирует поле записи.

Далее рассмотрим процесс добавления данных в таблицы. Для этого пользователь вводит новые данные в поля ввода (компонент Edit), затем нажимает на кнопку «Добавить» (компонент Button). Обработка процедуры добавления данных в таблицы представлена в приложении.

При изменении данных пользователь выбирает нужное ему поле при помощи компонента DBNavigator, а затем в поля ввода пишет данные для изменения, нажимает на кнопку «Изменить». Обработка процедур изменения показана в приложении. При удалении данных пользователю достаточно указать номер удаляемой записи. Обработка процедуры удаления также показана в приложении. Поиск данных производится по определенным параметрам, например, для таблицы студенты – это фамилия, имя, отчество и факультет (используем компоненты RadioButton).

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

На рисунке 4 показана общая форма программного средства «Поселение в общежитие». На ней отображены все функции системы. На рисунке 5 показана итоговая отчетность.

Рисунок 4 - Общая форма программного средства «Поселение в общежитие»

Рисунок 5 – Форма отчета программного средства «Поселение в общежитие»

Было разработано программное средство «Регистрация в общежитии». Данная информационная система содержит сведения об общежитиях, студентах, договорах на поселение, комнатах в общежитиях и деятельности студентов.

Для разработки системы были использованы СУБД Firebird и утилита IBExpert, а также среда Borland C++ Builder.

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

- объектами авторского права;

- программным продуктом или информационной базой данных, с регистрацией их в Роспатенте;

- с помощью средств индивидуализации, также с регистрацией в Роспатенте.

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

Борри Х. "Firebird: руководство разработчика баз данных" Пер. с анrл. СПб.: БХВ Петербург, 2016.

Хомоненко А. Д., Ададуров С. Е. Работа с базами данных в C++ Builder. – СПб.: БХВ-Петербург 2016

Программирование в C++ Builder — А. Я. Архангельский Бином-Пресс2010

Просмотров работы: 47