- находится средняя сумма дохода, приходящаяся на один человеко-день как общая сумма дохода деленная на общее количество человеко-дней
- средняя сумма дохода за один день умножается на количество дней по каждому договору
Если после окончания распределения, возникает неделимый остаток, он распределяется по одной копейке по всем счетам, вплоть до полного исчерпания.
2. Разработка структуры и программная реализация
2.1 Объектно-ориентированный подход
При проектировании системы был выбран объектно-ориентированный подход, так как он обладает большими преимуществами[1]:
- ускоряет разработку программ за счёт использования системы понятий приближённой к естественному языку;
- основывается на природных способностях человеческого мышления к классификации и абстрагирования;
- повышение качества разработки за счёт более тщательной отработки её компонентов;
- упрощает планирование работ и удешевляет проект;
- даёт возможность системе развиваться постепенно, не приводит к полной переработке при изменении требований;
- уменьшает риск разработки проекта, т.к. процесс интеграции объектов растягивается во времени и возможно постепенное уточнение состояния и поведения компонентов системы.
Фиксация проекта осуществляется для того, чтобы сделать его понятным другим разработчикам, исключить детальное описание, отражая только творческую часть работы, исключить рутинную проверку проекта на корректность.
Описание проекта требует отображения его логической и физической структуры. Для отображения структуры используются следующие диаграммы:
а) логические;
1. диаграмма классов;
2. диаграмма объектов;
б) модульная диаграмма;
в) динамические;
г) диаграмма перехода состояний.
При проектировании программы контроля и учета финансово – хозяйственной деятельности малого предприятия была разработана диаграмма классов.
Информация из справочников образует базовые классы. Таким образом, существуют следующие базовые классы:
Район, город, ЗАГСы, вид операций.
Эти классы используются в дальнейшем:
Клиенты, адрес клиента, данные клиента, бюджетные поступления, операции над бюджетными поступлениями, распределение бюджетных средств по картам.
2.3 Диаграмма переходов состояний
Диаграмма переходов состояний отражает динамическое поведение объектов, показывает состояния объектов, и условия, при которых они переходят из одного состояние в другое.
Начальным состоянием объекта является состояние «Подключение к серверу и идентификация пользователя», в случае ошибки происходит конфигурация сервера или отключение от сервера. Если происходит подтверждение пользователя, то программа переходит в состояние «работа», из этого состояния при наступлении соответствующих событий программа может перейти в состояния: «создание запроса», «отчеты». Из этого состояния программа также может перейти в аналогичные состояния, что и из состояния «работа».
Разработанные диаграммы объектов и диаграммы состояний объектов использованы для разработки модульной диаграммы программы. Модульная диаграмма определяет распределение классов и объектов в модулях, физически реализующих проект. Диаграмма отображает основные функции программы.
Функциональная структура ПО
Рисунок 2.1 - Функциональная структура
Модуль базы данных
База данных системы хранит информацию о заключенных договорах. Сохраняются следующие параметры заказа: номер, дата основания, дата закрытия, основания создания, основания закрытия, приоритет, данные о ребенке, его родителях или опекуне. Необходимо реализовать следующие функции:
регистрация нового клиента в базе;
модификация записи о клиенте;
удаление записи о клиенте из базы (в случае расторжения договора и т. п.)
В следующих версиях программы предполагается хранить в базе данных также информацию о бюджетных поступлениях, а также оперативное распределение денежных средств по картам.
Главный модуль
Главный модуль реализует функции:
обеспечения обмена информацией между модулями;
визуального отображения результатов работы системы.
Модуль учета и ведения счетов по лицевым счетам
Этот модуль реализует следующие функции:
Открытие карт;
Закрытие карт;
Ввод и корректировка информации по лицевым счетам.
Модуль учета поступления денежных средств
Модуль предназначен для учета поступления денежных средств, которые заносятся в фонд программы, а также для ввода фактических финансовых операций, связанных с выделением бюджетных средств и получением дохода.
Модуль распределения средств по счетам
Модуль предназначен для оперативного распределения денежных средств по картам в зависимости от приоритета.
При выделении денежных средств данный факт фиксируется записью в таблице поступления денежных средств с обязательным указанием даты поступления, суммы поступления, накладных расходов. Величина выданных средств и остаток к распределению фиксируется автоматически. В интерфейсах ввода предусмотрена возможность установки фильтра для просмотра по срокам поступления или расходования средств, и видам поступлений.
Модуль формирования отчетов
Модуль отчетов тесно связан физически и логически с модулем БД. Этот модуль реализует функцию наглядного представления информации, хранимой в базе заказов.
Модуль формирует отчеты по лицевым счетам, бюджетным поступлениям, распределением бюджетных средств по картам, а также и по словарным понятиям.
Модуль ведения нормативно-справочной информации
В данном модуле хранятся словари: Словарь операций, Словарь районов, Словарь ЗАГСов, Словарь городов. Данные словари оперативно пополняются в процессе заполнения карточек, операций над бюджетными средствами.
2.5 Логическая и физическая структуры базы данных
2.5.1 Логическая схема базы данных
Логическая схема Базы Данных построена на основе рассмотренных выше диаграмм.
Логическая схема Базы Данных включает в себя сущности, физическая интерпретация которых составляет структуру взаимосвязанных таблиц Базы Данных. Основными таблицами являются «лицевые счета», «движение средств по доходным операциям», «поступление бюджетных средств».
Добавлены так же таблицы: «тип операции», для разбиения операций с денежными средствами на виды; а также словари: «словарь операций», «словарь ЗАГСов», «словарь городов», «словарь районов» для разбиения данных на виды, предназначены для ускорения процесса заполнения карточек лицевых счетов.
Логическая схема БД включает в себя сущности, физическая интерпретация которых составляет структуру взаимосвязанных таблиц БД.
Рисунок 2.2 - Структура базы данных
2.5.2 Физическая схема базы данных
На основе логической схемы БД строится физическая схема БД следующим образом: сущности преобразуются в таблицы БД, атрибуты сущностей - в поля таблиц, в таблицы так же добавляются ключевые поля, по которым осуществляется установление связи между таблицами. На связях указываются ключевые поля одной и другой таблицы. Так же указываются типы полей в таблицах.
Информация о реквизитах лицевого счета в таблице CARD, имеющую следующую структуру:
Таблица 2.1 – Лицевые счета
Идентификатор | тип поля | значение |
CODE | INTEGER | Код лицевого счета |
ZAGS | INTEGER | Загс регистрации |
DATEZAGS | DATE | Дата регистрации |
POL | CHAR(1) | Пол |
SURNAME | CHAR(20) | Фамилия |
NAME | INTEGER | Имя |
OTCH | INTEGER | Отчество |
DATEBORN | DATE | Дата рождения |
SVBORNSER | CHAR(6) | Серия свидетельства о рождении |
SVBORNNUM | CHAR(20) | Номер свидетельства о рождении |
BORNRAY | INTEGER | Район рождения |
BORNTOWN | INTEGER | Место рождения |
FSURNAME | CHAR(30) | Фамилия отца |
FNAME | INTEGER | Имя отца |
FOTCH | INTEGER | Отчество отца |
FPASPSER | CHAR(6) | Серия паспорта отца |
FPASPNUM | CHAR(20) | Номер паспорта отца |
FRAY | INTEGER | Район проживания отца |
FTOWN | INTEGER | Место проживания отца |
FSTREET | CHAR(50) | Улица проживания отца |
MSURNAME | CHAR(30) | Фамилия матери |
MNAME | INTEGER | Имя матери |
MOTCH | INTEGER | Отчество матери |
MPASPSER | CHAR(6) | Серия паспорта матери |
MPASPNUM | CHAR(20) | Номер паспорта матери |
MRAY | INTEGER | Район проживания матери |
MTOWN | INTEGER | Место проживания матери |
MSTREET | CHAR(50) | Улица проживания матери |
OPOL | CHAR(1) | Пол опекуна |
OSURNAME | CHAR(30) | Фамилия опекуна |
ONAME | INTEGER | Имя опекуна |
OOTCH | INTEGER | Отчество опекуна |
OPASPSER | CHAR(6) | Серия паспорта опекуна |
OPASPNUM | CHAR(20) | Номер паспорта опекуна |
ORAY | INTEGER | Район проживания опекуна |
OTOWN | INTEGER | Место проживания опекуна |
OSTREET | CHAR(50) | Улица проживания опекуна |
PRIOR | INTEGER | Приоритет выплаты |
CATEGORY | INTEGER | Категория лиевого счета |
DATE_OPEN | DATE | Дата создания |
DATE_CLOSE | DATE | Дата закрытия |
OSN_OPEN | CHAR(255) | Основание создания |
OSN_CLOSE | CHAR(255) | Основание закрытия |
PLASEBORN | CHAR(200) | Модификация |
Таблица поступления бюждетных средств BUDGET