基于个人项目的结对编程
痛苦的两周结对编程终于结束了,为什么说痛苦呢,因为这次要做界面了。个人项目我使用的C语言,而我的partner用的是Java。听她说Java有自带的swing可以用来做界面,所以我也改用Java开始编写。基本不会Java的我等于抓瞎,虽然在写代码的大体流程上和C语言差不多,但又有很多小地方不同,需要注意。
我和队友的分工是她负责做界面,验证码等,我负责出题和改卷的函数。现在想来,其实我的工作量很小,因为队友考虑到我不太会Java,所以大部分都是她来做的。出题的函数可以结合个人项目的内容,传入选题难度(小学,初中,高中),生成题目。但在C语言改Java的途中,可以说是困难重重,几乎每写两行代码,就会有报错。好在参考着个人项目,我磕磕绊绊的写完了出题函数,接下来就是计算得到的数学运算式。一开始可以说是完全没有头绪,很多人都使用了后缀表达式来计算,但我从网上查阅资料,发现JavaScript中有个eval()函数,可以计算带括号的加减乘除这样的简单计算式,这等于是直接解决了小学的题目问题。虽然不知道Java中能不能使用,但我尝试了一下,结果证明完全可以。那初高中又加入了平方,开方,三角函数等运算,怎么办呢?我的思路是把这些特殊运算先从式子中提取出来,运算出结果,再把结果替换进去。说起来挺简单的,但实际操作起来还是挺难的。前前后后用了一周多,在解决了各种报错后终于可以运行了。遇到的最大的问题就是eval()函数在调用时不能出结果,原本我以为是不能使用这个函数,后面才发现是出题和替换的过程中有很多问题,比如分母为0,tan90这种无意义的算式。我们的短信验证码注册使用的是阿里云,申请通过的还是挺快的,有100条免费短信。多亏了我强大的队友,我们才能按时完成这个项目。对我来说,最大的收获就是学会了做简单的界面,熟悉了Java语言的使用。
主函数就是调用登录界面的函数,然后登录界面又连接着注册和做题,一环扣一环。
这个eval()函数就是可以直接计算小学题目的函数,我强制最终输出的结果为double型,这里就要注意,小学的题目很多得到的都是整数,但是要定义为double型,否则就会报错。
最终得到的界面部分截图如下: