请编写一个input.jsp为某市民输入一年六次抄水表的用水量,提交后有waterfee.jsp计算该市民一年每次需缴纳的水费和累计一年的水费,并将结果在页面输出。要求判断输入的六次用水量的有效性,要求都为整数,否则提示输入的数据无效。
时间: 2023-08-31 08:44:15 浏览: 167
### 回答1:
input.jsp代码如下:
```html
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>输入水表读数</title>
</head>
<body>
<h1>请输入您一年六次抄水表的用水量:</h1>
<form action="waterfee.jsp" method="post">
<table>
<tr>
<th>月份</th>
<th>用水量</th>
</tr>
<tr>
<td>1月</td>
<td><input type="text" name="water1"></td>
</tr>
<tr>
<td>2月</td>
<td><input type="text" name="water2"></td>
</tr>
<tr>
<td>3月</td>
<td><input type="text" name="water3"></td>
</tr>
<tr>
<td>4月</td>
<td><input type="text" name="water4"></td>
</tr>
<tr>
<td>5月</td>
<td><input type="text" name="water5"></td>
</tr>
<tr>
<td>6月</td>
<td><input type="text" name="water6"></td>
</tr>
</table>
<input type="submit" value="提交">
</form>
</body>
</html>
```
waterfee.jsp代码如下:
```html
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>水费计算结果</title>
</head>
<body>
<h1>水费计算结果:</h1>
<%
// 获取表单数据
String water1Str = request.getParameter("water1");
String water2Str = request.getParameter("water2");
String water3Str = request.getParameter("water3");
String water4Str = request.getParameter("water4");
String water5Str = request.getParameter("water5");
String water6Str = request.getParameter("water6");
// 将字符串转为整型
int water1 = 0, water2 = 0, water3 = 0, water4 = 0, water5 = 0, water6 = 0;
try {
water1 = Integer.parseInt(water1Str);
water2 = Integer.parseInt(water2Str);
water3 = Integer.parseInt(water3Str);
water4 = Integer.parseInt(water4Str);
water5 = Integer.parseInt(water5Str);
water6 = Integer.parseInt(water6Str);
} catch (NumberFormatException e) {
out.println("<p>输入的数据无效,请输入整数。</p>");
return;
}
// 计算每个月用水量和总用水量
int[] waters = {water1, water2, water3, water4, water5, water6};
int totalWater = 0;
for (int water : waters) {
if (water < 0) {
out.println("<p>输入的数据无效,请输入非负整数。</p>");
return;
}
totalWater += water;
}
// 计算每次需缴纳的水费和累计一年的水费
double[] fees = new double[6];
double totalFee = 0;
for (int i = 0; i < 6; i++) {
if (waters[i] <= 10) {
fees[i] = waters[i] * 2.0;
} else if (waters[i] <= 20) {
fees[i] = 10 * 2.0 + (waters[i] - 10) * 3.0;
} else {
fees[i] = 10 * 2.0 + 10 * 3.0 + (waters[i] - 20) * 4.0;
}
totalFee += fees[i];
}
// 输出结果
out.println("<p>您一年的总用水量为:" + totalWater + " 吨。</p>");
out.println("<p>您每次需缴纳的水费分别为:</p>");
out.println("<ul>");
for (int i = 0; i < 6; i++) {
out.println("<li>" + (i+1) + "月:" + fees[i] + " 元。</li>");
}
out.println("</ul>");
out.println("<p>您一年的总水费为:" + totalFee + " 元。</p>");
%>
</body>
</html>
```
### 回答2:
input.jsp页面的代码如下:
```
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>输入抄水表的用水量</title>
</head>
<body>
<form action="waterfee.jsp" method="post">
<h3>请输入一年六次抄水表的用水量:</h3>
抄表1:<input type="text" name="water1" /><br/><br/>
抄表2:<input type="text" name="water2" /><br/><br/>
抄表3:<input type="text" name="water3" /><br/><br/>
抄表4:<input type="text" name="water4" /><br/><br/>
抄表5:<input type="text" name="water5" /><br/><br/>
抄表6:<input type="text" name="water6" /><br/><br/>
<input type="submit" value="提交" />
</form>
</body>
</html>
```
waterfee.jsp页面的代码如下:
```
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
int water1 = Integer.parseInt(request.getParameter("water1"));
int water2 = Integer.parseInt(request.getParameter("water2"));
int water3 = Integer.parseInt(request.getParameter("water3"));
int water4 = Integer.parseInt(request.getParameter("water4"));
int water5 = Integer.parseInt(request.getParameter("water5"));
int water6 = Integer.parseInt(request.getParameter("water6"));
if(water1 <= 0 || water2 <= 0 || water3 <= 0 || water4 <= 0 || water5 <= 0 || water6 <= 0){
out.println("输入的数据无效,请重新输入整数!");
}else{
int totalWater = water1 + water2 + water3 + water4 + water5 + water6;
int perTimeFee = 10; // 每次用水费用
int annualFee = perTimeFee * 6;
out.println("一年每次需缴纳的水费:" + perTimeFee + "元<br/><br/>");
out.println("累计一年的水费:" + annualFee + "元<br/><br/>");
out.println("一年的用水总量:" + totalWater + "吨<br/><br/>");
}
%>
```
用户在input.jsp页面中输入六次用水量后,点击提交按钮,表单数据会提交到waterfee.jsp页面。在waterfee.jsp中,我们首先使用request.getParameter()方法获取六次抄水表的用水量,然后判断输入的数据是否为整数。若有不为整数的情况,会提示用户数据无效。若都为整数,则计算一年的用水总量、每次需缴纳的水费以及累计一年的水费,并将结果在页面输出。
### 回答3:
input.jsp页面代码如下:
```html
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>输入抄表数据</title>
</head>
<body>
<form action="waterfee.jsp" method="post">
<h1>请输入一年六次的水表读数:</h1>
<label for="water1">第一次:</label>
<input type="number" name="water1" required><br>
<label for="water2">第二次:</label>
<input type="number" name="water2" required><br>
<label for="water3">第三次:</label>
<input type="number" name="water3" required><br>
<label for="water4">第四次:</label>
<input type="number" name="water4" required><br>
<label for="water5">第五次:</label>
<input type="number" name="water5" required><br>
<label for="water6">第六次:</label>
<input type="number" name="water6" required><br>
<input type="submit" value="计算水费">
</form>
</body>
</html>
```
waterfee.jsp页面代码如下:
```jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.util.*" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>水费计算结果</title>
</head>
<body>
<%
int water1 = Integer.parseInt(request.getParameter("water1"));
int water2 = Integer.parseInt(request.getParameter("water2"));
int water3 = Integer.parseInt(request.getParameter("water3"));
int water4 = Integer.parseInt(request.getParameter("water4"));
int water5 = Integer.parseInt(request.getParameter("water5"));
int water6 = Integer.parseInt(request.getParameter("water6"));
if (water1 < 0 || water2 < 0 || water3 < 0 || water4 < 0 || water5 < 0 || water6 < 0) {
out.println("输入的数据无效,请重新输入整数!");
} else {
int[] waters = {water1, water2, water3, water4, water5, water6};
int totalWater = waters[0] + waters[1] + waters[2] + waters[3] + waters[4] + waters[5];
int perTimeWaterFee = totalWater * 5; // 每次用水量费用
int yearlyWaterFee = perTimeWaterFee * 6; // 每年用水费用
out.println("一年每次需缴纳的水费为:" + perTimeWaterFee + "元<br>");
out.println("累计一年的水费为:" + yearlyWaterFee + "元<br>");
}
%>
</body>
</html>
```
以上代码实现了输入抄表数据并计算水费的功能,在水费计算结果页面输出每次需缴纳的水费和累计一年的水费。如果输入的数据不是整数,则会提示输入的数据无效。
阅读全文
相关推荐
![doc](https://img-home.csdnimg.cn/images/20241231044833.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![doc](https://img-home.csdnimg.cn/images/20241231044833.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![text/x-c](https://img-home.csdnimg.cn/images/20250102104920.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![docx](https://img-home.csdnimg.cn/images/20241231044901.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)