[Ulearn] Практика. Runnable + Практика. Многопоточность

Раздел
Программирование
Просмотров
225
Покупок
3
Антиплагиат
Не указан
Размещена
8 Июл 2023 в 21:46
ВУЗ
УрФУ
Курс
2 курс
Стоимость
700 ₽
Демо-файлы   
1
zip
результаты результаты
98.2 Кбайт 98.2 Кбайт
Файлы работы   
1
Каждая работа проверяется на плагиат, на момент публикации уникальность составляет не менее 40% по системе проверки eTXT.
zip
решения
2.2 Кбайт 700 ₽
Описание

Дата решения: 08.07.23.

Данных о проверке на антиплагиат: нет.

---

В банке (класс Bank) есть счета (класс Account) с двумя полями — money и accNumber.

Все счета хранятся внутри банка. Множество клиентов банка могут одновременно переводить деньги между счетами и запрашивать баланс по своему счёту. Всё происходит в многопоточной среде.

При этом транзакции на суммы > 50000 отправляются на проверку в службу безопасности. Можно считать, что таких транзакций не более 5% от всех. За проверку отвечает отдельный и уже реализованный метод Bank.isFraud().

Служба безопасности не может обрабатывать более одной транзакции одновременно. Проверка занимает 1000 мс.

Если служба безопасности обнаружила мошенничество, необходимо заблокировать оба счёта, то есть запретить любые изменения остатков в дальнейшем.

Что нужно сделать:

  • Создайте метод transfer() класса Bank, который переводит деньги с одного счёта на другой. Если сумма транзакции > 50000 — транзакция отправляется на проверку службе безопасности: вызывается метод isFraud(). Если возвращается true, то счета блокируются (как – на ваше усмотрение).
  • Создайте метод getBalance() класса Bank, который возвращает остаток на счёте по переданной строке номера аккаунта.
  • Создайте метод getSumAllAccounts() класса Bank, который возращает остаток со всех счетов, которые находятся в банке.
  • Создайте метод setAccounts() класса Bank, который генерирует случайные аккаунты, с accNumber равным его индексу и начальным cash = 200000.
  • Реализуйте интерфейс Runnable в классе TransferRun, который будет брать случайный аккаунт из пула аккаунтов Bank и производить операцию на другой случайный аккаунт.

---

Создайте новый проект и напишите приложение, которое в многопоточном режиме сформирует карту заданного сайта (список ссылок), и запишите её в файл.

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

В файле должны быть ссылки на страницы, размещённые на том же домене (в примере — urfu.ru). В списке не должно быть:

  • ссылок на другие сайты и поддомены,
  • ссылок на внутренние элементы страниц (у таких ссылок есть символ # после адреса страницы).
  • При запросе страниц нужно выдерживать паузы (с помощью метода sleep() у потока), чтобы сайт не заблокировал доступ вашего приложения. Используйте значения от 100 до 150 мс.
  • Для отладки программы выберите сайт с сотнями или тысячами страниц (например, http://www.lenta.ru/), чтобы сервер вас не заблокировал.
  • Учитывайте что сайт имеет структуру графа, то есть страницы могут содержать ссылки на главную, на страницы с которой вы пришли по ссылке. Исключите возможность циклического перебора ссылок.
Вам подходит эта работа?
Похожие работы
Основы программирования
Лабораторная работа Лабораторная
2 Ноя в 14:20
12 +12
0 покупок
Другие работы автора
Основы программирования
Контрольная работа Контрольная
2 Окт в 18:23
27 +2
0 покупок
Основы программирования
Задача Задача
2 Окт в 17:22
38 +2
0 покупок
Java
Задача Задача
2 Окт в 16:04
27 +2
0 покупок
Компьютерная графика
Лабораторная работа Лабораторная
25 Авг в 20:26
61 +2
1 покупка
Компьютерная графика
Лабораторная работа Лабораторная
25 Авг в 19:24
72 +2
1 покупка
Python
Задача Задача
9 Янв в 16:53
231 +1
4 покупки
Python
Задача Задача
4 Янв в 22:28
111 +1
5 покупок
Python
Задача Задача
4 Янв в 20:59
194 +2
4 покупки
Python
Задача Задача
4 Янв в 20:41
172 +1
4 покупки
Основы программирования
Задача Задача
27 Дек 2023 в 14:35
190 +1
1 покупка
Основы программирования
Задача Задача
17 Сен 2023 в 17:43
209 +2
1 покупка
Основы программирования
Задача Задача
12 Июл 2023 в 19:41
200 +2
0 покупок
Основы программирования
Задача Задача
8 Июл 2023 в 21:27
206
3 покупки
Основы программирования
Задача Задача
8 Июл 2023 в 20:59
283 +1
4 покупки
Основы программирования
Задача Задача
8 Июл 2023 в 15:42
114 +1
0 покупок
Основы программирования
Задача Задача
8 Июл 2023 в 14:03
127
0 покупок
Основы программирования
Задача Задача
8 Июл 2023 в 13:20
138 +1
0 покупок
Основы программирования
Задача Задача
8 Июл 2023 в 03:13
108 +1
0 покупок
Основы программирования
Задача Задача
1 Июл 2023 в 22:34
157
0 покупок
Темы журнала
Показать ещё
Прямой эфир