项目成员:张金生     张政

需求分析:

1.要进行四则运算;

2.运算题目随机;

3.进行对错判断;

4.整数运算。

程序概要:

1.用JSP实现;

2.用户可选择题目数量;

3.答题页用表格列出;

4.包含用来填写答案的输入框;

5.答完后点击提交会直接显示相应题目的对错。

实现过程:

数据结构主要用到了数组

题目生成:

 1     public String generateQuestion(int numOfOperand, int rangeMin, int rangMax, boolean isInt,
2 SupportedOperation[] operation, boolean bracket) {
3 String question = "";          //用来保存题目
4 int[] ioperands = null;        //用来保存随机生成的操作数
5 double[] doperands = null;
6 SupportedOperation[] so = null;    //用来保存操作符
7 if (numOfOperand < 2) {
8 System.out.println("操作数数量至少为2");
9 return "";
10 }
11 if (rangMax > 500) {
12 System.out.println("操作数数最大值不能超过500");
13 return "";
14 }                      //基础判断,看参数是否符合要求
15 if (isInt) {
16 ioperands = new int[numOfOperand];
17 for (int i = 0; i < numOfOperand; i++) {
18 ioperands[i] = (int) (Math.random() * rangMax / 2 +1);//生成随机数并保存到数组中
19
20 }
21 question += ioperands[0];      //录入第一位操作数
22 //int sub = ioperands[0];
23 so = new SupportedOperation[numOfOperand-1];//初始化操作符数组
24 for(int i = 0;i < operation.length;i++){
25 if(operation[i] == SupportedOperation.ALL){
26 operation = new SupportedOperation[4];
27 operation[0] = SupportedOperation.ADD;
28 operation[1] = SupportedOperation.MINUS;
29 operation[2] = SupportedOperation.MULTIPLY;
30 operation[3] = SupportedOperation.DIVIDE;
31
32 }
33 }
34 int value = 0;        //避免出现连续的除法运算
35 for(int j = 0;j<numOfOperand-1;j++){
36
37 so[j] = operation[(int)(Math.random()*operation.length)];
38 switch(so[j]){      //匹配操作符并写入算式
39 case ADD:question = ioperands[j+1]+"+"+question;break;
40 case MINUS:question = ioperands[j+1]+"-"+question;break;
41 case MULTIPLY:question = ioperands[j+1]+"*"+question;break;
42 case DIVIDE:{      //保证数能够整除
43 if(value < 1){
44 ioperands[j+1] = ioperands[j+1]*ioperands[j];
45 question =ioperands[j+1]+"/"+question;
46
47 value++;
48 }
49 else{
50 j--;
51 }
52 }break;
53 default:System.out.println("操作符错误");break;
54 }
55 }
56 System.out.println(question);      //以下部分主要用于测试
57 ScriptEngine se = new ScriptEngineManager().getEngineByName("JavaScript");
58
59 try {
60 Integer d = (Integer) se.eval(question);
61 System.out.println(d);
62 } catch (ScriptException e) {
63 e.printStackTrace();
64 }
65
66 } else {
67 doperands = new double[numOfOperand];
68 for (int i = 0; i < numOfOperand; i++) {
69 doperands[i] = Math.random() * rangMax / 2;
70 }
71 }
72
73 return question;
74
75 }

答案评定:

 1 <script type="text/javascript">
2 function compute() {
3
4 for (var i = 1; i <= <%=num%>; i++) {        //对每一道题进行对错判断
5 var a = "" + eval(document.getElementById("q" + i).innerHTML);
6 var auser = document.getElementById("a" + i).value;
7 if (a == auser) {
8 document.getElementById("r" + i).innerHTML = "正确";
9 } else {
10 document.getElementById("r" + i).innerHTML = "错误";
11 }
12 }
13
14 }
15 </script>

 题目难度设计:

 1     public String generateSimpleQuestion() {
2 SupportedOperation[] operation = { SupportedOperation.ADD, SupportedOperation.MINUS };
3 return generateQuestion(2, 0, 20, true, operation, false);
4 }
5
6 public String generateCommonQuestion() {
7 SupportedOperation[] operation = { SupportedOperation.ADD, SupportedOperation.MINUS,
8 SupportedOperation.MULTIPLY, SupportedOperation.DIVIDE };
9 return generateQuestion(3, 0, 30, true, operation, false);
10 }
11
12 public String generateMediumQuestion() {
13 SupportedOperation[] operation = { SupportedOperation.ADD, SupportedOperation.MINUS,
14 SupportedOperation.MULTIPLY, SupportedOperation.DIVIDE };
15 return generateQuestion(4, 0, 50, true, operation, true);
16 }
17
18 public String generateComplexQuestion() {
19 SupportedOperation[] operation = { SupportedOperation.ALL };
20 return generateQuestion(6, 0, 50, true, operation, true);
21 }

程序运行结果:

代码地址:https://coding.net/u/jx8zjs/p/paperOne/git

 

