李瑞钦+袁理想结对编程项目

李瑞钦+袁理想结对编程项目

  1. 项目要求:

1、用户注册功能。用户提供手机号码,点击注册将收到一个注册码,用户可使用该注册码完成注册;

2、用户完成注册后,界面提示设置密码,用户输入两次密码匹配后设置密码成功。密码6-10位,必须含大小写字母和数字。用户在登录状态下可修改密码,输入正确的原密码,再输入两次相同的新密码后修改密码成功;

3、密码设置成功后,跳转到选择界面,界面显示小学、初中和高中三个选项,用户点击其中之一后,提示用户输入需要生成的题目数量;

4、用户输入题目数量后,生成一张试卷(同一张卷子不能有相同题目,题目全部为选择题),界面显示第一题的题干和四个选项,用户选择四个选项中的一个后提交,界面显示第二题,...,直至最后一题;

5、最后一题提交后,界面显示分数,分数根据答对的百分比计算;

6、用户在分数界面可选择退出或继续做题;

7、小初高数学题目要求见个人项目。

2.对个人项目的继承

结对编程项目是在个人项目的基础上实现UI界面,能够让题目以选择题的形式出现,做完题目之后算出最后的得分。这一次的实现过程中,由于c++制作页面我们感觉到了一些难度所以我和队友放弃了我们个人项目使用的C++,而用了java的内容并优化了我们的出题程序。Java和c++的出题逻辑基本相同,但java更容易实现Ui界面,和短信验证码的接口,因为java有自己的成体系的GUI,而DEVC++不好实现这一点,在网上看一些大佬说Java更适合做前端,C++偏向后端,。还有我们花费了两天学习Qt,但没有找到qt短信验证码的接口,因此我们选择了java。

本次结对编程要实现的功能有:

1、 用户注册功能。用户提供手机号码,点击注册将收到一个注册码,用户可使用该注册码完成注册;

2、用户完成注册后,界面提示设置密码,用户输入两次密码匹配后设置密码成功。密码6-10位,必须含大小写字母和数字。用户在登录状态下可修改密码,输入正确的原密码,再输入两次相同的新密码后修改密码成功;

3、密码设置成功后,跳转到选择界面,界面显示小学、初中和高中三个选项,用户点击其中之一后,提示用户输入需要生成的题目数量;

4、用户输入题目数量后,生成一张试卷(同一张卷子不能有相同题目,题目全部为选择题),界面显示第一题的题干和四个选项,用户选择四个选项中的一个后提交,界面显示第二题,...,直至最后一题;

5、最后一题提交后,界面显示分数,分数根据答对的百分比计算;

6、用户在分数界面可选择退出或继续做题;

本次的结对编程之中有以下几个难点:

1、各个模块之间的组合

虽然和个人项目的模块组织差不多,但是新加了一些功能,多了短信验证的功能,题目变成了选择题,要进行答案的选择,最后还要统计计分。除此新加的一些功能,;各个功能还要以UI界面的方式呈现,各个模块之间的合理规范组合对于编程实现是不能出错,我和队友商讨之后定下了如下的模块组织:

![]()

发送短信的内容放在一个register.java中的一个send类中,基本来讲,一个界面对应了一个.java文件,除了出题的程序和计算结果的程序(Makepaper.java和calculate.java),每个程序运行结束后发生跳转至下一个.java文件,整体结构逻辑严谨;

![]()

实现了生成验证码并用sendCode函数实现验证码的发送,可以随机生成六位的验证码。

![]()

2、UI界面的设计

UI界面的设计可以说是比较的复杂的但所有的UI界面异曲同工,需要添加许多的面板,Labele,xit按钮和监听,并且将逻辑部分都连接在一起,我们想实现给整个UI加一个背景,UI部分使用的是JPanel,要用到两层,一层放置按键,监听,另一层为设置背景,这个背景为对于按键等透明。而我们使用的确实JFrame,所有的东西直接添加在这个框架上,后来惊奇的发现,可以直接在这个框架上加图片作为背景图片,只要设置其透明度就OK了。添加背景图片的时候图片要和JFrame的宽一致,高要小一些,因为JFrame设置的大小包含title。

部分ui界面展示:

![]()

![]()

3、题目与答案的生成

题目的生成是借用个人项目中的逻辑,以Java语言实现新的makepaper模块:小学、初中、高中三个难度的题目的生成,括号的增加、算式合法性的检测。这一部分在个人项目中已经实现;但在计算结果的时候花费了很大的力气,这里队友采用的方法是:生成正确答案的时候,进行字符串处理,将带平方,根号,三角函数的项,算出结果后,用结果将算式中的项替换,最后变成一个四则运算的表达式,然后利用js的eval函数直接算出结果,随机生成一个随机数(1-3)把真确结果赋给这个位置,其他答案再起基础上加上一个随机数。

4、验证码的发送

短信的发送使用了阿里云的API,有现成的接口,java的实现比较的全。除了在添加其jar文件的时候出现了一些问题之外,这一部分的实现还是比较的顺利的

总结:在做结对编程的时候,一定要在开始编写之前细读需求,建立合适的软件架构体系,管理各个模块的关系,使他们再成为一个整体,达成我们想要的项目成品,觉得通过短信发送验证码非常神奇,当很快能够真正发送的时候感到的是一种神奇的感觉。我们分工明确,我从队友那里学到了很多东西,我对于ui界面的制作,包括eclipse的使用也更加熟练了,希望以后我们能从彼此身上学会更多的东西。

声明:该文章系转载,转载该文章的目的在于更广泛的传递信息,并不代表本网站赞同其观点,文章内容仅供参考。

本站是一个个人学习和交流平台,网站上部分文章为网站管理员和网友从相关媒体转载而来,并不用于任何商业目的,内容为作者个人观点, 并不代表本网站赞同其观点和对其真实性负责。

我们已经尽可能的对作者和来源进行了通告,但是可能由于能力有限或疏忽,导致作者和来源有误,亦可能您并不期望您的作品在我们的网站上发布。我们为这些问题向您致歉,如果您在我站上发现此类问题,请及时联系我们,我们将根据您的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。