Как разбить на классы?
Учусь рисовать. Интересует, какие краски использовать. Не хочу углубляться в сюжет, просто интересует какие краски нужны.
Вопрос бессмысленный. 
Ответ простой - никакие классы не использовать. При таком уровне влаения вопросом надо забыть про ооп и сначала научиться структурировать свои мысли, потом свой процедурный код, и потом, когда это наконец станет получаться годиков через пять, классы сами в руки упадут.
Сделал свой вариант, только каркас классов. Действия которые необходимо выполнить не реализовывал для простоты, заменил их выводом текстового сообщения.
https://github.com/sergo5000/test