一、设计思想

①设计三个页面,分别为题数设置页面,题目显示页面以及结果显示页面。

②设计题数设置页面。

③从题数设置页面接收题数,作为循环次数。

④利用随机数生成相应符合条件表达式,并存入数据库。

⑤接收网页传来的解答,与数据库中的标准答案比较,得出成绩。

二、源程序代码

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(小学生四则运算)的更多相关文章

  1. 30道小学生四则运算题C/C++编程

    软件工程科课上,老师通过实例讲解什么是程序,程序和软件的区别,要求我们通过短时间写一道编程题, 题目就是编写30道小学生四则运算题.以下就是源代码: #include<iostream.h> ...

  2. 《软件工程》小组团队项目-小学生四则运算APP(First Sprint)

    <软件工程>团队项目我们小组选择了小学生四则运算APP,在上学期原有的项目基础上进行更新升级.(自我感觉我们团队上学期的小学生四则运算APP是较为成功且实用的,不过这学期学习到了新的知识, ...

  3. 第三周结对项目--小学生四则运算CAI软件汇报及总结(UI/web)

    前言: 这周是和我队友苏卫喜一起结对开发,我主要是写项目文档需求分析,她是通过我的需求文档来进行做思维导图,之后我们通过思维导图一起讨论用户界面设计. 以下就是我的需求分析1.0版本 1.   软件名 ...

  4. 作业6小学生四则运算测试APP的NABCD模型

    小学生四则运算测试NABCD模型 组员:李新,朱浩龙,叶煜稳,陈俊金,林德麟 (1)  N (Need 需求) 需求分析: 四则运算是小学生学习数学的核心和基础,必须经过大量的练习才能熟练掌握,但是一 ...

  5. 作业六:小学生四则运算之NABCD模型与产品Backlog。

    NABCD模型与产品Backlog NABCD模型 ) N (Need 需求) 方便了老师和学生,使他们可以想要的时候随时可以得到,省时省力,快速出题,马上得到答案. ) A (Approach 做法 ...

  6. 使用MFC做一个简单的‘能自动生成小学生四则运算的软件’

    这是软件工程的第一次作业!但由于我们python还没入门,所以这次的要求是‘语言不限’. 小学期做过一个关于MFC的‘资金管理系统’,也正好可以有界面,所以就选择了自己很熟悉的MFC来做这个作业! 1 ...

  7. java小学生四则运算带面板版 但我不知道为什么同类变量却进不了动作监听中去

    ---恢复内容开始--- package yun; import java.util.*; import java.awt.*; import java.awt.event.ActionEvent; ...

  8. 3.结对编程成果报告(小学生四则运算的出题程序,Java实现)

    程序名称:小学生四则运算的出题程序 先附上代码: package com.makequestion; import java.text.DecimalFormat;import java.util.R ...

  9. 第一章-第一题(小学生四则运算)--By郭青云

    1.项目需求 a) 除了整数以外,还要支持真分数的四则运算. (例如:  1/6 + 1/8 = 7/24) b) 让程序能接受用户输入答案,并判定对错. 最后给出总共 对/错 的数量. c) 逐步扩 ...

随机推荐

  1. 从输入url到页面展示到底发生了什么

    阅读目录 1.输入地址 2.浏览器查找域名的 IP 地址 3.浏览器向 web 服务器发送一个 HTTP 请求 4.服务器的永久重定向响应 5.浏览器跟踪重定向地址 6.服务器处理请求 7.服务器返回 ...

  2. Web.config配置customErrors mode为Off后依然不显示具体错误的可能原因。

    有时候我们的网站程序在本地运行没有问题,但在上传到远程服务器后则报错.这就需要我们了解具体错误,但IIS默认只显示统一的运行时错误,想要知道具体错误就需要配置Web.config中customErro ...

  3. Python从入门到精通

    最近研究了一下Python,名不虚传,确实挺精彩. 学习一门新的语言,我认为从入门到精通的做法是:下SDK.装IDE.练教程.结合工作应用.不断踩坑进阶.梳理总结 1.下SDK(2.7.15) 下载地 ...

  4. Web API 方法的返回类型、格式器、过滤器

    一.Action方法的返回类型 a) 操作方法的返回类型有四种:void.简单或复杂类型.HttpResponseMessage类型.IHttpActionResult类型. b) 如果返回类型为vo ...

  5. 腾讯X5WebView集成及在移动端中使用

    工作中经常涉及H5网页的加载工作,最多使用的就是安卓系统控件WebView,但是当网页内容比较多的时候,需要等待很久才能加载完,加载完后用户才能看到网页中的内容,这样用户需要等很久,体验很差. 那能不 ...

  6. Chrome及Chrome内核浏览器改变开发者工具字体大小

    1.打开浏览器,按F12调用开发者工具 2.按Ctrl+数字加号键,可看到字体变大,按Ctrl+数字减号键,字体变小 3.重新启动浏览器后字体仍然保持修改后的字体大小

  7. webApi core2 DI通过代码来获取容器里面已注入的对象

    请求服务 来自 HttpContext 的一次 ASP.NET 请求中可用的服务通过 RequestServices 集合公开的. 请求服务将你配置的服务和请求描述为应用程序的一部分.当你的对象指定依 ...

  8. CPUFreq驱动

    CPUFreq子系统位于 drivers/cpufreq目录下,负责进行运行过程中CPU频率和电压的动态调整,即DvFS( Dynamic Voltage Frequency Scaling,动态电压 ...

  9. centos7下安装指定版本mysql5.7.23

    现在mysql版本已经到MySQL 8.0(GA)稳定版本了,所以需求是想简单又快速在centos7下安装指定版本例如MySQL 5.7(GA)版本有下面这种方法 首先需要到mysql官网这里下载对应 ...

  10. 【PAT】B1057 数零壹(20 分)

    简单题,简单字符串处理加简单数学进制转换 #include<stdio.h> #include<string.h> #include<ctype.h> int ma ...