一、设计实现
通过分析结对项目的需求文档,经过两人讨论,决定将项目的功能拆分为UI界面和后台两个方面实现。这里我负责UI界面的设计,2、3、4功能,队友则负责实现后台出题,5、6、7功能。
由于一开始我们使用的都是c++作为个人项目的编程语言,但是最终结对项目决定使用Python来实现,将个人项目的代码改写为了python。
二、UI的具体实现过程
Python 提供了多个图形开发界面的库,诸如Tkinter、wxPython、Jython等等。这里选择使用Tkinter。Tkinter 可以在大多数的 Unix 平台下使用,同样可以应用在 Windows 和 Macintosh 系统里。同时Tkinter 是 Python 的标准 GUI 库,内置在了python的安装包里,可以直接使用,简单的图形界面都能应对自如。
1、首先设计一个login的登录主页面,设置用户名密码等标签输入框,进行简单的文字、图片装饰。设计了登录、退出、注册等button
2、这里各个界面的交互采用button中的command调用回调函数来实现。设计一个登录,注册,退出的函数
1)登录函数,首先获取登录界面输入框的信息。然后创建一个pickle文件来存储用户名密码,打开文件以字符串形式获取出来。如果用户名存在则登录
2)登录后创建一个新界面,来实现修改密码和学历、出题数目的选择。同样采用标签输入框和按钮来实现,调用不同的出题函数。
3)点击修改密码按钮,调用修改函数。与登录同理,获取输入框信息,密码存在pickle中则可以修改。这里还需要判断一下密码的规范性
4)注册功能在登录界面实现,写一个注册函数。这里分成两块实现,输入手机号,如果手机号未注册则发送注册码。而后使用注册码,完成其他信息的规范输入,即可注册成功,写入pickle文件。用户名不能重复,密码规范,注册码匹配,密码前后一致,不为空等等。
三、成果展示
四、不足和心得体会
不足之处:
1、题目答案与选项不能匹配,可能是因为题目和答案都随机了,匹配不上了。但是正确答案和错误答案都计算了。
2、答题时主界面会跳到答题界面上
3、页面设计较为简单,只进行了简单的图形装饰和艺术字体
心得:
通过这次结对项目,我们切身体会到了结对编程的利弊。两个人之间互相促进,并且可以有很多想法上的碰撞。在整合的时候,遇到bug的时候能够共同研究讨论,使得完成项目的效率大大加快。同时,当意见产生分歧的时候,两个人之间会进行商量,取得一个最好的方案来实现。在整个项目中,沟通显得十分重要,我们学会了在项目的实现中要有效的沟通,合理的分工,以及如何听取他人的想法,使得项目的实现更加顺利和完善。这次的结对编程是一个相互磨合的过程。总的来说,结对编程有着很多益处,我们能从对方身上学到很多东西,也有了合作完成项目的意识和经验,这是一次很好的经历。