Java四则运算——图形化界面
一.前提
(1)GitHub地址:https://github.com/mingbiaoleung/FourOperationWeb
(2)调试环境:IntelliJ IDEA ,CHORME浏览器
二.作业要求
(1)基本要求
- 自动生成题目,单个题目最多不能超过4个运算符,操作数小于100。
- 用户可以输入答案。
- 若用户输入答案正确,则提示正确;若答案错误,则提示错误,并要提示正确答案是多少。
(2)扩展要求
- 可以出表达式里含有负整数(负整数最小不小于-100)的题目,且负数需要带括号,用户输入的结果不用带括号。如: 2 *(-4) = -8。
- 用户可以选择出题的个数(最多不能超过5个题目),答题结束可以显示用户答错的题目个数和答对的题目个数。
- 用户答题结束以后,程序可以显示用户答题所用的时间。
- 程序可以设置答题时间,时间设置为整数,单位为秒,最大不能超过120秒,若超过了答题时间未答题,则提示:时间已到,不能答题。
(3)结对成员
姓名:梁铭标 学号:201606120031 博客园地址:https://www.cnblogs.com/luengmingbiao/
姓名:刘杰 学号:201606120029 博客园地址:http://www.cnblogs.com/Winslow-liujie/
三.时间估算
结对项目软件过程耗时估计表与统计表
(时间单位:小时)
|
PSP2.1 |
个人软件实现阶段 |
预计时间 |
实际时间 |
|
Planning |
计划 |
1 |
2 |
|
· Estimate |
估计这个任务需要多少时间 |
10 |
20 |
|
Development |
开发 |
10 |
10 |
|
· Analysis |
需求分析 (包括学习新技术) |
1 |
1 |
|
· Design Spec |
生成设计文档 |
1 |
1 |
|
· Design Review |
设计复审 |
0.5 |
0.5 |
|
· Coding Standard |
代码规范 |
1 |
1 |
|
· Design |
具体设计 |
1 |
1 |
|
· Coding |
具体编码 |
1 |
1 |
|
· Code Review |
代码复审 |
0.5 |
0.5 |
|
· Test |
测试(自我测试,修改代码,提交修改) |
1 |
1 |
|
Reporting |
报告 |
1 |
1 |
|
Test Report |
测试报告 |
1 |
1 |
|
·workload |
计算工作量 |
0.5 |
0.5 |
|
·correction |
并提出过程改进计划 |
2 |
2 |
四:工作详情
(一)工作:
刘杰: 设计和编写界面交互部分、设计计时器。
梁铭标: 后台代码随机生成题目、前后端数据交互、判断正误。
(二) 部分功能代码介绍:
(1)题目获取功能:通过ajax异步获取一定数量的四则运算习题(前台)
$.ajax({
type: "POST",
url: "GetTitleInfoServlet",
dataType: "json",
data: jsonDate,
async:false,
contentType:"application/json;charset=UTF-8",
success: function (returnedData) {
var titleInfoJson = JSON.stringify(returnedData);
sessionStorage.setItem("title", titleInfoJson);
}
});
题目获取功能:通过ajax异步获取一定数量的四则运算习题(后台)
/**
* 响应前端ajax生成一定数量的四则运算习题并返回到前台
* @param request
* @param response
* @throws ServletException
* @throws IOException
*/
protected void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// 设置请求与响应的编码
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
response.setContentType("text/x-javascript;charset=utf-8");
response.setHeader("Cache-Control", "no-cache"); // 获取从页面中提交过来的JSON格式数据数据
String titleInfo = JsonService.readJSONData(request);
JSONObject titleInfoJson = JSONObject.parseObject(titleInfo); // 根据前台传来的数据进行解析后生成相应的题目,并以JsonArray格式存储
JSONArray titleJsonArray = generateTitleJsonArray(titleInfoJson); // 把生成的题目返回到前台
PrintWriter printWriter = response.getWriter();
printWriter.write(titleJsonArray.toJSONString());
printWriter.flush();
printWriter.close();
}
(2)用户提交功能:首先经过校验机制判断是否输入答案,之后进行答案的比对运算出答对题数量。
//用户点击按钮提交题目答案并计算用户的正确数以及错误数
$('#summitUserAnswer').click(function () {
$('#summitUserAnswer').addClass('disabled'); // Disables visually
$('#summitUserAnswer').prop('disabled', true); // Disables visually + functionally
//初始化用户做对题目的数目
var trueNum = 0;
for (var i = 0; i < titleJsonLength; i++) {
var userAnswer = document.getElementById("input" + i).value;
if (userAnswer == correctAnswerArray[i]) {
var code = "<p class=\"card-text text-danger col-sm-4\">正确</p>";
$('#title' + i).append(code);
trueNum++;
}else{
var code = "<p class=\"card-text text-danger\">你答错了,正确答案为"+ correctAnswerArray[i] +"</p>";
$('#title' + i).append(code);
} }
//做错的题目数量
var falseNum = titleJsonLength - trueNum; // var count = "<p class=\"text-danger\">恭喜你完成,你用了"+statisticalTime()/1000+"秒</p>"
var submitCode = "<div class=\"col-md-13\">\n" +
"<div class=\"card\">\n" +
"<div class=\"card-body\">\n" +
"<span><h5 class=\"card-title\">答题结束</h5></span>\n" +
"<p class=\"text-danger\">恭喜你完成,你用了" + statisticalTime() / 1000 +
"秒, 你答对了" + trueNum + "道题, 答错了" + falseNum + "道题!请继续加油!" + "</p>\n" +
"<div class='row' style=\"margin: 0px auto;display: table;\">" +
"<a href=\"Title.html\" class=\"btn btn-primary\">重新生成题目</a>\n" +
"</div>" +
"</div>\n" +
"</div>\n" +
"</div>";
$('#TitleCard').append(submitCode);
});
五.软件演示
软件入口地址:http://119.23.205.157:8888/SimpleFourOperationWeb_war/Title.html
1.首先进行选择题目类型以及题目个数


