java 四则运算_四则运算————javaweb版
1.设计思路:
定义一个类arithmetic,在该类中的定义相关成员,随机产生的题目以及答案用数组承接,在第一个jsp里面用户输入题目数量以及设置做题时间,将这两个数传到第二个jsp页面,在此页面定义类对象,调用相关类函数,进行出题:
最后将算式的数组和答案的数组以及用户输入的值传到第三个jsp页面,进行答案的校对即可。
源代码:
arithmetic.java:
package com.jaovo.msg.model;
public class arithmetic {
public int []answer;//答案
public int shumu;//出题数目
public String []suanshi;//算式
public void setsuanshi(String []suanshi)
{
this.suanshi=suanshi;
}
public String [] biaodashi(int n)
{
shumu=n;
answer=new int[n];
int a,b,c,d1 = 0,d,d2=0;
int []mixture=new int[2];
String []biaodashi=new String[n];
for(int i=0;i
{
a=(int)(Math.random()*100)+1;//1-100
b=(int)(Math.random()*100)+1;
c=(int)(Math.random()*5)+1;//随机生成一个1-5的整数,4表示加法,1表示减法,2表示乘法,3表示除法,5表示混合
if(c==5)//混合运算
{
do
{
for(int m=0;m<2;m++)
{
mixture[m]=(int)(Math.random()*2);//0-1
}//控制运算符
a=(int)(Math.random()*100)+1;
b=(int)(Math.random()*100)+1;
d=(int)(Math.random()*100)+1;//生成三个数
if(mixture[0]==0&&mixture[1]==0)
{
biaodashi[i]=a+"+"+b+"+"+d+" = ";
d1=a+b+d;
}
if(mixture[0]==1&&mixture[1]==1)
{
biaodashi[i]=a+"-"+b+"-"+d+" = ";
d2=a-b;
d1=a-b-d;
}
if(mixture[0]==0&&mixture[1]==1)
{
biaodashi[i]=a+"+"+b+"-"+d+" = ";
d1=a+b-d;
}
if(mixture[0]==1&&mixture[1]==0)
{
biaodashi[i]=a+"-"+b+"+"+d+" = ";
d2=a-b;
d1=a-b+d;
}
}while(d2<0||d1<0);
answer[i]=d1;
}
if(c==4)//单加法
{
d1=a+b;
biaodashi[i]=a+"+"+b+" = ";
while(d1>100)
{
a=(int)(Math.random()*100)+1;
b=(int)(Math.random()*100)+1;//1-100 包括1和100 不加1 表示0-99
d1=a+b;
}
biaodashi[i]=a+"+"+b+" = ";
answer[i]=d1;
System.out.print(a+"+"+b+"= ");
}
if(c==1)//单减法
{
d1=a-b;
while(d1<0)
{
a=(int)(Math.random()*100)+1;
b=(int)(Math.random()*100)+1;
d1=a-b;
}
biaodashi[i]=a+"-"+b+" = ";
answer[i]=d1;
System.out.print(a+"-"+b+"= ");
}
if(c==2)//乘法
{
a=(int)(Math.random()*10);//0-9
b=(int)(Math.random()*10);//1-100 包括1和100 不加1 表示0-99
d1=a*b;
while(a<1||b<1||d1>81)
{
a=(int)(Math.random()*10);//0-9
b=(int)(Math.random()*10);//1-100 包括1和100 不加1 表示0-99
}
d1=a*b;
biaodashi[i]=a+"*"+b+" = ";
answer[i]=d1;
System.out.print(a+"*"+b+"= ");
}
if(c==3)//除法
{
d1=a/b;
while(a%b!=0||a/b>9||(a<=81&&b>=10)||(a>9&&a==b)||(a>81))
{
a=(int)(Math.random()*100)+1;
b=(int)(Math.random()*100)+1;//1-100 包括1和100 不加1 表示0-99
}
d1=a/b;
biaodashi[i]=a+"÷"+b+" = ";
answer[i]=d1;
System.out.print(a+"÷"+b+"= ");
}
//查重
for(int k=i-1;k>=0;k--)
{
while(biaodashi[i].equals(biaodashi[k]))
{
a=(int)(Math.random()*100)+1;//1-100
b=(int)(Math.random()*100)+1;
c=(int)(Math.random()*5)+1;//随机生成一个1-5的整数,4表示加法,1表示减法,2表示乘法,3表示除法,5表示混合
if(c==5)
{
do//混合运算
{
for(int m=0;m<2;m++)
{
mixture[m]=(int)(Math.random()*2);//0-1
}//控制运算符
a=(int)(Math.random()*100)+1;
b=(int)(Math.random()*100)+1;
d=(int)(Math.random()*100)+1;//生成三个数
if(mixture[0]==0&&mixture[1]==0)
{
biaodashi[i]=a+"+"+b+"+"+d+" = ";
d1=a+b+d;
}
if(mixture[0]==1&&mixture[1]==1)
{
biaodashi[i]=a+"-"+b+"-"+d+" = ";
d2=a-b;
d1=a-b-d;
}
if(mixture[0]==0&&mixture[1]==1)
{
biaodashi[i]=a+"+"+b+"-"+d+" = ";
d1=a+b-d;
}
if(mixture[0]==1&&mixture[1]==0)
{
biaodashi[i]=a+"-"+b+"+"+d+" = ";
d2=a-b;
d1=a-b+d;
}
}while(d2<0||d1<0);
answer[i]=d1;
}
if(c==4)
{
d1=a+b;
biaodashi[i]=a+"+"+b+" = ";
while(d1>100)
{
a=(int)(Math.random()*100)+1;
b=(int)(Math.random()*100)+1;//1-100 包括1和100 不加1 表示0-99
d1=a+b;
}
biaodashi[i]=a+"+"+b+" = ";
answer[i]=d1;
System.out.print(a+"+"+b+"= ");
}
if(c==1)
{
d1=a-b;
while(d1<0)
{
a=(int)(Math.random()*100)+1;
b=(int)(Math.random()*100)+1;
d1=a-b;
}
biaodashi[i]=a+"-"+b+" = ";
answer[i]=d1;
System.out.print(a+"-"+b+"= ");
}
if(c==2)
{
a=(int)(Math.random()*10);//0-9
b=(int)(Math.random()*10);//1-100 包括1和100 不加1 表示0-99
d1=a*b;
while(a<1||b<1||d1>81)
{
a=(int)(Math.random()*10);//0-9
b=(int)(Math.random()*10);//1-100 包括1和100 不加1 表示0-99
}
d1=a*b;
biaodashi[i]=a+"*"+b+" = ";
answer[i]=d1;
System.out.print(a+"*"+b+"= ");
}
if(c==3)
{
while(a%b!=0)
{
a=(int)(Math.random()*100)+1;
b=(int)(Math.random()*100)+1;//1-100 包括1和100 不加1 表示0-99
}
d1=a/b;
biaodashi[i]=a+"÷"+b+" = ";
answer[i]=d1;
System.out.print(a+"÷"+b+"= ");
}
}
}
}
return biaodashi;
}
}
chutijiemian.jsp:
pageEncoding="UTF-8"%>
出题数目
WELCOME
你想做几道题来着? | ||
设置时间: | ||
chuti.jsp: pageEncoding="UTF-8"%> 出题页 //接收客户端传递过来的参数 request.setCharacterEncoding("UTF-8"); String time = request.getParameter("usertime");//接收时间 int time1=0; int x=1; for(int m=0;m { time1+=(time.charAt(time.length()-m-1)-'0')*x; x*=10; }//字符串类型的数字转换为整型 成为参数 %> var c=1; var t; var num1= function timeCount() { document.getElementById("txt").innerHTML=num1-c; c=c+1; t=setTimeout("timeCount()",1000); if(num1==c-1) { clearTimeout(t); alert("时间到了!"); load(); } } function load(){ document.getElementById("anniu").click(); } window.onload =function(){ timeCount();//onload 事件会在页面或图像加载完成后立即发生。 } 开始答题 |
倒计时: |
//接收客户端传递过来的参数
request.setCharacterEncoding("UTF-8");
String num = request.getParameter("username");//接收出题的数目
int num1=0;
x=1;
for(int m=0;m
{
num1+=(num.charAt(num.length()-m-1)-'0')*x;
x*=10;
}//字符串类型的数字转换为整型 成为参数
arithmetic demo=new arithmetic();//定义对象
String []biaodashi1=new String[num1];
biaodashi1=demo.biaodashi(num1);//接收算式
demo.setsuanshi(biaodashi1);//调用函数 给数据成员算式赋值 以便用于传递
for(int i=0;i
{
out.println(biaodashi1[i]);//输出表达式
%>
out.println("
");
out.println("
");//换行
}
session.setAttribute("jieshou",demo);//用于下一个界面的接收本界面的这个类的全部内容result 所以定义的对象
%>
提交
Result.jsp:
pageEncoding="UTF-8"%>
出题
正确答案
//接收客户端传递过来的参数
arithmetic newdemo=new arithmetic();
newdemo=(arithmetic)session.getAttribute("jieshou");//用于接收CHUti界面传过来的数 (对象)
String []yoursolution=new String[newdemo.shumu];//接收传过来的文本框的答案
int sumright=0,sumerror=0,empty=0;
for(int i=0;i
{
request.setCharacterEncoding("UTF-8");
out.print(newdemo.suanshi[i]);//正确的算式
yoursolution[i] = request.getParameter("result["+i+"]");//你的答案
out.println(yoursolution[i]);
%>
out.println("正确答案是: ");
out.println(newdemo.answer[i]);//正确的答案
%>
int num1=0;
int x=1;
for(int m=0;m
{
num1+=(yoursolution[i].charAt(yoursolution[i].length()-m-1)-'0')*x;
x*=10;
}//字符串类型的数字转换为整型 用于和正确答案比较 因为从出题界面接受的答案是字符串类型
if(yoursolution[i].equals(""))
{
out.println("你没有回答哦!");
empty++;
}
else if(num1==newdemo.answer[i])
{
sumright++;
out.println("恭喜你!回答正确!");
}
else
{
sumerror++;
out.println("回答错误,再接再厉!");
}
out.println("
");//换行
}
out.println("回答正确了"+sumright+"道题!");
out.println("
");//换行
out.println("回答错误了"+sumerror+"道题!");
out.println("
");//换行
out.println("没有回答"+empty+"道题!");
out.println("
");//换行
%>
退出
运行结果:
:
已接触Javawe快一个月了,因为是刚刚接触这个网页吧,所以会的很少,不会的很多。对于Javaweb,我感觉是个很神奇的,参数的传递,自动调用,自动启动等等,这些都是没见过的,当然还要进一步理解!写的慢的原因,对Javaweb不是很了解,只能一步一步来
时间记录日志:
学生:马佳慧 日期:2017/12/5
教师:王建民 课程:软件工程概论
日期\时间
开始时间
结束时间
中断时间
净时间
活动
备注
12/1
9:00
11:30
10:30
120分钟
自习,练习
课间
14:00
16:30
15:30
80分钟
练习
中场休息
12/2
9:30
11:00
10:30
80分钟
听课,练习
中场休息
14:30
18:00
16:00
200分钟
上课
中场休息
12/3
8:00
11:30
10:00
150分钟
写作业,练习,提交作业
写 四则
12/4
19:00
22:00
20:30
150分钟
练习,自习
课间
12/5
8:00
16:50
8:50/9:50/12:00
180分钟
改错,补充,写总结上课
课间
java 四则运算_四则运算————javaweb版相关推荐
- Java毕业设计_基于javaweb的网上预约实验室管理系统的设计与实现
基于javaweb的网上预约实验室管理系统的设计与实现 基于javaweb的网上预约实验室管理系统的设计与实现mysql数据库创建语句 基于javaweb的网上预约实验室管理系统的设计与实现oracl ...
- Java毕业设计_基于JAVAWeb和Android的随堂练习软件
基于JAVAWeb和Android的随堂练习软件 基于JAVAWeb和Android的随堂练习软件mysql数据库创建语句 基于JAVAWeb和Android的随堂练习软件oracle数据库创建语句 ...
- python实现四则运算_四则运算 Python实现(杨浩政,张兆敏)
四则运算 项目要求: 题目:实现一个自动生成小学四则运算题目的命令行程序说明: 说明: 自然数:0, 1, 2, -. 真分数:1/2, 1/3, 2/3, 1/4, 1'1/2, -. 运算符:+, ...
- python四则运算_四则运算 python
java转换json需要导入的jar包,org/apache/commons/lang/exception/NestableRuntimeException 缺少相应jar包都会有异常,根据异常找ja ...
- text对应java类型_【JavaWeb】79:JavaScript和Java的关系?
今天是刘小爱自学Java的第79天. 感谢你的观看,谢谢你. 话不多说,开始今天的学习: 一.JavaScript概述 JavaScrip和Java到底有什么关系呢? 令我无比惊讶的是,就本质而言它们 ...
- 金立java微信_微信金立版下载-微信金立手机版v7.0.21 安卓版 - 极光下载站
微信金立手机版除了最基础的社交聊天之外,还为用户带来了非常多有趣的功能,例如像双十一.大年三十等特殊日子会有很多电视活动,大家可以通过微信摇一摇来进行抽奖,独特的互动方法为你和家人带来更多欢乐. 微信 ...
- 诺基亚8110能玩java吗_诺基亚81104G版评测 买不了吃亏也买不了上当
描述 经典归来 诺基亚8110 4G版 1998年,当时的你多大呢?是否还记得诺基亚在这一年发布了一款经典的滑盖手机-诺基亚8110.当年的诺基亚在机身的设计上可谓脑洞大开,这款带有香蕉弧形的滑盖机也 ...
- 侠义java加速_侠义加速版下载-侠义加速版游戏下载v1.7 安卓版-单机手游网
侠义加速版是一款经典的复古武侠手游,游戏完美还原了一个武侠世界该有的一切东西,带你体验武侠江湖的恩怨情仇,丰富的玩法模式让你爱不释手,全方位的战力提升系统助你突破巅峰.喜欢这款游戏的小伙伴们快来单机1 ...
- java血饮狂刀_血饮狂刀PC版
不知道怎么下载?点我 游戏介绍 游戏介绍 <血饮狂刀 Draw Slasher>是由Mass Creation开发的一款动作冒险类游戏,早先在PS和手机上发布,现已登陆PC平台.游戏以忍者 ...
最新文章
- web.xml 配置 加载顺序
- Java断点续传(基于socket与RandomAccessFile的实现)
- Spring Boot 集成 Swagger-Bootstrap-UI,非常棒的解决方案
- java 无法找到ant_无法找到与ANT(mac)关联的文件
- 数据存储方案-闭包表
- python的字典与集合
- 面向对象编程(基础简介)
- Ruby学习-第二章
- 企业办公自动化系统_OA系统的核心功能有哪些?分析当下OA系统的缺陷以及相关解决方案...
- 不卖了?这家公司暂停门店销售iPhone!
- 深度优先搜索算法的通用解法
- 如何重启虚拟机里的ssh服务器,通过SSH重启 vSphere 虚拟机
- 114. PHP command line getopt
- Python3网络爬虫:requests+mongodb+wordcloud 爬取豆瓣影评并生成词云
- 显卡RTX2080 + CUDA10 + win10 + tensorflow配置安装探坑记
- 钽电容正负极_钽电容是什么?怎么区分正负极?
- 埙曲推荐,《葬花吟》简谱
- Python 运算符及其优先级总结大全(新手必收藏)
- 软件性能测试、分析与调优实践之路_读书笔记(一)
- CNT-OSI七层参考模型和TCP/IP四层网络协议