Exercice JSP JAVA et les boucles while
Soit le programme JSP suivant calculant le total d'une facture en tenant compte si des produits sont taxables ou non :
-------------------------------------------------------------------------------------
1. <form method="POST" enctype="multipart/form-data">
2. Fichier à charger : <input type="file" name="fichier" size="20"><br>
3. <input type="submit"><br>
4. </form>
5. <%@ page import='com.oreilly.servlet.*' %>
6. <%@ page import='java.io.*' %>
7. <%@ page import='java.util.*' %>
8. <%!
9. /** Taux de la TPS */
10. final double TPS = 0.07;
11.
12. /** Taux de la TVQ */
13. final double TVQ = 0.075;
14. %>
15.
16. <%
17. if (request != null && request.getContentType() != null) {
18. MultipartRequest req = new MultipartRequest(request,"C:\\temp");
19.
20. File fichier = req.getFile("fichier");
21. if (fichier == null)
22. return;
23.
24. out.print("<table border='1'>");
25.
26. double prixUnitaire;
27. int quantité;
28. boolean taxable;
29.
30. double totalNonTaxable=0.0;
31. double totalTaxable=0.0;
32. double montantTPS;
33. double totalAprèsTPS;
34. double montantTVQ;
35. double totalAprèsTaxes;
36.
37. String ligne;
38.
39. out.print("<tr>");
40. out.print("<th>Prix unitaire</th>");
41. out.print("<th>Quantité</th>");
42. out.print("<th>Taxable</th>");
43. out.print("<th>Total taxable</th>");
44. out.print("<th>Total non-taxable</th>");
45. out.print("</tr>");
46.
47. BufferedReader reader = new BufferedReader(new FileReader(fichier));
48.
49. while ( . . . ) {
50. double total=0;
51.
52. out.print("<tr>");
53. StringTokenizer champs = new StringTokenizer(ligne);
54.
55. String valeur = (String)(champs.nextElement());
56. prixUnitaire = Double.parseDouble(valeur);
57. out.print("<td align='center' align='center'>"+valeur+"</td>");
58.
59. valeur = (String)(champs.nextElement());
60. quantité = Integer.parseInt(valeur);
61. out.print("<td align='center'>"+valeur+"</td>");
62.
63. valeur = (String)(champs.nextElement());
64. taxable = valeur.equals("oui");
65. out.print("<td align='center'>"+valeur+"</td>");
66.
67. // Question b)
68.
69. out.print("</tr>");
70. }
71.
72. reader.close();
73.
74. // Question c)
75.
76. out.print("<td colspan='3'>Totaux</td><td>" + (totalTaxable));
77. out.print("</td><td>" + totalNonTaxable+"</td>");
78.
79. out.print("</table>");
80.
81. out.println("TPS : "+montantTPS);
82. out.println("TVQ : "+montantTVQ);
83. out.println("Total : "+totalAprèsTaxes);
84. }
85. %>
-------------------------------------------------------------------------------------
TRAVAIL A FAIRE :
a) Ajoutez la condition à l'instruction while de la ligne 50.
b) Ajoutez les instructions Java permettant de calculer totalTaxable et totalNonTaxable à la ligne 67.
c) Ajoutez les instructions Java permettant de calculer montantTPS, totalAprèsTPS, montantTVQ et totalAprèsTaxes à la ligne 74.
-------------------------------------------------------------------------------------
1. <form method="POST" enctype="multipart/form-data">
2. Fichier à charger : <input type="file" name="fichier" size="20"><br>
3. <input type="submit"><br>
4. </form>
5. <%@ page import='com.oreilly.servlet.*' %>
6. <%@ page import='java.io.*' %>
7. <%@ page import='java.util.*' %>
8. <%!
9. /** Taux de la TPS */
10. final double TPS = 0.07;
11.
12. /** Taux de la TVQ */
13. final double TVQ = 0.075;
14. %>
15.
16. <%
17. if (request != null && request.getContentType() != null) {
18. MultipartRequest req = new MultipartRequest(request,"C:\\temp");
19.
20. File fichier = req.getFile("fichier");
21. if (fichier == null)
22. return;
23.
24. out.print("<table border='1'>");
25.
26. double prixUnitaire;
27. int quantité;
28. boolean taxable;
29.
30. double totalNonTaxable=0.0;
31. double totalTaxable=0.0;
32. double montantTPS;
33. double totalAprèsTPS;
34. double montantTVQ;
35. double totalAprèsTaxes;
36.
37. String ligne;
38.
39. out.print("<tr>");
40. out.print("<th>Prix unitaire</th>");
41. out.print("<th>Quantité</th>");
42. out.print("<th>Taxable</th>");
43. out.print("<th>Total taxable</th>");
44. out.print("<th>Total non-taxable</th>");
45. out.print("</tr>");
46.
47. BufferedReader reader = new BufferedReader(new FileReader(fichier));
48.
49. while ( . . . ) {
50. double total=0;
51.
52. out.print("<tr>");
53. StringTokenizer champs = new StringTokenizer(ligne);
54.
55. String valeur = (String)(champs.nextElement());
56. prixUnitaire = Double.parseDouble(valeur);
57. out.print("<td align='center' align='center'>"+valeur+"</td>");
58.
59. valeur = (String)(champs.nextElement());
60. quantité = Integer.parseInt(valeur);
61. out.print("<td align='center'>"+valeur+"</td>");
62.
63. valeur = (String)(champs.nextElement());
64. taxable = valeur.equals("oui");
65. out.print("<td align='center'>"+valeur+"</td>");
66.
67. // Question b)
68.
69. out.print("</tr>");
70. }
71.
72. reader.close();
73.
74. // Question c)
75.
76. out.print("<td colspan='3'>Totaux</td><td>" + (totalTaxable));
77. out.print("</td><td>" + totalNonTaxable+"</td>");
78.
79. out.print("</table>");
80.
81. out.println("TPS : "+montantTPS);
82. out.println("TVQ : "+montantTVQ);
83. out.println("Total : "+totalAprèsTaxes);
84. }
85. %>
-------------------------------------------------------------------------------------
TRAVAIL A FAIRE :
a) Ajoutez la condition à l'instruction while de la ligne 50.
b) Ajoutez les instructions Java permettant de calculer totalTaxable et totalNonTaxable à la ligne 67.
c) Ajoutez les instructions Java permettant de calculer montantTPS, totalAprèsTPS, montantTVQ et totalAprèsTaxes à la ligne 74.
Article plus récent Article plus ancien