结对编程项目总结

此次结对编程项目耗费了我整个国庆假期的时间,我甚至怀疑老师就是想让我们用国庆假期去肝。

但总的来说,所有的努力都有结果,在我和队友的共同努力之下,我们做出来一个非常牛的小初高数学学习系统——《九章数学》。

项目介绍:

整个项目基于QT完成,但由于我个人项目是用JAVA完成而队友是用Python完成,但偏偏QT却是基于C++实现的开发架构。

于是,代码复用的工程量在我们这里大大的增加,不仅是代码复用还是代码重构。

项目共分为两大部分:

一、前端

各个界面的UI设计以及界面美化和内部的运行逻辑还有短信的发送部分——由本人负责

短信发送部分通过libcurl库和叮咚云平台提供的接口实现

UI美化:使用QT的qss对UI进行了美化,添加了选项与背景,实现了界面的切换。

UI界面共分为

widget.ui 登陆界面

secondWidget.ui 主界面

regiWidget.ui 注册界面

changePasswd.ui 密码修改界面

findPasswd.ui 密码找回界面

dialog.ui 难度选择界面

question.ui 出题界面

score.ui 统计界面

 登录界面:

 

 主界面:

 

 

 注册界面:

 

 

 

 做题界面:

 

 

 

 

 

 

 统计界面:

 

 

 

 

 

二、后端

卷子的生成程序和提供生成正确错误答案的接口以及统计部分还有账号的数据库构建——由队友负责

共分为以下部分:

 

数据库:

 

通过SQLLite数据库存储用户的账号密码和电话号

以此实现注册账号登陆账号和忘记密码

其中忘记密码的实现为输入用户名和电话号,提示对应的密码

 

出题:

 

通过爬虫爬取真实的初中高中题目并且爬取整个HTML显示在QT界面上

 

 

 

并且分为不同的类别利用爬虫得到了真实的初高中试题,试题一共有三大类

分别为小学,初中,高中,小学类中全部是基础的加减法题目,初高中类分成了若干小类,有不同类别的数学题目,例如高中—解析几何题目

 

题目统计:

每次在得到试卷时,都会分析这张随机得到的试卷的试题类型分布情况

并且在跳转至分数结算界面时,会跳出一张本次试卷中的题目类型占比的饼状图

可以帮助用户了解自己在面临哪一些知识点表现出色,面临哪一些知识点时需要加强

根据统计得到的分数将用户的表现分为优秀,良好,及格与不及格四档

 

个人项目复用:

由于我和队友的个人项目语言分别为java和Python而我们准备用QT做开发,而QT却是基于C++的开发架构

所以说我们对于个人项目的复用较少,仅在小学题目出题时复用了个人项目出题的代码逻辑

并且不止于复用,还是代码跨语言的复用

我的经验就是,不要试图代码跨语言复用,不要混合编程

不要跨语言编程,会变得不幸

 

 

结对编程经验: 

我们这一次走了许多的弯路

由于选用的是最新版的QT6.2,所以很多QT5的环境都不能再使用

这就导致本来可以在QT5运行的代码却不能在我们的项目上运行

并且在短信功能实现上,提供C++短信接口的平台少之又少

最终还是通过Libcurl库实现了短信的发送

但是libcurl库仅有mingW版本,而我们用的编程环境是MSVC

这就导致我们需要对CURL重新用MSVC编译,得到MSVC版本的libcurl库,这一问题困扰了我们很久很久

但最终项目还是磕磕绊绊的完成了,并且在59分56秒成功提交

总的来说我的经验就是,不要接近C++,会变得不幸

 

posted @ 2021-10-10 20:09  奉孝。  阅读(25)  评论(0)    收藏  举报