Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package ai163.poprotskay;
- public class Main {
- public static void main(String[] args) {
- Item value; //Переменная, в которой будет храниться значение объекта
- /*Создание объектов класса Item, с соответствующими параметрами:
- * @param name
- * @param price
- */
- Item item = new Item("Food", 40.5);
- Item item1 = new Item("Fish", 12.9);
- Item item2 = new Item("Apple", 265.99);
- Item item3 = new Item("Window", 300);
- Item item4 = new Item("Table", 1899.99);
- //Создание объекта класса Cart
- Cart theStack = new Cart(6);
- //Возвращение названия товаров и их стоимости
- System.out.println("Название товара: " + item.getName());
- System.out.println("Цена=" + item.getPrice());
- System.out.println("Название товара: " + item1.getName());
- System.out.println("Цена=" + item1.getPrice());
- System.out.println("Название товара: " + item2.getName());
- System.out.println("Цена=" + item2.getPrice());
- System.out.println("Название товара: " + item3.getName());
- System.out.println("Цена=" + item3.getPrice());
- System.out.println("Название товара: " + item4.getName());
- System.out.println("Цена=" + item4.getPrice());
- //Добавление объекта в стек
- theStack.addItem(item);
- theStack.addItem(item1);
- theStack.addItem(item2);
- theStack.addItem(item3);
- theStack.addItem(item4);
- //Указатель на вершину стека
- value = theStack.peek();
- System.out.println("Вершина стека:" + "\n" + value.getName() + " " + value.getPrice());
- /*Новый стек, после повышения стоимости товаров,вывод на экран
- * новой суммы всех элементов стека
- */
- System.out.println("Новая стоимость после повышения цены на 15% ");
- theStack.raiseItemPrices(15);
- System.out.println("\n" + "Сумма элементов стека после повышения цены на 15%=" + theStack.calculateItemPrices());
- //Удаление элементов
- theStack.deleteLastAddedItem();
- //Верщина стека до удаления и после
- value = theStack.peek(); //Текущая вершина стека
- System.out.println("Новая вершина стека после удаления элемента:" + "\n" + value.getName() + " " + value.getPrice());
- //Новый стек, после удаления элементов,вывод на экран новой суммы всех элементов стека
- System.out.println("Новый стек: ");
- theStack.getItems();
- System.out.println("\n" + "Сумма элементов стека после удаления элемента=" + theStack.calculateItemPrices());
- /*Новый стек, после понижения стоимости товаров,вывод на экран
- * новой суммы всех элементов стека
- */
- System.out.println("Новая цена при понижении стоимости: ");
- theStack.cutItemPrices(30);
- System.out.println("\n" + "Сумма элементов стека после понижения цены на 30%=" + theStack.calculateItemPrices());
- }
- }
- package ai163.poprotskay;
- public class Cart {
- int capacity;
- private double amount = 0;
- private Item[] stack;
- private int topIndex;
- public Cart(int capacity) {
- this.capacity = capacity;
- stack = new Item[capacity];
- topIndex = -1;
- }
- public boolean addItem(Item item) {
- while (!isFull()) {
- return push(item);
- }
- System.out.println("Стек переполнен!!!");
- return false;
- }
- private boolean push(Item item) {
- stack[++topIndex] = item;
- return true;
- }
- public boolean isEmpty() {
- if (topIndex == -1) return true;
- return false;
- }
- private boolean isFull() {
- if (topIndex == capacity - 1) return true;
- return false;
- }
- public Item peek() {
- return stack[topIndex];
- }
- public int getTopIndex() {
- return topIndex;
- }
- public void getItems() {
- for (int i = topIndex; i >= 0; i--) {
- System.out.println(stack[i].getName() + "=" + stack[i].getPrice());
- }
- }
- public Item deleteLastAddedItem() {
- return pop();
- }
- private Item pop() {
- topIndex--;
- return stack[topIndex + 1];
- }
- public double calculateItemPrices() {
- amount = 0;
- for (int i = topIndex; i >= 0; i--) {
- amount += stack[i].price;
- }
- return amount;
- }
- public double raiseItemPrices(double percent) {
- for (int i = topIndex; i >= 0; i--) {
- stack[i].raiseTheCost(percent);
- System.out.println(stack[i].getName() + "=" + stack[i].getPrice());
- }
- return 1;
- }
- public double cutItemPrices(double percent) {
- for (int i = topIndex; i >= 0; i--) {
- stack[i].cutTheCost(percent);
- System.out.println(stack[i].getName() + "=" + stack[i].getPrice());
- }
- return 2;
- }
- }
- package ai163.poprotskay;
- public class Item {
- /**
- * Основные параметры класса Item
- *
- * @param name
- * @param price
- */
- String name;
- double price;
- //Конструктор, который ссылается на объекты, а так же проверяет истину условия
- public Item(String name, double price) {
- this.name = name;
- this.price = price;
- if (this.price < 0) this.price = 0;
- }
- //Возврат стоимости объектов
- public double getPrice() {
- return price;
- }
- //Возврат названия объектов
- public String getName() {
- return name;
- }
- public double raiseTheCost(double percent) {
- price = price + (percent / 100) * price;
- return price;
- }
- public double cutTheCost(double percent) {
- if (percent > 100) {
- this.price = 0;
- return price;
- } else {
- price = price - (percent / 100) * price;
- return price;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement