前言:
这次项目是用前后台分离,后台代码由servlet编写。项目部署于我的个人服务器。
github仓库地址https://github.com/LeonP3ng/CalculateWeb.git
服务器项目地址https://rammsteinlp.cn/CalculateProject/
前台搭档陈慧妮博客:
https://blog.csdn.net/olivia_chn/article/details/89184165
二、项目功能描述
本项目是网页版的四则运算出题软件,此软件为学生用户提供以下功能:
1、定制出题要求。
每次出题时,学生用户在页面输入学号和所需生成题目的要求:题目数量,算式数值范围(仅整数运算实现了),题目中运算符个数,题目中是否包含括号,题目中是否含分数。输入完要求后再点击开始生成题目按钮即可生成题目(不包含答案)。
2、做题功能。
出题完毕后,学生用户可以答题并开始计时。
3、判题功能。
学生用户作答完毕后点击在线验证答案即可查看正确答案、错题、正确率和用时。
4、下载功能。
学生用户可以点击下载题目按钮将本次所做的题目和答案下载到本地。
三、后台代码分析:
3.1接收参数
int n = Integer.parseInt(request.getParameter("n")); //出题数目
int ifBrack = Integer.parseInt(request.getParameter("ifBrack")); //是否带有括号
int ifScore = Integer.parseInt(request.getParameter("ifScore")); //是否含分数
int flagNumber = Integer.parseInt(request.getParameter("flagNumber")); //运算符数量
int studentId = Integer.parseInt(request.getParameter("studentId")); //学生学号,和生成的题目一同写入服务器,后期可以本地下载。
int lowLimit = Integer.parseInt(request.getParameter("lowLimit")); //产生数字最小范围
int highLimit = Integer.parseInt(request.getParameter("highLimit")); //产生数字最大范围
这里对于产生数字结果范围我只限制了普通运算和带括号的运算,对于分数没有做到限制,首先是分数一定是真分数,即值小于1。但是如果对分子分母进行限制的话,我会一直报stack overflow也就是栈溢出。看了下报错日志,主要集中于我的判断分子分母是否最简时会调用求最大公因数函数&#x