jsp编写一个小学数学题测验页面,系统随机出题,每次答一题。学生可以随时查看上一题的题目、答案以及答题正误。 利用hidden字段保存上一次的答题情况。
时间: 2024-05-16 17:15:45 浏览: 139
好的,以下是一个简单的实现:
1. 首先,我们需要创建一个 JSP 页面,可以命名为 "quiz.jsp",并在其中添加如下代码:
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>小学数学题测验</title>
</head>
<body>
<h1>小学数学题测验</h1>
<form method="post" action="quiz.jsp">
<%
// 随机生成两个数字
int num1 = (int) (Math.random() * 10) + 1;
int num2 = (int) (Math.random() * 10) + 1;
// 随机生成一个运算符
String operator = "";
switch ((int) (Math.random() * 3)) {
case 0:
operator = "+";
break;
case 1:
operator = "-";
break;
case 2:
operator = "*";
break;
}
// 计算出题目和答案
int answer = 0;
String question = "";
switch (operator) {
case "+":
answer = num1 + num2;
question = "" + num1 + " + " + num2 + " = ";
break;
case "-":
answer = num1 - num2;
question = "" + num1 + " - " + num2 + " = ";
break;
case "*":
answer = num1 * num2;
question = "" + num1 + " * " + num2 + " = ";
break;
}
// 获取上一次的答题情况
String lastAnswer = request.getParameter("lastAnswer");
String lastCorrect = request.getParameter("lastCorrect");
%>
<p><%= question %><input type="text" name="answer" value="<%= lastAnswer %>"></p>
<p><input type="submit" value="提交"></p>
<%
// 显示上一次的题目和答案
if (lastAnswer != null) {
boolean correct = Integer.parseInt(lastAnswer) == answer;
%>
<p><%= lastQuestion %> <%= lastAnswer %> <%= correct ? "正确" : "错误" %></p>
<%
}
// 保存本次的题目和答案
String thisQuestion = question;
String thisAnswer = request.getParameter("answer");
if (thisAnswer != null) {
session.setAttribute("lastQuestion", thisQuestion);
session.setAttribute("lastAnswer", thisAnswer);
session.setAttribute("lastCorrect", Integer.parseInt(thisAnswer) == answer);
}
// 获取上一次的题目和答案
lastQuestion = (String) session.getAttribute("lastQuestion");
lastAnswer = (String) session.getAttribute("lastAnswer");
lastCorrect = (Boolean) session.getAttribute("lastCorrect");
%>
<input type="hidden" name="lastQuestion" value="<%= lastQuestion %>">
<input type="hidden" name="lastAnswer" value="<%= lastAnswer %>">
<input type="hidden" name="lastCorrect" value="<%= lastCorrect %>">
</form>
</body>
</html>
```
2. 在代码中,我们首先随机生成两个数字和一个运算符,然后根据运算符计算出题目和答案。接着,我们获取上一次的答题情况,并在表单中显示本次的题目和上一次的答案(如果有的话)。同时,我们在隐藏域中保存上一次的题目和答案以及正确与否的标记。
3. 当用户提交答案时,我们从表单中获取用户输入的答案,将本次的题目和答案保存到 Session 中,并且再次显示上一次的题目和答案(如果有的话)。
这样,我们就实现了一个简单的小学数学题测验页面,并且可以随时查看上一题的题目、答案以及答题正误。需要注意的是,本例中的代码仅供参考,实际应用中需要根据需求进行修改和优化。
阅读全文