结对编程项目总结

一.项目需求:

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

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

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

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

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

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

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

 

二.项目的实现:

  首先根据项目需求,可以将需要完成的最终项目代码分成以下几个板块:

  1.用户注册;2.密码设置;3.密码更改;4.试卷生成;5.正确答案计算;6.结果显示

  我和队友针对以上板块进行分工并逐一实现,最后将双方的代码进行整合,以实现整个项目。

  根据模块难度与实际实现时长,队友负责我们较为不熟悉的用户注册板块、更改密码和逻辑复杂的正确答案计算板块;我负责整个GUI界面的实现与剩余四个板块。

  整个项目框架如下图所示:

      

<其中标蓝部分为主要的GUI界面>

 

   整个项目使用的编辑软件为Eclipse,利用了awtswing

 

  在我负责的部分中,较难的是对用户信息的比对(涉及到的部分有:用户登录、用户设置密码)以及页面依次显示每道生成的题目;较为麻烦的是整个GUI界面的设置。

 

  用户信息的比对涉及到对本地文件的读取,需要先保证本地存储用户信息的txt文件存在,不存在则生成一个存储信息的txt文件;再打开该文件,提取出其中存储的用户名及密码与用户在textfield内输入的内容进行比对。为了保证用户的用户名及密码的对应,只使用了一个txt文件保存所有用户的这两个信息,因此在每次比对时,需要保证比对的用户名与密码存在且二者互相对应、用户输入的用户名和密码与存储的文件内的完全一致而不是包含关系。

 

  页面依次显示每次生成的题目,涉及到GUI界面的更新。第一方案是选择使用JPanel进行更新,更改页面上的题目与选项。但在多次尝试以后,因为对GUI的不熟悉,总是只显示第一个画面,并没有达到项目要求的结果。在思考以后,根据我个人的理解,在生成所需要的所有题目后,进入GetUI类,不断自我调用实现页面的更新。最终实现了项目要求。但这个方法虽然解决了当下的问题,却不是最优解,在网络上进行查询,都显示我的第一方案应该为解决该问题的首选项。将在之后的学习里对该问题进行更深刻的研究与实践。

 

  关于GUI界面的设置,创建一个JFrame后再不断添加组件即可。但关于每个组件的位置需要不断调整,较为麻烦。但使用WindowBuilder插件可以简化该操作。

 

 

三.对个人项目的复用:

 

  个人项目实现了根据不同难度出题且查重这一功能,在试卷生成这一部分被使用。经过讨论,我组复用了我的个人项目,将出题与自查重这一部分的代码作为一个函数,放入GetEquation”这一个类中,进行调用。

<GetEquation 中的调用>

 

  在GetEquation类中,我将我的个人项目中的三个不同难度出题函数进行了传入参数的调整,从无参改为传入出题数量,一次调用就得到一个题目数组。与本来个人项目中的生成一道题目进行自查再与用户以往题目查重,之后直接传入txt文件中有所不同。

 

 

四.总结:

 

  在该次项目中,对JavaGUI开发更加熟悉。以前仅仅是实现一个界面,这次通过一个完成的软件的实现,加深了理解,操作也更加熟练。

 

  在此次项目的完成中,也仍有不足。关于提示弹窗,我写了很多个类来应对不同的提示情况,但在完成后进行回顾时,发现有些提示可以写在一个java文件中,减少工程文件内该类文件的数量,更加精简。

 

转载于:https://www.cnblogs.com/AAmberTT/p/11599963.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值