Skip to content
 
 

Latest commit

 

History

5 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 

Repository files navigation

Homework OOP prototype inheritance

Deadline 11.11

Create menu

Вы хозяин небольшого кафе быстрого питания. Ваше меню состоит из следующих позиций:

1) Гамбургер

- маленький (+50 тугриков, +20 калорий)
- большой (+100 тугриков, +40 калорий)

Гамбургер может быть с одним из нескольких видов начинок (обязательно):

- сыром (+10 тугриков, +20 калорий)
- салатом (+20 тугриков, +5 калорий)
- картофелем (+15 тугриков, +10 калорий)

2) Салат (цена и калории указаны за 100г)

- Цезарь (+100 тугриков, +20 калорий)
- Оливье (+50 тугриков, +80 калорий)

3) Напиток

- Кола (+50 тугриков, +40 калорий)
- Кофе (+80 тугриков, +20 калорий)

Необходимо написать программу, для расчета стоимости и/или каллорийности заказа посетителя. В заказе могут быть как одна, так и несколько позиций разных видов. (Например заказ может состоять из 2х гамбургеров(один большой, другой маленький), салата Оливье(150г) и кофе). В заказ можно как добавлять позиции, так и удалять из него лишнее (при условии, что оно там есть). После оплаты заказа он должен стать не редактируемым - ничего добавить или удалить из него больше нельзя.

Комментарии
Задачу необходимо решить используя ООП и ES5/ES6. Крайне желательно использование наследования и композиции. Типы начинок, размеры надо сделать константами. Никаких магических строк не должно быть.

Примерный вид класса гамбургер

/**
* Класс, объекты которого описывают параметры гамбургера. 
* 
* @constructor
* @param size        Размер
* @param stuffing    Начинка
*/
function Hamburger(size, stuffing) { ... } 

/* Размеры, виды начинок и добавок */
Hamburger.SIZE_SMALL = ...
Hamburger.SIZE_LARGE = ...
Hamburger.STUFFING_CHEESE = ...
Hamburger.STUFFING_SALAD = ...
Hamburger.STUFFING_POTATO = ...

/**
 * Узнать размер гамбургера
 */
Hamburger.prototype.getSize = function () ...

/**
 * Узнать начинку гамбургера
 */
Hamburger.prototype.getStuffing = function () ...

/**
 * Узнать цену гамбургера
 * @return {Number} Цена в тугриках
 */
Hamburger.prototype.calculatePrice = function () ...

/**
 * Узнать калорийность
 * @return {Number} Калорийность в калориях
 */
Hamburger.prototype.calculateCalories = function () ...

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages