Advertisement
AchkataJo

Untitled

Dec 14th, 2019
362
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.18 KB | None | 0 0
  1. import java.util.Scanner;
  2. import java.util.Stack;
  3.  
  4. public class Main {
  5. public static void main(String[] args) {
  6. CalculatorFunction function = new CalculatorFunction();
  7. Stack<Integer> numbers = new Stack<>();
  8. Scanner scanner = new Scanner(System.in);
  9. String[] input = {"\n"};
  10. while (!input[0].equals("quit")){
  11. input = scanner.nextLine().split(" ");
  12. switch (input[0]){
  13. case "push":
  14. try {
  15. if(input.length > 2){
  16. System.out.println(input.length);
  17. System.out.println("Too much arguments passed");
  18. break;
  19. }
  20. int n = Integer.parseInt(input[1]);
  21. numbers.push(n);
  22. System.out.println("OK");
  23. }catch (NumberFormatException ex){
  24. System.out.println("Enter valid number");
  25. }
  26. break;
  27. case "pop":
  28. if(input.length >= 2){
  29. System.out.println("Too much arguments passed");
  30. }
  31. else if(numbers.isEmpty()){
  32. System.out.println("Stack is empty");
  33. }
  34. numbers.pop();
  35. System.out.println("OK");
  36. break;
  37. case "peek":
  38. if(input.length >= 2){
  39. System.out.println("Too much arguments passed");
  40. }
  41. else if(numbers.isEmpty()){
  42. System.out.println("Stack is empty");
  43. }
  44. System.out.println(numbers.peek());
  45. break;
  46. case "add":
  47. if(input.length > 1){
  48. System.out.println("Too much arguments passed");
  49. }
  50. else if(numbers.size() >= 2) {
  51. numbers.add(function.operation(numbers.lastElement(), numbers.get(numbers.size() - 2), "+"));
  52. System.out.println("OK");
  53. }
  54. else{
  55. System.out.println("Not enough numbers in stack");
  56. }
  57. break;
  58. case "sub":
  59. if(input.length > 1){
  60. System.out.println("Too much arguments passed");
  61. }
  62. else if(numbers.size() >= 2) {
  63. numbers.add(function.operation(numbers.get(numbers.size() - 2), numbers.lastElement(), "-"));
  64. System.out.println("OK");
  65. }
  66. else{
  67. System.out.println("Not enough numbers in stack");
  68. }
  69. break;
  70. case "multiply":
  71. if(input.length > 1){
  72. System.out.println("Too much arguments passed");
  73. }
  74. else if(numbers.size() >= 2) {
  75. numbers.add(function.operation(numbers.lastElement(), numbers.get(numbers.size() - 2), "*"));
  76. System.out.println("OK");
  77. }
  78. else{
  79. System.out.println("Not enough numbers in stack");
  80. }
  81. break;
  82. case "divide":
  83. if(input.length > 1){
  84. System.out.println("Too much arguments passed");
  85. }
  86. else if(numbers.size() >= 2) {
  87. numbers.add(function.operation(numbers.lastElement(), numbers.get(numbers.size() - 2), "/"));
  88. System.out.println("OK");
  89. }
  90. else{
  91. System.out.println("Not enough numbers in stack");
  92. }
  93. break;
  94. case "if-else":
  95. if(numbers.size() >= 3) {
  96. if(numbers.lastElement() != 0){
  97. numbers.get(numbers.size() - 1);
  98. System.out.println("OK");
  99. }
  100. else if(numbers.get(numbers.size() - 2) != 0){
  101. numbers.get(numbers.size() - 2);
  102. System.out.println("OK");
  103. }
  104. else {
  105. numbers.get(numbers.size() - 3);
  106. System.out.println("OK");
  107. }
  108.  
  109. }
  110. else{
  111. System.out.println("Not enough numbers in stack");
  112. }
  113. break;
  114. case "print":
  115. if(input.length > 1){
  116. System.out.println("Too much arguments passed");
  117. }
  118. for (int i = numbers.size() ; i > 0; i--){
  119. if(i > 1){
  120. System.out.print(numbers.get(i - 1) + ",");
  121. }
  122. else{
  123. System.out.println(numbers.get(0));
  124. }
  125. }
  126. break;
  127. case "revert":
  128. if(input.length > 1){
  129. System.out.println("Too much arguments passed");
  130. }
  131. for(int i = 0; i <= numbers.size(); i++){
  132. numbers.insertElementAt(numbers.get(numbers.size() - 1),i);
  133. numbers.pop();
  134. }
  135. System.out.println("OK");
  136. break;
  137. case "reset":
  138. if(input.length > 1){
  139. System.out.println("Too much arguments passed");
  140. }
  141. numbers.clear();
  142. System.out.println("OK");
  143. }
  144. }
  145. }
  146. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement