Advertisement
Guest User

Untitled

a guest
Sep 26th, 2017
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.88 KB | None | 0 0
  1. package ai163.poprotskay;
  2.  
  3. public class Main {
  4.  
  5. public static void main(String[] args) {
  6. Item value; //Переменная, в которой будет храниться значение объекта
  7.  
  8. /*Создание объектов класса Item, с соответствующими параметрами:
  9. * @param name
  10. * @param price
  11. */
  12. Item item = new Item("Food", 40.5);
  13. Item item1 = new Item("Fish", 12.9);
  14. Item item2 = new Item("Apple", 265.99);
  15. Item item3 = new Item("Window", 300);
  16. Item item4 = new Item("Table", 1899.99);
  17.  
  18. //Создание объекта класса Cart
  19. Cart theStack = new Cart(6);
  20.  
  21. //Возвращение названия товаров и их стоимости
  22. System.out.println("Название товара: " + item.getName());
  23. System.out.println("Цена=" + item.getPrice());
  24. System.out.println("Название товара: " + item1.getName());
  25. System.out.println("Цена=" + item1.getPrice());
  26. System.out.println("Название товара: " + item2.getName());
  27. System.out.println("Цена=" + item2.getPrice());
  28. System.out.println("Название товара: " + item3.getName());
  29. System.out.println("Цена=" + item3.getPrice());
  30. System.out.println("Название товара: " + item4.getName());
  31. System.out.println("Цена=" + item4.getPrice());
  32.  
  33. //Добавление объекта в стек
  34. theStack.addItem(item);
  35. theStack.addItem(item1);
  36. theStack.addItem(item2);
  37. theStack.addItem(item3);
  38. theStack.addItem(item4);
  39.  
  40. //Указатель на вершину стека
  41. value = theStack.peek();
  42. System.out.println("Вершина стека:" + "\n" + value.getName() + " " + value.getPrice());
  43.  
  44. /*Новый стек, после повышения стоимости товаров,вывод на экран
  45. * новой суммы всех элементов стека
  46. */
  47. System.out.println("Новая стоимость после повышения цены на 15% ");
  48. theStack.raiseItemPrices(15);
  49. System.out.println("\n" + "Сумма элементов стека после повышения цены на 15%=" + theStack.calculateItemPrices());
  50.  
  51. //Удаление элементов
  52. theStack.deleteLastAddedItem();
  53.  
  54. //Верщина стека до удаления и после
  55. value = theStack.peek(); //Текущая вершина стека
  56. System.out.println("Новая вершина стека после удаления элемента:" + "\n" + value.getName() + " " + value.getPrice());
  57.  
  58. //Новый стек, после удаления элементов,вывод на экран новой суммы всех элементов стека
  59. System.out.println("Новый стек: ");
  60. theStack.getItems();
  61. System.out.println("\n" + "Сумма элементов стека после удаления элемента=" + theStack.calculateItemPrices());
  62.  
  63. /*Новый стек, после понижения стоимости товаров,вывод на экран
  64. * новой суммы всех элементов стека
  65. */
  66. System.out.println("Новая цена при понижении стоимости: ");
  67. theStack.cutItemPrices(30);
  68. System.out.println("\n" + "Сумма элементов стека после понижения цены на 30%=" + theStack.calculateItemPrices());
  69. }
  70. }
  71.  
  72. package ai163.poprotskay;
  73.  
  74. public class Cart {
  75. int capacity;
  76. private double amount = 0;
  77. private Item[] stack;
  78. private int topIndex;
  79.  
  80. public Cart(int capacity) {
  81. this.capacity = capacity;
  82. stack = new Item[capacity];
  83. topIndex = -1;
  84. }
  85.  
  86. public boolean addItem(Item item) {
  87. while (!isFull()) {
  88. return push(item);
  89. }
  90. System.out.println("Стек переполнен!!!");
  91. return false;
  92. }
  93.  
  94. private boolean push(Item item) {
  95. stack[++topIndex] = item;
  96. return true;
  97. }
  98.  
  99. public boolean isEmpty() {
  100. if (topIndex == -1) return true;
  101. return false;
  102. }
  103.  
  104. private boolean isFull() {
  105. if (topIndex == capacity - 1) return true;
  106. return false;
  107. }
  108.  
  109. public Item peek() {
  110. return stack[topIndex];
  111. }
  112.  
  113. public int getTopIndex() {
  114. return topIndex;
  115. }
  116.  
  117. public void getItems() {
  118. for (int i = topIndex; i >= 0; i--) {
  119. System.out.println(stack[i].getName() + "=" + stack[i].getPrice());
  120. }
  121. }
  122.  
  123. public Item deleteLastAddedItem() {
  124. return pop();
  125. }
  126.  
  127. private Item pop() {
  128. topIndex--;
  129. return stack[topIndex + 1];
  130. }
  131.  
  132. public double calculateItemPrices() {
  133. amount = 0;
  134. for (int i = topIndex; i >= 0; i--) {
  135. amount += stack[i].price;
  136. }
  137. return amount;
  138. }
  139.  
  140. public double raiseItemPrices(double percent) {
  141. for (int i = topIndex; i >= 0; i--) {
  142. stack[i].raiseTheCost(percent);
  143. System.out.println(stack[i].getName() + "=" + stack[i].getPrice());
  144. }
  145. return 1;
  146. }
  147.  
  148.  
  149. public double cutItemPrices(double percent) {
  150. for (int i = topIndex; i >= 0; i--) {
  151. stack[i].cutTheCost(percent);
  152. System.out.println(stack[i].getName() + "=" + stack[i].getPrice());
  153. }
  154. return 2;
  155. }
  156. }
  157.  
  158.  
  159. package ai163.poprotskay;
  160.  
  161. public class Item {
  162. /**
  163. * Основные параметры класса Item
  164. *
  165. * @param name
  166. * @param price
  167. */
  168. String name;
  169. double price;
  170.  
  171. //Конструктор, который ссылается на объекты, а так же проверяет истину условия
  172. public Item(String name, double price) {
  173. this.name = name;
  174. this.price = price;
  175. if (this.price < 0) this.price = 0;
  176. }
  177.  
  178. //Возврат стоимости объектов
  179. public double getPrice() {
  180. return price;
  181. }
  182.  
  183. //Возврат названия объектов
  184. public String getName() {
  185. return name;
  186. }
  187.  
  188. public double raiseTheCost(double percent) {
  189. price = price + (percent / 100) * price;
  190. return price;
  191. }
  192.  
  193. public double cutTheCost(double percent) {
  194. if (percent > 100) {
  195. this.price = 0;
  196. return price;
  197. } else {
  198. price = price - (percent / 100) * price;
  199. return price;
  200. }
  201. }
  202. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement