本次结对编程项目需要实现短信发送功能,登录注册功能,设置密码修改密码功能,产生选择题功能,且能够进行题目切换显示分数,题目的重复查看,小初高的出题则与个人项目要求相同。为了便于实现界面功能与发送短信的功能,本次结对编程使用的是java。虽然我和同伴的个人项目使用的语言都是c++,但是同样作为面向对象的语言还是有互通之处,因此在c++中使用的思路未尝不可利用java来进行实现。
1、登录密码功能,这个功能使用了两个java文件来实现,使用了阿里云提供的jar包来实现。手机号与密码设置均存在txt文件中。初始界面如下图所示,用户账号默认为手机号码,在输入手机号之后将会进行检测,若该账号已被注册则会弹出密码输入框,成功登录后跳到修改密码/开始出题的界面。若没有注册过则会出现验证码的输入框然后是设置密码。
2、题目的难度选择,出题的数量都和个人项目相同只是把它用frame显示了。
3、计算与出题功能:在计算这个地方我们采用的是后缀表达式,使用两个栈根据优先级存储数字和符号,如果后入的符号优先级高则直接入符号栈,否则将栈里面优先级高的弹入数字栈。出题方面采用了搭档的个人项目,只是将c++版本改为了java版本。但是两方面组合的时候出现了问题,我们在这方面产生了不同的理解,在交流后达成了一致意见,在小初高上都增加了括号计算。题目的切换显示上使用的是jpanel,我认为这里的困难之处是选项的随机化,之前测试功能时粗糙的把它做成了有一个选项必定正确,不过交给搭档优化后,成功实现了正确选项随机化的功能。然后在结算界面可以做到结束和继续答题。
4、ui界面的展示其实在每个java文件中都有体现,除了出题计算,发送验证码这两个纯功能的文件除外。一开始只是把frame设置了背景图片,后来发现会被上面的单选框,panel页面遮住于是设置了他们的透明,结果发现在上下题切换上又出现了新的bug,文字重叠在了一起。这就涉及到了panel的重叠问题,他会默认显示第一个panel界面,但由于设置了panel的透明化,于是那些被压在下面的也显示了,因此要将显示关闭。
总结:本次项目是边做边学,复用了个人项目以及一些java作业,比如java swing上的设置都需要现学,然后两个人需要有充分的沟通交流,在功能实现方面达到一致。我做的UI界面都比较粗糙,在搭档的帮助下一步步优化变得美观。
原文:https://www.cnblogs.com/litchi20/p/11604129.html