Bonjour à tous on s'est amusé en cours à ecrire petit code en java pour une calculatrice.
le but est de pouvoir faire un calcul en tenant compte des priorités c'est à dire pour moi des signes. Pour cela j'ai donc utilisé un stringTokenizer pour delimiter le calcul et récupérer les différents membres de l'opération. Seulement on a réussi avec uniquement 02 membres.
Je voudrais avoir des pistes pour étendre le code à une suites de plusieurs membres sans limites.
Merci
Voici mon code
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54 import java.io.IOException; import java.rmi.ServerException; import java.util.StringTokenizer; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * * @author Arnaud ***** */ public class Calculatrice extends HttpServlet { @Override public void doGet (HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { this.getServletContext().getRequestDispatcher("/WEB-INF/calculatrice.jsp") .forward(request, response); } @Override public void doPost (HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { String valeurs = request.getParameter("valeurs"); StringTokenizer stMul = new StringTokenizer(valeurs,"*"); StringTokenizer stAdd = new StringTokenizer(valeurs,"+"); StringTokenizer stSou = new StringTokenizer(valeurs,"-"); StringTokenizer stDiv = new StringTokenizer(valeurs,"/"); int resultat = 0; if(stMul.countTokens()==1){ if (stAdd.countTokens()==1){ if (stSou.countTokens()==1){ if (stDiv.countTokens()==1){ System.out.println("Error"); } else {resultat= Integer.parseInt(stDiv.nextToken())/Integer.parseInt(stDiv.nextToken());} } else {resultat= Integer.parseInt(stSou.nextToken())-Integer.parseInt(stSou.nextToken());} } else {resultat= Integer.parseInt(stAdd.nextToken())+Integer.parseInt(stAdd.nextToken());} } else{resultat= Integer.parseInt(stMul.nextToken())*Integer.parseInt(stMul.nextToken());} request.setAttribute("resultat", resultat); this.getServletContext().getRequestDispatcher("/WEB-INF/calculatrice.jsp") .forward(request, response); } }
Partager