javaweb1(小学生四则运算)
一、设计思想
①设计三个页面,分别为题数设置页面,题目显示页面以及结果显示页面。
②设计题数设置页面。
③从题数设置页面接收题数,作为循环次数。
④利用随机数生成相应符合条件表达式,并存入数据库。
⑤接收网页传来的解答,与数据库中的标准答案比较,得出成绩。
二、源程序代码
number.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>整数二级菜单页面</title>
</head>
<body background="../img/4.jpg">
<form name="form1" method=post action="index.jsp">
<center> <font color=blue >欢迎来到口算练习网</font></center>
<table align="center">
<tr>
<td> <font color=blue >请输入需要生成的题目数量</font></td>
<td><input name="shuliang" id="shuliang" type="text" > </td>
</tr>
</table>
<center><input type="submit" value="开始出题"> </center>
</form>
</body>
</html>
index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" import="java.sql.Connection,java.sql.DriverManager,java.sql.ResultSet"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>整数页面</title>
</head>
<body background="../img/5.jpg">
<center><font color=green >做题开始了呦!</font></center>
<%
String driverStr = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
Class.forName(driverStr).newInstance();
String connStr = "jdbc:sqlserver://localhost:1433; DatabaseName=source";
String dbusername = "sa";
String dbpassword = "123456";
Connection conn=null;
java.sql.Statement stmt=null;
conn=DriverManager.getConnection(connStr, dbusername, dbpassword);
stmt=conn.createStatement();
int ans=0;
String j=request.getParameter("shuliang");
int sl=Integer.valueOf(j);
String []ss=new String[sl];
String s="";
String s1="-";
String daan[] =new String [sl];
String ans2[]=new String[sl];
int a[]=new int [sl];
int b[]=new int [sl];
int a1[]=new int [sl];
int b1[]=new int [sl];
int a2[]=new int [sl];
int flag=0;
int flag1=0;
int c[]=new int [sl];
for(int i=0;i<sl;)
{
daan[i]="name"+i;
flag1=0;
a[i]=(int)(Math.random()*98+1);
b[i]=(int)(Math.random()*98+1);
c[i]=(int)(Math.floor((Math.random()*5)));
a1[i]=(int)(Math.random()*8+1);
b1[i]=(int)(Math.random()*8+1);
a2[i]=(int)(Math.random()*98+1);
if(c[i]==0){
s="+";
if(ans<100){
ans=a[i]+b[i];
ss[i]=a[i]+s+b[i];
flag1=1;
}
}
else if(c[i]==1){
s="-";
if(a[i]>b[i]){
ans=a[i]-b[i];
ss[i]=a[i]+s+b[i];
}
else if(a[i]<b[i]){
ans=b[i]-a[i];
ss[i]=b[i]+s+a[i];
}
flag1=1;
}
else if(c[i]==2){
s="*";
ans=a1[i]*b1[i];
ss[i]=a1[i]+s+b1[i];
flag1=1;
}
else if(c[i]==3){
s="/";
int sum=a1[i]*b1[i];
ans=b1[i];
ss[i]=sum+s+a1[i];
flag1=1;
}
else{
s="+";
ans=a[i]+b[i]-a2[i];
int sum=a[i]+b[i];
if(ans>0&&sum<100){
flag1=1;
ss[i]=a[i]+s+b[i]+s1+a2[i];
}
}
if(flag1==1){
String sql="INSERT INTO size VALUES ('"+ss[i]+"','"+ans+"')";
stmt.executeUpdate(sql);
ans2[i]=""+ans;
out.print(ss[i]); %>
<br>
<form name="form2" method="post" action="result.jsp">
<font color=green >请输入答案<input name=<%=daan[i] %> type="text" id="daan"></font>
<br/> <%
i++;
session.setAttribute("v1", ss);
session.setAttribute("v2", ans2);
}
}
%>
<input type="submit" value="统计结果"> </form>
</body>
</html>
result.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body background="../img/7.jpg">
<%
String[] s1= (String[])session.getAttribute("v1");
String[] answer= (String[])session.getAttribute("v2");
String[] daan=new String[s1.length];
int count=0;//正确答案的个数
for(int i=0;i<s1.length;i++)
{
out.print("运算式为:");
out.print(s1[i]+" ");
out.print("您的输入结果为:");
daan[i]=request.getParameter("name"+i);
out.print(daan[i]+" ");
out.print("正确结果为:");
out.print(answer[i]);
if(Integer.parseInt(daan[i])==Integer.parseInt(answer[i]))
{
out.print("恭喜你答对了!");
count++;
}
else
{
out.print("很遗憾,你答错了!");
}
out.print("<br>");
}
out.print("你一共答对的题目数:");
out.print(count);
%>
</body>
</html>
三、运行结果截图



