Форум программистов, компьютерный форум, киберфорум
JavaScript для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/55: Рейтинг темы: голосов - 55, средняя оценка - 4.62
17 / 0 / 0
Регистрация: 02.09.2018
Сообщений: 58

Написать программу, расчитывающую стоимость и калорийность гамбургера

22.11.2018, 09:54. Показов 10248. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Сеть фастфудов предлагает несколько видов гамбургеров:

маленький (50 тугриков, 20 калорий)
большой (100 тугриков, 40 калорий)
Гамбургер может быть с одним из нескольких видов начинок:

сыром (+ 10 тугриков, + 20 калорий)
салатом (+ 20 тугриков, + 5 калорий)
картофелем (+ 15 тугриков, + 10 калорий)
Можно добавить добавки:

посыпать приправой (+ 15 тугриков, 0 калорий)
полить майонезом (+ 20 тугриков, + 5 калорий).
Написать программу, расчитывающую стоимость и калорийность гамбургера. Используй ООП подход ( нужен класс Гамбургер, константы, методы для выбора опций и рассчета нужных величин).
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
22.11.2018, 09:54
Ответы с готовыми решениями:

В столовой предлагается N комплексных обедов, состоящих из Q блюд. Известна стоимость и калорийность каждого б
В столовой предлагается N комплексных обедов, состоящих из Q блюд. Известна стоимость и калорийность каждого блюда. Сколько стоит самый...

Написать программу, вводящую сумму покупки и вычис-ляющую: а) стоимость доставки; б) стоимость покупки вместе с доставкой
Супермаркет доставляет продукты питания на дом. Эта услуга оплачивается сле-дующим образом: если сумма покупки не превышает 600 рублей, то...

написать программу определить стоимость разговорова по телефону
написать программу определить стоимость разговорова по телефону (межгород) с учетом скидки 20%, предоставляемой по субботам и воскресеньем....

2
22.11.2018, 14:58

Не по теме:

Где такие задачки береш ?

0
Эксперт JS
6497 / 3908 / 2006
Регистрация: 14.06.2018
Сообщений: 6,781
25.11.2018, 18:41
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
</head>
<body>
    <script>
        class Ingredient {
            constructor(id, category, name, price, kkal) {
                this.id = id; // Идентификатор
                this.category = category; // 0- размер, 1 - начинка, 2 - внешняя добавка
                this.name = name; // Название
                this.price = price; // Цена
                this.kkal = kkal; // Калорийность
            }
        }
 
        // Признаки богатой доменной модели:
        // Храним не фактические данные, а ссылки на объекты.
        class Gamburger {
            constructor(gamburgerSize = null, insideIngredient = null) {
                this.gamburgerSize = gamburgerSize;
                this.insideIngredient = insideIngredient;
                this.outerIngredients = new Set();
            }
 
            get isReady() {
                return this.gamburgerSize != null && this.insideIngredient != null;
            }
 
            get moneySum() {
                if (!this.isReady)
                    throw new Error("Is not ready.");
 
                let sum = this.gamburgerSize.price;
                sum += this.insideIngredient.price;
                for (let item of this.outerIngredients) {
                    sum += item.price;
                }
                return sum;
            }
 
            get kkalSum() {
                if (!this.isReady)
                    throw new Error("Is not ready.");
 
                let sum = this.gamburgerSize.kkal;
                sum += this.insideIngredient.kkal;
                for (let item of this.outerIngredients) {
                    sum += item.kkal;
                }
                return sum;
 
            }
 
            get name() {
                if (!this.isReady)
                    throw new Error("Is not ready.");
 
                let name = this.gamburgerSize.name + " (";
                name += this.insideIngredient.name;
                for (let item of this.outerIngredients) {
                    name += ", " + item.name;
                }
                return name + ")";
            }
 
            // Вызов строителя можно не включать в общий интерфейс объекта
            static get builder() { return new GamburgerBuilder(); }
        }
 
        class GamburgerBuilder {
            get isReady() { return this.gamburger.isReady; };
 
            constructor() {
                this.gamburger = new Gamburger();
            }
 
            withInside(ingredient) {
                if (!ingredient || ingredient.category != 1) // Guard на несовместимость ингредиента.
                    throw new Error("WithInside");
 
                this.gamburger.insideIngredient = ingredient;
                return this;
            }
 
            withSize(ingredient) {
                if (!ingredient || ingredient.category != 0) // Guard на несовместимость ингредиента.
                    throw new Error("WithSize");
 
                this.gamburger.gamburgerSize = ingredient;
                return this;
            }
 
            build() {
                if (!this.isReady)
                    throw new Error("Is not ready.");
 
                return this.gamburger;
            }
        }
 
        // Базовый класс Декоратор для гамбургера
        class GamburgerDecorator {
            constructor(gamburger) {
                this.gamburger = gamburger;
            }
 
            get gamburgerSize() { return this.gamburger.gamburgerSize; }
            set gamburgerSize(value) { gamburger.gamburgerSize = value; }
 
            get insideIngredient() { return this.gamburger.insideIngredient; }
            set insideIngredient(value) { this.gamburger.insideIngredient = value; }
 
            get outerIngredients() { return this.gamburger.outerIngredients; }
 
            get moneySum() { return this.gamburger.moneySum; }
 
            get kkalSum() { return this.gamburger.kkalSum; }
 
            get name() { return this.gamburger.name; }
        }
 
        class SpeciesGamburger extends GamburgerDecorator {
            constructor(gamburger) {
                super(gamburger);
                this.gamburger.outerIngredients.add(ingredients[5]);
            }
        }
 
        class MaionezGamburger extends GamburgerDecorator {
            constructor(gamburger) {
                super(gamburger);
                this.gamburger.outerIngredients.add(ingredients[6]);
            }
        }
 
        let ingredients = [
            new Ingredient(1, 0, "Маленький гамбургер", 50, 20),
            new Ingredient(2, 0, "Большой гамбургер", 100, 40),
            new Ingredient(3, 1, "сыр", 10, 20),
            new Ingredient(4, 1, "салат", 20, 5),
            new Ingredient(5, 1, "картофель", 15, 10),
            new Ingredient(6, 2, "приправа", 15, 0),
            new Ingredient(7, 2, "майонез", 20, 5),
        ];
 
        // Для приправы и майонеза применим паттерн Decorator (многократное обертывание не увеличивает сумму),
        // а для основы и начинки гамбургера - паттерн Fluent Builder.
        let burger = new MaionezGamburger(new MaionezGamburger(new SpeciesGamburger(
            Gamburger.builder
                .withInside(ingredients[3]) // с салатом
                .withSize(ingredients[0]) // Маленький гамбургер
                .build()
        )));
 
        console.log(burger);
    </script>
</body>
</html>
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
25.11.2018, 18:41
Помогаю со студенческими работами здесь

Написать программу которая высчитывает стоимость межгородского звонка
Сама задача: Написать программу которая высчитывает стоимость межгородского звонка(цена одной минуты определяется расстоянием до города,...

Написать программу, вычисляющую стоимость междугороднего телефонного разговора.
Написать программу, вычисляющую стоимость междугороднего телефонного разговора (цена одной минуты определяется расстоянием до города, в...

Написать программу, определяющую стоимость разговора заданной продолжительности t
Стоимость минуты разговора по телефону — K руб. Если продолжи- тельность разговора превышает 10 минут, то на оставшуюся часть времени...

Написать программу, вычисляюшую стоимость междугороднего телефонного разговора
Написать программу, вычисляюшую стоимость междугороднего телефонного разговора (цена одной минуты определяется расстоянием до города, в...

Написать программу, которая определяет стоимость междугороднего телефонного разговора
Написать программу, которая определяет стоимость междугороднего телефонного разговора. Исходные данные для программы являются код города и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Вывод данных через динамический список в справочнике
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru