fork download
  1. import java.util.ArrayList;
  2. import java.util.List;
  3. import java.util.Scanner;
  4.  
  5. public class Main
  6. {
  7.  
  8. public static class InputNegativeException extends Exception {
  9. public InputNegativeException(String message) {
  10. super(message);
  11. }
  12. }
  13.  
  14. public static class Cart {
  15. private String flower;
  16. private int flowerNumber;
  17.  
  18. public Cart(String flower, int flowerNumber) {
  19. this.flower = flower;
  20. this.flowerNumber = flowerNumber;
  21. }
  22.  
  23. public String getFlower() {
  24. return flower;
  25. }
  26.  
  27. public int getFlowerNumber() {
  28. return flowerNumber;
  29. }
  30. }
  31.  
  32. public static void main(String[] args) {
  33. Scanner scanner = new Scanner(System.in);
  34. String command;
  35. List<Cart> cart = new ArrayList<>();
  36. String[] flowerList = {"Rose", "Tulip", "Sunflower", "Lily", "Daisy", "Orchid", "Peony"};
  37.  
  38. // Initialize flower storage
  39. List<Flower> flowerStorageList = new ArrayList<>();
  40. for (String flowerType : flowerList) {
  41. Flower flower = new Flower();
  42. flower.setFlowerType(flowerType);
  43. flower.setFlowerStorageNumber(100);
  44. flowerStorageList.add(flower);
  45. }
  46.  
  47. while (true) {
  48. command = scanner.nextLine();
  49. if (command.equals("Cart")) {
  50. displayCart(cart);
  51. } else if (command.equals("Collect")) {
  52. collectFlower(scanner, flowerStorageList, cart);
  53. } else if (command.equals("Delete")) {
  54. deleteItem(scanner, cart, flowerStorageList);
  55. } else if (command.equals("Checkout")) {
  56. checkout(cart, flowerStorageList);
  57. return;
  58. }
  59. }
  60. }
  61.  
  62. public static void displayCart(List<Cart> cart) {
  63. if (cart.isEmpty()) {
  64. System.out.println("Cart is empty.");
  65. } else {
  66. for (int i = 0; i < cart.size(); i++) {
  67. System.out.println((i + 1) + ". " + cart.get(i).getFlower() + ": " + cart.get(i).getFlowerNumber());
  68. }
  69. }
  70. }
  71.  
  72. public static void collectFlower(Scanner scanner, List<Flower> flowerStorageList, List<Cart> cart) {
  73. try {
  74. String flowerName = scanner.nextLine();
  75. int flowerNumber;
  76.  
  77. for (Flower flower : flowerStorageList) {
  78. if (flower.getFlowerType().equalsIgnoreCase(flowerName)) {
  79. System.out.println(flowerName + ": " + flower.getFlowerStorageNumber() + " available");
  80. flowerNumber = Integer.parseInt(scanner.nextLine());
  81.  
  82. if (flowerNumber < 0) {
  83. throw new InputNegativeException("Please enter a legal number");
  84. }
  85.  
  86. if (flower.getFlowerStorageNumber() >= flowerNumber) {
  87. Cart newCart = new Cart(flowerName, flowerNumber);
  88. cart.add(newCart);
  89. flower.setFlowerStorageNumber(flower.getFlowerStorageNumber() - flowerNumber);
  90. System.out.println("Collect successful.");
  91. }
  92. return;
  93. }
  94. }
  95. } catch (NumberFormatException e) {
  96. System.out.println("Please enter a legal number.");
  97. } catch (InputNegativeException e) {
  98. System.out.println(e.getMessage());
  99. }
  100. }
  101.  
  102. public static void deleteItem(Scanner scanner, List<Cart> cart, List<Flower> flowerStorageList) {
  103. try {
  104. int deleteNumber = Integer.parseInt(scanner.nextLine());
  105.  
  106. if (deleteNumber < 1 || deleteNumber > cart.size()) {
  107. throw new IllegalArgumentException("Out of range.");
  108. }
  109.  
  110. Cart removedItem = cart.remove(deleteNumber - 1);
  111. for (Flower flower : flowerStorageList) {
  112. if (flower.getFlowerType().equalsIgnoreCase(removedItem.getFlower())) {
  113. flower.setFlowerStorageNumber(flower.getFlowerStorageNumber() + removedItem.getFlowerNumber());
  114. System.out.println("Delete successful.");
  115. return;
  116. }
  117. }
  118. } catch (NumberFormatException e) {
  119. System.out.println("Out of range.");
  120. System.out.println(e.getMessage());
  121. }
  122. }
  123.  
  124. public static void checkout(List<Cart> cart, List<Flower> flowerStorageList) {
  125. System.out.println("===Receipt===");
  126. displayCart(cart);
  127. System.out.println("===Inventory===");
  128. for (Flower flower : flowerStorageList) {
  129. System.out.println(flower.getFlowerType() + ": " + flower.getFlowerStorageNumber());
  130. }
  131. }
  132.  
  133. public static class Flower {
  134. private String flowerType;
  135. private int flowerStorageNumber;
  136.  
  137. public String getFlowerType() {
  138. return flowerType;
  139. }
  140.  
  141. public void setFlowerType(String flowerType) {
  142. this.flowerType = flowerType;
  143. }
  144.  
  145. public int getFlowerStorageNumber() {
  146. return flowerStorageNumber;
  147. }
  148.  
  149. public void setFlowerStorageNumber(int flowerStorageNumber) {
  150. this.flowerStorageNumber = flowerStorageNumber;
  151. }
  152. }
  153. }
  154.  
Success #stdin #stdout 0.18s 60988KB
stdin
Cart
Collect Rose 10
Cart
Delete 1
Collect Rose 10
Checkout
stdout
Cart is empty.
Cart is empty.
===Receipt===
Cart is empty.
===Inventory===
Rose: 100
Tulip: 100
Sunflower: 100
Lily: 100
Daisy: 100
Orchid: 100
Peony: 100