
Лаб_1_Б Головков И.Е. 12002108
.docxБЕЛГОРОДСКИЙ ГОСУДАРСТВЕННЫЙ НАЦИОНАЛЬНЫЙ
ИССЛЕДОВАТЕЛЬСКИЙ УНИВЕРСИТЕТ»
(НИУ «БелГУ»)
ИНСТИТУТ ИНЖЕНЕРНЫХ И ЦИФРОВЫХ ТЕХНОЛОГИЙ
Кафедра информационных и робототехнических систем
Отчет по лабораторной работе № 1
по дисциплине «Моделирование технических систем»
студента очного отделения
3 курса 12002108 группы
Головкова Игоря Евгеньевича
Проверила:
ст. пр. Скрипина Ирина Ивановна
БЕЛГОРОД, 2024
Лабораторная работа №1 (Backend)
Организовать структуру проекта как показано на рисунке 1
Рисунок 1. Структура проекта.
1. В package entity описываем сущности, с которыми будем работать, бизнес-
логики там быть не должно, всю бизнес логику выносим в package service,
создаем соответствующие интерфейсы и их имплементацию.
2. Описание сущностей банка (7 штук):
Bank – объект банк, содержит поля:
• Id банка
• Имя банка
• Кол-во офисов (заполняется и считается автоматически при добавлении
нового офиса), по умолчанию 0
• Кол-во банкоматов (заполняется и считается автоматически при
добавлении нового банкомата), по умолчанию 0
• Кол-во сотрудников (заполняется и считается автоматически при
добавлении нового сотрудника), по умолчанию 0
• Кол-во клиентов (заполняется и считается автоматически при добавлении
нового клиента в банк), по умолчанию 0
• Рейтинг банка (генерируется рандомно, от 0 до 100, где 100 наивысший
балл, чем выше рейтинг банка, тем меньше должна быть процентная ставка)
• Всего денег в банке (генерируется рандомно, но не более 1 000 000)
• Процентная ставка (генерируется рандомно, но не более 20%, однако
нужно учитывать рейтинг банка, чем он выше, тем ставка должна
сгенерироваться меньше)
BankAtm – объект банкомат, содержит поля:
• Id банкомата
• Имя банкомата
• Адрес (сопадает с адресом банковского офиса)
• Статус (работает/не работает/нет денег)
• Банк, которому принадлежит банкомат
• Расположение банкомата (банкомат может быть расположен только в
банковском офисе)
• Обслуживающий сотрудник
• Работает ли на выдачу денег? (да/нет)
• Можно ли внести деньги? (да/нет)
• Кол-во денег в банкомате (напрямую зависит от поля «Всего денег в банке)
• Стоимость обслуживания банкомата
BankOffice – объект офис банка, содержит поля:
• Id банковского офиса
• Название офиса
• Адрес банковского офиса
• Статус (работает/не работает)
• Можно ли разместить банкомат? (да/нет)
• Кол-во банкоматов в данном офисе (напрямую зависит от общего числа банкоматов у банка)
• Можно ли оформить кредит в данном офисе? (да/нет)
• Работает ли на выдачу денег? (да/нет)
• Можно ли внести деньги? (да/нет)
• Кол-во денег в банковском офисе (напрямую зависит от поля «Всего денег
в банке)
• Стоимость аренды банковского офиса
CreditAccount – объект кредитный счет, содержит поля:
• Id кредитного счета
• Пользователь, за которым закреплен этот кредитный счет
• Название банка, где взят кредит
• Дата начала кредита
• Дата окончания кредита
• Кол-во месяцев, на которые взят кредит
• Сумма кредита
• Ежемесячный платеж
• Процентная ставка (должна быть равной процентной ставке банка, в
котором взят кредит или ниже)
• Сотрудник, который выдал кредит
• Платежный счет в банке с которого будет осуществляться погашение
данного кредита
Employee – объект сотрудник, содержит поля:
• Id сотрудника
• ФИО
• Дата рождения
• Должность
• В каком банке работает
• Работает ли в банковском офисе или удаленно? (да/нет)
• Банковский офис, в котором работает
• Может ли выдавать кредиты? (да/нет)
• Размер зарплаты
PaymentAccount – объект платежный счет, содержит поля:
• Id платёжного счета
• Пользователь, за которым закреплен этот платежный счет
• Название банка, в котором открыт этот счет
• Сумма, которая лежит в данный момент на счету (по умолчанию 0)
User – объект клиенты банка, содержит поля:
• Id клиента
• ФИО
• Дата рождения
• Место работы
• Ежемесячный доход (генерируется рандомно, но не более 10 000)
• Банки, которыми он пользуется
• Кредитные счета (по умолчанию пусто)
• Платежные счета (по умолчанию пусто)
• Кредитный рейтинг для банка (генерируется рандомно исходя из
ежемесячного дохода, от меньше 1 000 – 100, от 1 000 до 2 000 – 200 и т.д.
вплоть до 10 000)
3. Закодировать каждую сущность
4. Для каждой сущности должны быть организованы CRUD операции
5. В коде автоматически инициализировать 1 банк, 1 банкомат, 1 банковский
офис, 1 сотрудника, 1 клиента, 1 платежный счет, 1 кредитный счет.
6. Вывести в консоль заполненные сущности.
7. Каждый метод должен быть документирован.
8. Лабораторная работа делается без использования массивов и коллекций.
9. Необходимо соблюдать принципы ООП
10. Необходимо соблюдать java naming conventions
Ссылка на репозиторий с выполненным заданием:
https://github.com/iggosha/GolovkovIE24ISIT2108Lab/tree/lab1