结对编程——paperOne基于java web的简易四则运算出题网站的更多相关文章

  1. paperOne基于java web的简易四则运算出题网站

    项目成员:张金生     张政 需求概要 1.运算数均为正整数 2.包含的运算符有+,-,*,/ 3.除法运算结果为整除运算 4.批量生成题目并判题 核心功能分析 1.题目生成——java后端 题目生 ...

  2. 结对编程——paperOne基于java的四则运算 功能改进

    项目成员:张金生     张政 由于新的需求,原本使用JSP的实现方式目前改为Java实现,即去除了B/S端. 需求分析: 1.四则运算要满足整数运算.分数运算两种: 2.运算题目随机,并且可以打印题 ...

  3. 结对编程1 —— 基于GUI和Swing的四则运算题目生成器

    合作伙伴 201421123102 王艳秋 201421123106 陈 雄 代码地址 题目描述 我们在个人作业1中,用各种语言实现了一个命令行的四则运算小程序.进一步,本次要求把这个程序做成GUI( ...

  4. 基于JAVA WEB技术旅游服务网站系统设计与实现网上程序代写

    基于JAVA WEB技术旅游服务网站系统设计与实现网上程序代写 专业程序代写服务(QQ:928900200) 随着社会的进步.服务行业的服务水平不断发展与提高,宾馆.酒店.旅游等服务行业的信息量和工作 ...

  5. 基于 Java Web 的毕业设计选题管理平台--选题报告与需求规格说明书

    一.选题报告 目录 团队名称 团队成员 项目名称 项目描述 创新与收益 用户场景分析 真实用户调研 未来市场与竞争 项目导图 比例权重 总结 1.团队名称--指南者团队 2.团队成员 孔潭活:2015 ...

  6. 网络编程:基于C语言的简易代理服务器实现(proxylab)

    本文记录了一个基于c socket的简易代理服务器的实现.(CS:APP lab 10 proxy lab) 本代理服务器支持keep-alive连接,将访问记录保存在log文件. Github: h ...

  7. 【Java Web】简易商品信息管理系统——首个Web项目

    正文之前 在学习了一段时间的Java Web的内容之后,当然需要有个项目来练练手,我相信大多数人的首选项目都是信息管理系统吧,所以我选择了商品信息管理系统 目前项目源码已全部上传至GitHub,欢迎大 ...

  8. 【原创】三分钟教你学会MVC框架——基于java web开发(2)

    没想到我的上一篇博客有这么多人看,还有几位看完之后给我留言加油,不胜感激,备受鼓励,啥都别说了,继续系列文章之第二篇.(如果没看过我第一篇博客的朋友,可以到我的主页上先浏览完再看这篇文章,以免上下文对 ...

  9. 结对编程1----基于java的四则运算生成器

    小组成员:王震(201421123054).王杰(201421123055) Coding地址:https://git.coding.net/a506504661/sssss.git 一.题目描述 我 ...

随机推荐

  1. Wtrofms

    一.安装 安装:pip3 install wtforms 二.使用1(登录) from flask import Flask, render_template, request, redirect f ...

  2. 网站sql注入漏洞修复方案之metinfo 6.1.0系列

    近日,我们SINE安全对metinfo进行网站安全检测发现,metinfo米拓建站系统存在高危的sql注入漏洞,攻击者可以利用该漏洞对网站的代码进行sql注入攻击,伪造恶意的sql非法语句,对网站的数 ...

  3. Python3 图像识别(二)

    Infi-chu: http://www.cnblogs.com/Infi-chu/ 以图搜图的使用已经非常广泛了,我现在来介绍一下简单的以图搜图的相关算法及其实践. 一.感知hash算法 感知哈希算 ...

  4. 【8086汇编-Day2】dosbox实验环境配置及测试

    我学习汇编用的是王爽的<汇编语言>第三版,书中是以8086处理器为例,是工作在实模式下的,而当下的个人电脑处理器都是工作在保护模式下的.所以需要一个虚拟的工作在实模式下的处理器,这里主要用 ...

  5. 20155338 2016-2017-2 《Java程序设计》第九周学习总结

    20155338 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章 整合数据库 JDBC入门 · 数据库本身是个独立运行的应用程序 · 撰写应用程序是 ...

  6. lnmp环境搭建(centos6.9+mysql5.7+php7.1+nginx1.10)

    安装前准备:CentOS 6.9 64位 最小化安装 yum install -y make gcc gcc-c++ perl zlib-devel libaio libpng libpng-deve ...

  7. springboot+security+JWT实现单点登录

    本次整合实现的目标:1.SSO单点登录2.基于角色和spring security注解的权限控制. 整合过程如下: 1.使用maven构建项目,加入先关依赖,pom.xml如下: <?xml v ...

  8. svn 冲突处理

    C:\workspace\test>svn upConflict discovered in 'test.txt'.Select: (p) postpone, (df) diff-full, ( ...

  9. 基于Cocos2d-x-1.0.1的飞机大战游戏开发实例(下)

    在飞机大战游戏开发中遇到的问题和解决方法: 1.在添加菜单时,我要添加一个有背景的菜单,需要在菜单pMenu中添加一个图片精灵,结果编译过了但是运行出错,如下图: 查了很多资料,调试了很长时间,整个人 ...

  10. xxl_job springboot改造

    代码地址:https://gitee.com/sharehappy/xxl_job_springboot 官方文档:https://github.com/xuxueli/xxl-job/blob/ma ...