Giter VIP home page Giter VIP logo

oop's Introduction

Homework OOP, prototype inheritance

Deadline 17.08

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 () ...

oop's People

Contributors

jeanny-driver avatar konstantinunilfo avatar unilfo avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.