Программа, моделирует процесс продажи, покупки ценных бумаг для того, чтобы узнать, кто из владельцев в конечном счете будет самым богатым, а кто обанкротится.
Существует два типа владельцев ценных бумаг:
- Держатель ценной бумаги, который покупает или продает их случайным образом
- Держатель ценной бумаги, который покупает или продает их с учетом прогноза цены, основанного на ее изменении относительно предыдущего состояния.
Все владельцы ценных бумаг изначально имеют одинаковую сумму денег.
При каждой итерации цена акции может увеличиваться на случайное значение в пределах:
- От -20% до +10%, если цена на предыдущей итерации упала
- От -10% до +20% в ином случае.
Также существует риск полного обесценивания, но вероятность этого 1 на 100.
Количество ценных бумаг каждой компании ограничено.
Программа имеет интерфейс, обеспечивающий:
- Ввод держателей (имя, тип).
- Добавление ценных бумаг.
- Чтение начальных данных из текстового файла и запись в текстовый файл
- Редактирование и удаление существующих держателей и ценных бумаг
- Построение графиков изменения цен акций и благосостояния акционеров (деньги + совокупная стоимость ценных бумаг)
- Info – базовый класс, в котором хранятся общие поля классов Holder, HolderWithAnalysis, Company. Класс обеспечивает перегрузку операторов ввода и вывода в поток.
- Holder – включает в себя информацию о держателе ценной бумаги, наследует поля от базового класса. Реализует покупку и продажу ценных бумаг (на конкретной итерации), запись истории покупок-продаж и формирование ее текстового представления.
- HolderWithAnalysis – наследуется от класса Holder, перегружает методы покупки и продажи на содержащие анализ.
- Company – включает в себя информацию о акции этой компании, наследуется от базового класса. Реализует случайное изменение цены, изменение количества акций в наличии.
- Container – контейнер для хранения, обработки и вычисления всей информации. Реализует цикл, число итераций которого задается пользователем (дни).