项目需求
注册功能:用户提供手机号码获取验证码,验证码正确后可以设置登录密码。
修改密码:输入正确原密码,两次输入相同新密码,即可成功修改密码。
显示分数:最后一题提交后,显示得分和答对题数百分比。
退出系统:在获取得分后可以选择退出系统或者继续做题。
项目实现
1.UI界面:本次要求所有的命令都以界面的形式表现,因此需要重新对UI界面进行知识的梳理。除去复习简单的JFrame(框架窗口),JPanel(中间容器),JButton(按键),JTextField(可编辑的文本)等基本组件的相关知识,这一次实验主要学习到四种布局方式的差异,以及字体大小,框架位置的设置等。
2.解决选择题的出题与答案设置:借助于上一次的个人项目,题目可以很简单地实现,难点在于四个选项的生成。了解到Java中可以用如下方式得到一个表达式的计算结果。但是字符串表达式中只能存在数字,“+”,“-”,“*”,”\”,“(”,“)”。于是对于初中高中试卷,至少需要先解决这样几个问题:根号,开方,三角函数。并且解决以上问题后,在运行验证的情况下,又发现以下几个问题:出现a减去一个负数b的情况,结果精确度过高导致答案太长的问题等。都一一想办法解决。得到正确答案之后,其他三个错误选项的设置,我用到了随机数,在一定范围内生成随机数,与正确的答案做加法运算得到错误答案,当然其中要排除选项相等的情况。并且再次随机分配四个答案的位置。
ScriptEngineManager scriptEngineManager = new ScriptEngineManager();
ScriptEngine scriptEngine = scriptEngineManager.getEngineByName("nashorn");
double result=0;
result=Double.valueOf(scriptEngine.eval(s).toString());
3.获取验证码:这里要用到阿里云的短信服务API,由于初次使用,最初出现了很多问题,比如设置模板的签名,文字以及密匙时直接引用了网上的内容,而没有修改成自己的,导致频繁出错。最终在同学的帮助下解决问题。
感想
原文:https://www.cnblogs.com/su422/p/11597164.html