Вариант А


Задача 1  Да се реализира клас EventLog, който представя регистър на събития с име (низ до 30 символа) и списък от събития (описани от низове с произволна дължина). Класът да предоставя възможност за регистриране на ново събитие и да има възможност да регистрира произволен брой събития. За класа да се реализират:

  • подходящи конструктори и голяма четворка, ако е нужна;

  • метод addEvent, който регистрира събитие;

  • метод clear, който изчиства списъка;

  • операция <<, която извежда на стандартния изход информация за всички регистрирани събития по ред на регистриране.

Забележка 1. Нужно е класът да пази копие на подадения текст на събитието вместо само указателя, подаден като параметър.

Забележка 2. Не е нужно събитията да могат да бъдат редактирани и премахвани поединично.


Задача 2 Да се реализира клас Room, който описва помещение с площ (в дробно число кв.м) и описание (низ с дължина до 30 символа). Да се реализира клас Apartment, който описва апартамент с до 10 помещения. За двата класа да се реализират:

  • подходящи конструктори и голяма четворка, ако е нужна;

  • подходящи селектори и мутатори;

  • операция >> за въвеждане от стандартен вход;

  • операция << за извеждане на стандартен изход.

Допълнително, за клас Apartment да се реализират следните функции:

  • метод, който намира общата площ на даден апартамент;

  • операция [], която връща стая в апартамент по зададено име;

  • операции за сравнение, които сравняват два апартамента по "просторност”, като за по-просторен се счита този апартамент, за който средната площ на стая е по-голяма.

Забележка. Не е нужно да се реализират мутатори за свойства, които не е смислено да бъдат променяни.


Вариант Б


Задача 1 Да се реализира клас Order, който представя поръчка, описана чрез номер и списък от артикули (описани от низове). Класът да предоставя възможност за добавяне на нов артикул и да има възможност да регистрира произволен брой артикули. За класа да се реализират:

  • подходящи конструктори и голяма четворка, ако е нужна;

  • метод addItem, който добавя артикул към поръчката;

  • метод cancel, който премахва всички артикули от поръчката;

  • операция <<, която извежда на стандартния изход информация за поръчката.

Забележка 1. Нужно е класът да пази копие на подадения текст на артикула вместо само указателя, подаден като параметър.

Забележка 2. Не е нужно артикулите да могат да бъдат редактирани и премахвани поединично.


Задача 2 Да се реализира клас Cashier, който описва каса  в магазин с име на касиера (низ с дължина до 30 символа) и оборот (дробно число лева). Да се реализира клас Store, който описва магазин с до 10 каси. За двата класа да се реализират:

  • подходящи конструктори и голяма четворка, ако е нужна;

  • подходящи селектори и мутатори;

  • операция >> за въвеждане от стандартен вход;

  • операция << за извеждане на стандартен изход.

Допълнително, за клас Store да се реализират следните функции:

  • метод, който намира общия оборот за магазина;

  • операция [], която връща каса в магазина по зададено име на касиер;

  • операции за сравнение, които сравняват два магазина по "доходност”, като за по-доходен се счита този магазин, за който средният доход на каса е е по-голям.

Забележка. Не е нужно да се реализират мутатори за свойства, които не е смислено да бъдат променяни.

Последно модифициране: сряда, 22 април 2015, 21:45