fork(2) download
  1. Hamburger.SIZE_BIG = "BIG";
  2. Hamburger.SIZE_SMALL = "SMALL";
  3.  
  4. Hamburger.STUFFING_CHEESE = "CHEESE";
  5. Hamburger.STUFFING_SALAD = "SALAD";
  6. Hamburger.STUFFING_POTATOES = "POTATOES";
  7.  
  8. Hamburger.TOPPING_SAUCE = "SAUCE";
  9. Hamburger.TOPPING_MAYO = "MAYO";
  10.  
  11. function Hamburger(size, stuffing) {
  12.  
  13. this.topping_sause = 0;
  14. this.topping_mayo = 0;
  15. this.calories = 0;
  16. this.price = 0;
  17.  
  18. if (size != Hamburger.SIZE_BIG && size != Hamburger.SIZE_SMALL) {
  19. throw new HamburgerError( size + " неправильный размер" );
  20. }
  21.  
  22. if (stuffing != Hamburger.STUFFING_CHEESE && stuffing != Hamburger.STUFFING_SALAD && stuffing != Hamburger.STUFFING_POTATOES) {
  23. throw new HamburgerError( stuffing + " неправильная начинка" );
  24. }
  25.  
  26. this.addTopping = function (topping) {
  27. if (topping == Hamburger.TOPPING_SAUCE) ++this.topping_sause;
  28. if (topping == Hamburger.TOPPING_MAYO) ++this.topping_mayo;
  29. if (this.topping_sause >= 2) throw new HamburgerError("Приправа добавлена более 1 раза");
  30. if (this.topping_mayo >= 2) throw new HamburgerError("майонезом полито более 1 раза");
  31. if (topping != Hamburger.TOPPING_SAUCE && topping != Hamburger.TOPPING_MAYO) {
  32. throw new HamburgerError( topping + " неизвестная добавка");
  33. }
  34. }
  35.  
  36. this.calculateCalories = function () {
  37. if (size == Hamburger.SIZE_BIG) this.calories += 40;
  38. if (size == Hamburger.SIZE_SMALL) this.calories += 20;
  39. if (stuffing == Hamburger.STUFFING_CHEESE) this.calories += 20;
  40. if (stuffing == Hamburger.STUFFING_SALAD) this.calories += 5;
  41. if (stuffing == Hamburger.STUFFING_POTATOES) this.calories += 10;
  42. if (this.topping_sause == 1) this.calories += 0; // Я так думаю хоть и 0, все равно стоит добавить,
  43. if (this.topping_mayo == 1) this.calories += 5; //т.к. если в будущем захотим изменить значение, то просто изменим 0
  44. var x = this.calories; //на что-то, а не будем печатать новую строку.
  45. this.calories = 0;
  46. return x;
  47. }
  48.  
  49. this.calculatePrice = function () {
  50. if (size == Hamburger.SIZE_BIG) this.price += 100;
  51. if (size == Hamburger.SIZE_SMALL) this.price += 50;
  52. if (stuffing == Hamburger.STUFFING_CHEESE) this.price += 10;
  53. if (stuffing == Hamburger.STUFFING_SALAD) this.price += 20;
  54. if (stuffing == Hamburger.STUFFING_POTATOES) this.price += 15;
  55. if (this.topping_sause == 1) this.price += 15;
  56. if (this.topping_mayo == 1) this.price += 20;
  57. var x = this.price;
  58. this.price = 0;
  59. return x;
  60. }
  61. }
  62.  
  63.  
  64. // маленький гамбургер с начинкой из сыра
  65. var hamburger = new Hamburger(Hamburger.SIZE_SMALL, Hamburger.STUFFING_CHEESE);
  66. // добавка из майонеза
  67. hamburger.addTopping(Hamburger.TOPPING_MAYO);
  68. // спросим сколько там калорий
  69. console.log("Calories: %f", hamburger.calculateCalories());
  70. // сколько стоит
  71. console.log("Price: %f", hamburger.calculatePrice());
  72. // я тут передумал и решил добавить еще приправу
  73. hamburger.addTopping(Hamburger.TOPPING_SAUCE);
  74. // А сколько теперь стоит?
  75. console.log("Price with sauce: %f", hamburger.calculatePrice());
Runtime error #stdin #stdout #stderr 0.5s 323264KB
stdin
Standard input is empty
stdout
Standard output is empty
stderr
js: uncaught JavaScript runtime exception: ReferenceError: "console" is not defined.