在个人项目结束之后我们进行了结对项目的任务,与个人项目相比较,两者还是有一些区别的,首先是结对项目要求的是带ui的中小学试卷生产程序。因为个人项目我用的c++,而队友用的是java,所以经过讨论,我们决定使用java完成结对项目以及ui功能。其次,结对项目还增加了注册功能,本来是需要手机号获取验证码的,所以查询了阿里云的短信服务以及其相关代码,但之后老师说取消这一环节改为直接注册,这样的话,这个功能在逻辑上还是挺容易的。首先输入用户名,然后与文档(因为老师不允许使用数据库,所以将用户信息存入txt中)中的用户对照,如果已存在就重新输入,不存在就注册成功。之后输入两次密码,若一样则设置成功。其次就是用户没有对应的学校了,即不是登录后得到相应的指令而是登录后进行选择,选择出题难度。我个人认为这一步比个人项目还简单了一些,因为我们不再需要将用户与学校之间做链接,而是登录过之后直接按照点击的按钮(即小初高的指令)而生成相应的题目。再之后就是我认为变化最大的地方了,即试卷的处理,个人项目是直接生产试卷,而结对项目则是更类似于做一个考试系统(类似于学校的机考),每一道题出的时候就给出四个选项进行选择。答题结束后还会生成成绩。这样的话就不是简单的生成题目了,生成题目的同时还需要将题目对于的答案算出来。经过上网查询,我们得知可以用逆波兰表达式来得到结果,但逆波兰表达式只能处理括号与加减乘除,即小学试题,所以初高中就需要先用数学知识将2,根号,sin,cos的式子给计算出来,之后再用逆波兰表达式得到结果。然后再将正确答案稍微进行些许偏差来得到几个类似的错误答案。之后再将顺序打乱,即出题完毕。然后若选择了正确的答案,有一个相关参数就会改变,而这个改变之后就映射为最终得分。我们的程序结果如下
登录界面:
注册界面:
出题难度:
题目数量
题目界面:
得分界面:
项目分析:因为我及队友对java的使用还不熟悉,所以此程序存在挺多问题的,如密码设置未规定长度以及包含大小写等,以及登录后的修改密码操作等。还有出题不够合理等问题。以后应该吸取经验教训,在团队项目以及以后的学习中改正。
原文:https://www.cnblogs.com/swaggers-123/p/13789657.html