四、编程总结分析
这次程序说实话编下来很累很累,因为基本还是一窍不通的情况,所以基本一切的知识都是自己查询加上问人再一个个尝试得出来的。但是编完之后很有成就感,看着自己的网页,虽然还不成熟,但是还是很开心。
五、PSP0级
1.项目计划总结
时间计划:周三下午1点开始,一直做到结束
内容规划:从下午开始完成整个网页开发
2.时间记录日志
实际时间:下午1点-10点20
内容基本完成
3.缺陷记录日志
①界面不美观,字体大小没有调整的好
②时间设置没有写入
javaweb1(小学生四则运算)的更多相关文章
- 30道小学生四则运算题C/C++编程
软件工程科课上,老师通过实例讲解什么是程序,程序和软件的区别,要求我们通过短时间写一道编程题, 题目就是编写30道小学生四则运算题.以下就是源代码: #include<iostream.h> ...
- 《软件工程》小组团队项目-小学生四则运算APP(First Sprint)
<软件工程>团队项目我们小组选择了小学生四则运算APP,在上学期原有的项目基础上进行更新升级.(自我感觉我们团队上学期的小学生四则运算APP是较为成功且实用的,不过这学期学习到了新的知识, ...
- 第三周结对项目--小学生四则运算CAI软件汇报及总结(UI/web)
前言: 这周是和我队友苏卫喜一起结对开发,我主要是写项目文档需求分析,她是通过我的需求文档来进行做思维导图,之后我们通过思维导图一起讨论用户界面设计. 以下就是我的需求分析1.0版本 1. 软件名 ...
- 作业6小学生四则运算测试APP的NABCD模型
小学生四则运算测试NABCD模型 组员:李新,朱浩龙,叶煜稳,陈俊金,林德麟 (1) N (Need 需求) 需求分析: 四则运算是小学生学习数学的核心和基础,必须经过大量的练习才能熟练掌握,但是一 ...
- 作业六:小学生四则运算之NABCD模型与产品Backlog。
NABCD模型与产品Backlog NABCD模型 ) N (Need 需求) 方便了老师和学生,使他们可以想要的时候随时可以得到,省时省力,快速出题,马上得到答案. ) A (Approach 做法 ...
- 使用MFC做一个简单的‘能自动生成小学生四则运算的软件’
这是软件工程的第一次作业!但由于我们python还没入门,所以这次的要求是‘语言不限’. 小学期做过一个关于MFC的‘资金管理系统’,也正好可以有界面,所以就选择了自己很熟悉的MFC来做这个作业! 1 ...
- java小学生四则运算带面板版 但我不知道为什么同类变量却进不了动作监听中去
---恢复内容开始--- package yun; import java.util.*; import java.awt.*; import java.awt.event.ActionEvent; ...
- 3.结对编程成果报告(小学生四则运算的出题程序,Java实现)
程序名称:小学生四则运算的出题程序 先附上代码: package com.makequestion; import java.text.DecimalFormat;import java.util.R ...
- 第一章-第一题(小学生四则运算)--By郭青云
1.项目需求 a) 除了整数以外,还要支持真分数的四则运算. (例如: 1/6 + 1/8 = 7/24) b) 让程序能接受用户输入答案,并判定对错. 最后给出总共 对/错 的数量. c) 逐步扩 ...
随机推荐
- Docker 镜像运行时区不准确处理
启动 tomcat 容器时发现容器时间与本地时间不一致,相差 8 个小时 docker run -d --rm -p 8888:8080 tomcat:latest # 查看容器 ID docker ...
- 【代码笔记】Web-ionic-按钮
一,效果图. 二,代码.index.html文件如下所示. <!DOCTYPE html> <html> <head> <meta charset=" ...
- python之初识函数
函数: 函数是对功能或动作的封装. 函数的语法和定义: def 函数名(): 函数体 调用函数: 函数名() 函数返回值: return : 返回 def yue(): print("拿出手 ...
- 函数节流scroll,兼容火狐滚轮事件
//函数节流 var wheelTimeout; var wheelFun = function (func) { if (wheelTimeout) { return; } func(); whee ...
- Android 时间与日期操作类
获取本地日期与时间 public String getCalendar() { @SuppressLint("SimpleDateFormat") SimpleDateFormat ...
- 浅谈Redis之慢查询日志
首先我们需要知道redis的慢查询日志有什么用?日常在使用redis的时候为什么要用慢查询日志? 第一个问题: 慢查询日志是为了记录执行时间超过给定时长的redis命令请求 第二个问题: 让使用者更好 ...
- (后台)详细了解java中的null(转)
转自CSDN: 相信大家对于NullPointException 这个让人又爱又恨的不陌生吧..对于Java程序员来说,null是令人头痛的东西.时常会受到空指针异常(NPE)的骚扰 .今天我们就来谈 ...
- The Tomcat connector configured to listen on port 8080 failed to start. The port may already be in use or the connector may be misconfigured
springboot 8080端口被占用报错:The Tomcat connector configured to listen on port 8080 failed to start. The p ...
- IE push方法,最后一个参数后面不能跟",",否则报语法错误
var columns = [[]]; columns[0].push( { field: 'ADDNAME', title: '添加人', width: 80, }, { field: 'ADDDT ...
- Spring系列(1)--IOC 和 DI
IOC 和 DI IOC 原理 xml 配置文件配置 bean dom4j 读取配置文件 工厂设计模式 反射机制创建对象 applicationContext.xml 配置文件,该配置文件名可自定义: ...