Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лаб_1_Б Головков И.Е. 12002108

.docx
Скачиваний:
2
Добавлен:
26.06.2024
Размер:
80.29 Кб
Скачать

БЕЛГОРОДСКИЙ ГОСУДАРСТВЕННЫЙ НАЦИОНАЛЬНЫЙ

ИССЛЕДОВАТЕЛЬСКИЙ УНИВЕРСИТЕТ»

(НИУ «БелГУ»)

ИНСТИТУТ ИНЖЕНЕРНЫХ И ЦИФРОВЫХ ТЕХНОЛОГИЙ

Кафедра информационных и робототехнических систем

Отчет по лабораторной работе № 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