2.点击做题等待跳转到做题页面


3.计算题目后点击提交

六:结对照片

七:收获与感悟
在这一次结对小项目中,明确分工和一定的团队交流是非常重要的,可以达到事半功倍的效果。团队工作能增加成员的工作积极性。因为在面对问题的时候,会有人一起分担,共同尝试新的策略。两个人一起工作需要互相配合,如果想偷懒去干别的,就会拖延工作进度。在编程中,如果双方遇到一些问题,可以相互讨论,可以更快更有效地解决问题,互补双方的一些不足。本次结对子编程收益良多,感谢搭档刘杰的支持与帮助。
Java四则运算——图形化界面的更多相关文章
- java Swing图形化界面
学过java的人应该对java的图形化界面很是反感,特别是接触java不久的人.如果想和其他语言那样用鼠标拖拽,可以使用wondosbulider插件.但是用起来也不是那么方便.当然对于不乐意写代码的 ...
- JAVA之旅(三十一)——JAVA的图形化界面,GUI布局,Frame,GUI事件监听机制,Action事件,鼠标事件
JAVA之旅(三十一)--JAVA的图形化界面,GUI布局,Frame,GUI事件监听机制,Action事件,鼠标事件 有段时间没有更新JAVA了,我们今天来说一下JAVA中的图形化界面,也就是GUI ...
- java的图形化界面 文本区JTextArea的程序例子
package java1; //使用时这个改成你的包名即可//文本区 JTextArea import javax.swing.*;import java.awt.*;import java ...
- Java 图形化界面设计(GUI)实战练习(代码)
关于Java图形化界面设计,基础知识网上可搜,下面简单介绍一下重点概念,然后就由浅入深代码实例. 程序是为了方便用户使用的,Java引入图形化界面编程. 1.JFrame 是容器类 2.AWT 是抽象 ...
- 转:二十七、Java图形化界面设计——容器(JFrame)
转:http://blog.csdn.net/liujun13579/article/details/7756729 二十七.Java图形化界面设计——容器(JFrame) 程序是为了方便用户使用的, ...
- 三十二、Java图形化界面设计——布局管理器之CardLayout(卡片布局)
摘自 http://blog.csdn.net/liujun13579/article/details/7773945 三十二.Java图形化界面设计--布局管理器之CardLayout(卡片布局) ...
- 二十七、Java图形化界面设计——容器(JFrame)
摘自http://blog.csdn.net/liujun13579/article/details/7756729 二十七.Java图形化界面设计--容器(JFrame) 程序是为了方便用户使用的, ...
- 三十三、Java图形化界面设计——布局管理器之null布局(空布局)
摘自http://blog.csdn.net/liujun13579/article/details/7774267 三十三.Java图形化界面设计--布局管理器之null布局(空布局) 一般容器都有 ...
- 三十一、Java图形化界面设计——布局管理器之GridLayout(网格布局)
摘自http://blog.csdn.net/liujun13579/article/details/7772491 三十一.Java图形化界面设计--布局管理器之GridLayout(网格布局) 网 ...
随机推荐
- Win10 CompatTelRunner.exe占用磁盘高的解决办法
(1)在运行里输入 taskschd.msc, 打开windows计划任务 (2)参考下图在Application Experience下,1,2,3,4步骤,把所有带有 “CompatTelRun ...
- python爬取豆瓣电影首页超链接
什么是爬虫? 我们可以把互联网比作一张大网,而爬虫(即网络爬虫)便是在网上爬行的蜘蛛.把网的节点比作一个个网页,爬虫爬到这就相当于访问了该页面,获取了其信息.可以把节点间的连线比作网页与网页之间的链 ...
- VUE创建播发器组件并调用
欢迎来到我的友链小屋 首先用vue-cli创建前端项目 参考:https://www.cnblogs.com/ouyangkai/p/11549290.html 新建play.vue文件 编写pl ...
- Winform c# 多线程处理实例
我们在用C# 开发程序时,经常会使用的多线程,实现多任务的处理.一般常用的方法是新建多个线程,进行处理. 今天我分享一个采用线程池的方式来实现的实例.对有需要的朋友做个借鉴. 实例: Winform ...
- PIE SDK直方图统计法
1.算法功能简介 图像直方图描述了图像中每个亮度值DN的像元数量的统计分布.它通过每个亮度值的像元数除以图像中总得像元数,即频率直方图.在很多遥感应用中,直方图是遥感图像中所包含的信息的一种有用的图示 ...
- Java解析复杂JSON数据的一种方法
1.需解析JSON数据: { "code": 0, "message": "success", "sid": " ...
- 基于vue+springboot+docker网站搭建【七】制作后端spring-boot的docker镜像部署
制作spring-boot的docker镜像并部署 一.下载后端项目:https://github.com/macrozheng/mall 二.修改mall-admin项目的配置文件 修改applic ...
- 架构师小跟班:推荐46个非常经典的Linux面试题
大家都知道,做后端开发,做着做着就变成全栈了.一般服务器维护应该是运维的事情,但很多很多公司都是后端工程师在做.所以,基本的Linux系统维护也是后端工程师的必修课.问题一: 绝对路径用什么符号表示? ...
- 前端小插件之手写js循环滚动特效
很多前端都离不开滚动的特效,调用插件繁琐,后期更改麻烦,考虑到这些因素,自己写了一套无限循环滚动的小特效. 首先滚动特效很好写,用css就可以完成,下面写一个基础css向上循环滚动特效 html &l ...
- Fundebug 微信小程 BUG 监控插件更新至 1.2.1,优化错误上报次数的限制算法,新增 silentHttpHeader 配置选项
摘要: 1.2.1优化错误上报次数的限制算法,新增silentHttpHeader配置选项,请大家及时更新哈! Fundebug提供专业的微信小程序 BUG 监控服务,可以第一时间为您捕获生存环境中小 ...