Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package pl.edu.ug.tent.springweb;
- import javax.servlet.ServletException;
- import javax.servlet.annotation.WebServlet;
- import javax.servlet.http.HttpServlet;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import java.io.IOException;
- import java.io.PrintWriter;
- import java.util.ArrayList;
- import java.util.Arrays;
- import java.util.LinkedList;
- import java.util.List;
- @WebServlet("/data")
- public class DataServlet extends HttpServlet {
- private double result = 0;
- ArrayList<Double> numbers = new ArrayList<>();
- ArrayList<String> signs = new ArrayList<>();
- String errorMessage = "";
- boolean clearArrays = false;
- List<String> input = new ArrayList<>();
- @Override
- protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
- resp.setContentType("text/html");
- String button = req.getParameter("button");
- PrintWriter out = resp.getWriter();
- resp.setContentType("text/html");
- out.println("<html><body>");
- out.println("<form action='/data' method='POST'>");
- out.println("<input type='text' name='number'>");
- out.println("<input type='submit' name='button' value='+'>");
- out.println("<input type='submit' name='button' value='-'>");
- out.println("<input type='submit' name='button' value='*'>");
- out.println("<input type='submit' name='button' value='/'>");
- out.println("<input type='submit' name='button' value='='>");
- if (button.equals("="))
- out.println(" Wynik: " + getResult());
- setResult(0);
- out.println("</form>");
- out.println("<br><br>");
- out.println(errorMessage);
- out.println("<br><br>");
- for (int i = 0; i < signs.size(); i++) {
- out.println("Operacja nr " + (i + 1) + ": " + numbers.get(i) + " " + signs.get(i));
- out.println("<br>");
- }
- out.println("</body></html>");
- setResult(0);
- if (clearArrays) {
- signs.clear();
- numbers.clear();
- }
- }
- @Override
- protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
- String numbers = req.getParameter("number");
- String sign = req.getParameter("button");
- if (!sign.equals("=")) {
- input.add(numbers);
- input.add(sign);
- doGet(req, resp);
- }
- List<String> result = new ArrayList<>();
- for (int i = 0; i < input.size(); i++) {
- double tmpResult = 0;
- if (input.get(i).equals("*")) {
- tmpResult = Double.parseDouble(input.get(i - 1)) * Double.parseDouble(input.get(i + 1));
- } else if (input.get(i).equals("/")) {
- tmpResult = Double.parseDouble(input.get(i - 1)) / Double.parseDouble(input.get(i + 1));
- }
- input.set(i - 1, String.valueOf(tmpResult));
- input.remove(i);
- input.remove(i);
- i = 0;
- }
- // 2 + 4 + 2
- double finalResult = 0.0;
- for (int i = 0; i < input.size(); i++) {
- double tmpResult = 0;
- if (input.get(i).equals("+")) {
- tmpResult = Double.parseDouble(input.get(i - 1)) + Double.parseDouble(input.get(i + 1));
- } else if (input.get(i).equals("-")) {
- tmpResult = Double.parseDouble(input.get(i - 1)) - Double.parseDouble(input.get(i + 1));
- }
- input.set(i + 1, String.valueOf(tmpResult));
- input.remove(i - 1);
- input.remove(i - 1);
- i = 0;
- }
- System.out.println(input.get(0));
- doGet(req, resp);
- result.clear();
- }
- private void handleOperationsWithHighestPriority(int indexOfInput) {
- List<String> highPrioritySigns = Arrays.asList("*", "/");
- if(highPrioritySigns.contains(input.get(indexOfInput))){
- }
- }
- public void calculate(ArrayList<Double> numbers, ArrayList<String> signs) {
- int j = 1;
- setResult(numbers.get(j - 1));
- for (int i = 0; i < signs.size(); i++) {
- switch (signs.get(i)) {
- case "+":
- setResult(getResult() + numbers.get(j));
- break;
- case "-":
- setResult(getResult() - numbers.get(j));
- break;
- case "*":
- setResult(getResult() * numbers.get(j));
- break;
- case "/":
- if (numbers.get(j) == 0) {
- errorMessage = "Blad";
- signs.clear();
- numbers.clear();
- setResult(0);
- } else {
- setResult(getResult() / numbers.get(j));
- }
- break;
- }
- j++;
- }
- }
- public double getResult() {
- return result;
- }
- public void setResult(double result) {
- this.result = result;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement