Advertisement
Guest User

Untitled

a guest
May 22nd, 2019
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.55 KB | None | 0 0
  1. import java.io.BufferedReader;
  2. import java.io.IOException;
  3. import java.io.InputStreamReader;
  4. import java.util.ArrayList;
  5. import java.util.Collections;
  6. import java.util.HashMap;
  7.  
  8. public class OrderSystem {
  9.  
  10. public static void main(String[] args) throws IOException {
  11. BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
  12. int n = Integer.parseInt(br.readLine());
  13. for (int i = 0; i < n; i++) {
  14. String input = br.readLine();
  15. int count = 0;
  16. String command;
  17. String commandInfo;
  18. while (true) {
  19. if (input.charAt(count) == ' ') {
  20. command = input.substring(0, count);
  21. commandInfo = input.substring(count + 1);
  22. break;
  23. }
  24. count++;
  25. }
  26. switch (command) {
  27. case "AddOrder":
  28. addOrder(commandInfo);
  29. System.out.println("Order added");
  30. break;
  31. case "DeleteOrders":
  32. System.out.println(deleteOrder(commandInfo));
  33. break;
  34. case "FindOrdersByPriceRange":
  35. findByPrice(commandInfo);
  36. break;
  37. case "FindOrdersByConsumer":
  38. findByConsumer(commandInfo);
  39. break;
  40. }
  41. }
  42. }
  43.  
  44. private static HashMap<String, ArrayList<Order>> map = new HashMap<>();
  45. private static ArrayList<Order> allOrders = new ArrayList<>();
  46.  
  47. private static void addOrder(String string) {
  48. String[] parameters = string.split(";");
  49. Order order = new Order(parameters[0], Double.parseDouble(parameters[1]), parameters[2]);
  50. allOrders.add(order);
  51. if (!map.containsKey(parameters[2])) {
  52. ArrayList<Order> list = new ArrayList<>();
  53. map.put(parameters[2], list);
  54. }
  55. map.get(parameters[2]).add(order);
  56.  
  57. }
  58.  
  59. private static String deleteOrder(String consumer) {
  60. if (map.get(consumer).size() == 0 || map.get(consumer).isEmpty()) {
  61. return "No orders found";
  62. } else {
  63. int count = map.get(consumer).size();
  64. if (count > 0) {
  65. map.get(consumer).subList(0, count).clear();
  66. }
  67. return String.format("%s orders deleted", count);
  68. }
  69.  
  70. }
  71.  
  72. private static void findByPrice(String infoStr) {
  73. String[] parameters = infoStr.split(";");
  74. Double priceFloor = Double.parseDouble(parameters[0]);
  75. Double priceCeiling = Double.parseDouble(parameters[1]);
  76. ArrayList<Order> priceList = new ArrayList<>();
  77. for (Order order : allOrders) {
  78. if (order.price >= priceFloor && order.price <= priceCeiling) {
  79. priceList.add(order);
  80. }
  81. }
  82. if (priceList.isEmpty()) {
  83. System.out.println("No orders found");
  84. } else {
  85. Collections.sort(priceList);
  86. for (Order order : priceList) {
  87. System.out.println(order.toString());
  88. }
  89. }
  90. }
  91.  
  92. private static void findByConsumer(String consumer) {
  93. if (map.get(consumer).isEmpty()) {
  94. System.out.println("No orders found");
  95. } else {
  96. Collections.sort(map.get(consumer));
  97. for (int i = 0; i < map.get(consumer).size(); i++) {
  98. System.out.println(map.get(consumer).get(i).toString());
  99. }
  100. }
  101. }
  102.  
  103. public static class Order implements Comparable<Order> {
  104. String name;
  105. Double price;
  106. String consumer;
  107.  
  108. Order(String name, Double price, String consumer) {
  109. this.name = name;
  110. this.price = price;
  111. this.consumer = consumer;
  112. }
  113.  
  114. @Override
  115. public String toString() {
  116. return String.format("{%s;%.2f;%s}", name, price, consumer);
  117. }
  118.  
  119. public String getName() {
  120. return name;
  121. }
  122.  
  123. @Override
  124. public int compareTo(Order order) {
  125. return this.name.compareTo(order.name);
  126. }
  127. }
  128. }
  129. // 99
  130. // AddOrder kor;23.22;Ivan
  131. // AddOrder kor;23.22;Ivan
  132. // DeleteOrders Ivan
  133. // FindOrdersByConsumer Ivan
  134. // DeleteOrders Ivan
  135.  
  136. // 10
  137. // AddOrder IdeaPad Z560;1536.50;Ivan
  138. // AddOrder ThinkPad T410;3000;Ivan
  139. // AddOrder VAIO Z13;4099.99;Pesho
  140. // AddOrder CLS 63 AMG;200000;Gosho
  141. // AddOrder 320i;10000;Tosho
  142. // AddOrder G560;999;Ivan
  143. // FindOrdersByConsumer Ivan
  144. // DeleteOrders Ivan
  145. // FindOrdersByConsumer Ivan
  146. // FindOrdersByPriceRange 100000;200000
  147.  
  148. // OrderSystem added
  149. // OrderSystem added
  150. // OrderSystem added
  151. // OrderSystem added
  152. // OrderSystem added
  153. // OrderSystem added
  154. // {G560;Ivan;999.00}
  155. // {IdeaPad Z560;Ivan;1536.50}
  156. // {ThinkPad T410;Ivan;3000.00}
  157. // 3 orders deleted
  158. // No orders found
  159. // {CLS 63 AMG;Gosho;200000.00}
  160.  
  161.  
  162. // 8
  163. // AddOrder IdeaPad Z560;3500.05;Ivan Petrov
  164. // AddOrder ThinkPad T410;3000;Ivan Petrov
  165. // AddOrder VAIO Z13;16400;Pesho
  166. // AddOrder CLS 63 AMG;21111.50;Gosho
  167. // FindOrdersByConsumer Ivan Petrov
  168. // DeleteOrders Ivan Petrov
  169. // FindOrdersByConsumer Ivan Petrov
  170. // FindOrdersByPriceRange 5000;30000
  171.  
  172. // OrderSystem added
  173. // OrderSystem added
  174. // OrderSystem added
  175. // OrderSystem added
  176. // {IdeaPad Z560;Ivan Petrov;3500.05}
  177. // {ThinkPad T410;Ivan Petrov;3000.00}
  178. // 2 orders deleted
  179. // No orders found
  180. // {CLS 63 AMG;Gosho;21111.50}
  181. // {VAIO Z13;Pesho;16400.00}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement