Задачи - ООП, Седмица 9, 18.04.2024

На днешното упражнение ще решаваме задачата от Контролно 1, затова задачите ще са в същия дух (макар и да не включват най-новия материал).

Решението, което писахме по време на практикума, с някои разширения и коментари, може да намерите тук.

GitHub classroom: classroom.github.com/a/wlL1oUg2

Преговорни

Задача 1 - Голяма петица

< Решение >

Реализирайте клас Printer, който съдържа модел като низ с произволна дължина и брой принтирани страници като неотрицателно цяло число. Имплементирайте голяма петица.

Задача 2 - Файлове и класове

< Решение >

Реализирайте клас Date, който съдържа номера на деня, месеца и годината в три отделни целочислени член-данни. Имплементирайте член-методи storeText, storeBinary, които съответно запазват данните в текстов файл (във формата “YEAR MONTH DAY”) и в двоичен файл с подадени имена. Аналогично имплементирайте loadText и loadBinary, които презаписват член-данните с тези от подадените (имена на) файлове.

В главната функция създайте 5 дати, запазете всяка в един и същ текстов файл, след това прочетете датите в нови 5 променливи и изкарайте датите в обратен ред.

Лесни

Задача 3

< Решение >

Реализирайте клас Train, който съдържа:

Имплементирайте методите:

Реализирайте клас TrainNetwork, който съдържа:

За този клас имплементирайте методите:

Да се имплементира главна функция, в която приемате име на двоичен файл от потребителя. В този файл имате някакъв брой редици с идентификационен номер на релсова линия, брой локации върху съответната линия и всички локации като нормални низове, разделени с нови редове.

Допълнително в главната функция приемайте от потребителя влаковете, като имената на текстовите файлове се избират от програмата (НЕ от потребителя) според идентификационния номер на релсовата линия и информацията във файла с редиците. Не може да променяте Train класа!

Последно в главната функция създайте обект от тип TrainNetwork и изкарайте резултата от RunTrains на екрана.

Трудни

Задача 4

Реализирайте клас Car, в който се запазват:

Имплементирайте методи:

Реализирайте клас DriveThrough, в който се запазват:

Имплементирайте методи:

Имплементирайте главна функция, в която от потребителския вход приемате име на текстов файл. Създайте обект от тип DriveThrough, който да запълни своите стойности с тези от подадения файл и изкарайте на екрана стойността от EfficiencyService.