Advertisement
Guest User

Untitled

a guest
Dec 6th, 2019
136
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.20 KB | None | 0 0
  1. package pl.edu.ug.tent.springweb;
  2.  
  3. import javax.servlet.ServletException;
  4. import javax.servlet.annotation.WebServlet;
  5. import javax.servlet.http.HttpServlet;
  6. import javax.servlet.http.HttpServletRequest;
  7. import javax.servlet.http.HttpServletResponse;
  8. import java.io.IOException;
  9. import java.io.PrintWriter;
  10. import java.util.ArrayList;
  11. import java.util.Arrays;
  12. import java.util.LinkedList;
  13. import java.util.List;
  14.  
  15. @WebServlet("/data")
  16. public class DataServlet extends HttpServlet {
  17. private double result = 0;
  18. ArrayList<Double> numbers = new ArrayList<>();
  19. ArrayList<String> signs = new ArrayList<>();
  20. String errorMessage = "";
  21. boolean clearArrays = false;
  22.  
  23. List<String> input = new ArrayList<>();
  24.  
  25. @Override
  26. protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
  27.  
  28. resp.setContentType("text/html");
  29. String button = req.getParameter("button");
  30.  
  31. PrintWriter out = resp.getWriter();
  32.  
  33. resp.setContentType("text/html");
  34.  
  35. out.println("<html><body>");
  36.  
  37. out.println("<form action='/data' method='POST'>");
  38. out.println("<input type='text' name='number'>");
  39. out.println("<input type='submit' name='button' value='+'>");
  40. out.println("<input type='submit' name='button' value='-'>");
  41. out.println("<input type='submit' name='button' value='*'>");
  42. out.println("<input type='submit' name='button' value='/'>");
  43. out.println("<input type='submit' name='button' value='='>");
  44. if (button.equals("="))
  45. out.println(" Wynik: " + getResult());
  46. setResult(0);
  47. out.println("</form>");
  48. out.println("<br><br>");
  49. out.println(errorMessage);
  50. out.println("<br><br>");
  51. for (int i = 0; i < signs.size(); i++) {
  52. out.println("Operacja nr " + (i + 1) + ": " + numbers.get(i) + " " + signs.get(i));
  53. out.println("<br>");
  54. }
  55.  
  56. out.println("</body></html>");
  57. setResult(0);
  58. if (clearArrays) {
  59. signs.clear();
  60. numbers.clear();
  61. }
  62. }
  63.  
  64. @Override
  65. protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
  66. String numbers = req.getParameter("number");
  67. String sign = req.getParameter("button");
  68.  
  69. if (!sign.equals("=")) {
  70. input.add(numbers);
  71. input.add(sign);
  72. doGet(req, resp);
  73. }
  74.  
  75. List<String> result = new ArrayList<>();
  76. for (int i = 0; i < input.size(); i++) {
  77. double tmpResult = 0;
  78. if (input.get(i).equals("*")) {
  79. tmpResult = Double.parseDouble(input.get(i - 1)) * Double.parseDouble(input.get(i + 1));
  80. } else if (input.get(i).equals("/")) {
  81. tmpResult = Double.parseDouble(input.get(i - 1)) / Double.parseDouble(input.get(i + 1));
  82. }
  83. input.set(i - 1, String.valueOf(tmpResult));
  84. input.remove(i);
  85. input.remove(i);
  86. i = 0;
  87. }
  88.  
  89. // 2 + 4 + 2
  90. double finalResult = 0.0;
  91. for (int i = 0; i < input.size(); i++) {
  92. double tmpResult = 0;
  93. if (input.get(i).equals("+")) {
  94. tmpResult = Double.parseDouble(input.get(i - 1)) + Double.parseDouble(input.get(i + 1));
  95. } else if (input.get(i).equals("-")) {
  96. tmpResult = Double.parseDouble(input.get(i - 1)) - Double.parseDouble(input.get(i + 1));
  97. }
  98. input.set(i + 1, String.valueOf(tmpResult));
  99. input.remove(i - 1);
  100. input.remove(i - 1);
  101. i = 0;
  102. }
  103.  
  104. System.out.println(input.get(0));
  105. doGet(req, resp);
  106. result.clear();
  107. }
  108.  
  109. private void handleOperationsWithHighestPriority(int indexOfInput) {
  110. List<String> highPrioritySigns = Arrays.asList("*", "/");
  111. if(highPrioritySigns.contains(input.get(indexOfInput))){
  112.  
  113. }
  114. }
  115.  
  116.  
  117. public void calculate(ArrayList<Double> numbers, ArrayList<String> signs) {
  118. int j = 1;
  119. setResult(numbers.get(j - 1));
  120. for (int i = 0; i < signs.size(); i++) {
  121. switch (signs.get(i)) {
  122. case "+":
  123. setResult(getResult() + numbers.get(j));
  124. break;
  125. case "-":
  126. setResult(getResult() - numbers.get(j));
  127. break;
  128. case "*":
  129. setResult(getResult() * numbers.get(j));
  130. break;
  131. case "/":
  132. if (numbers.get(j) == 0) {
  133. errorMessage = "Blad";
  134. signs.clear();
  135. numbers.clear();
  136. setResult(0);
  137. } else {
  138. setResult(getResult() / numbers.get(j));
  139. }
  140. break;
  141. }
  142.  
  143. j++;
  144. }
  145.  
  146. }
  147.  
  148. public double getResult() {
  149. return result;
  150. }
  151.  
  152. public void setResult(double result) {
  153. this.result = result;
  154. }
  155.  
  156. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement