结对编程总结之我的血汗泪

Posted noyauuu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了结对编程总结之我的血汗泪相关的知识,希望对你有一定的参考价值。

一、项目需求

这次要求是设计一个带UI的小初高数学学习软件,具体功能如下:

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

2、用户完成注册后,界面提示设置密码,用户输入两次密码匹配后设置密码成功。在登录状态下可修改密码,输入正确的原密码,再输入两次相同的新密码后修改成功;

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

4、用户输入题目数量后,生成一张试卷,界面显示第一题的题干和四个选项,用户选择四个选项中的一个后提交,界面显示第二题,...,直至最后一题;

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

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

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

 

二、实验过程

1、 实验环境搭建

在之前的个人项目中,我的代码是用python写的,而我的搭档路宁则是用的C++。而这次的结对项目要求有UI界面,

所以我们决定以我的代码为基础来完成这次的作业。首先就是环境的搭建了,我们选用的是Anaconda3+eric6+pyqt5

的组合(因为据说比较容易上手)。但是俗话说得好,千里之行,“止于”足下,我的第一步就走得非常惨烈。我最先

是跟着网上很详细的安装教程一步一步走的,但是不出所料,由于软件版本不同(目前Anaconda网站上只有最新版

本可以下载)等原因,到处都有出现error,根本不行。于是疯狂搜索,前前后后重新安装了可能得有八九次,在总结

了无数个博客上的“失败经验”后,终于找到了适合我的安装方案。有需要的同学可以去看看这两个博客,把这两篇博

文的内容结合起来就是目前来说最好的方法。

特别鸣谢:

https://blog.csdn.net/alai986/article/details/86035408

https://blog.csdn.net/FenDouZuoQingChun/article/details/87934174

2、 UI界面生成

虽然说我的个人项目是用python写的,但并没有说我对python的运用就非常熟练了,许多函数的用法也是一边写一

边搜索的。于是,当我打开eric6后,内心是非常惊恐的,因为发现好多东西完全看不懂…但是在经过一两天的疯狂

补课下,也能够写出我的一个简单小界面了。归根结底来说,每个界面(对话框)就是一个类,可以在类里创建你

自己的逻辑函数,或者直接根据UI生成对应控件(button)的槽函数,并在这些函数里调用库自带的函数,来完成

相应的操作,比如按pushButton跳转下一界面等等。上手之后就会发现很简单,这里推荐一本叫《Pyqt5快速开发与实战》,

校图书馆就有借的,书里面非常详细的介绍了每种控件的自带函数与各种操作,比较适合我们这种新手阅读。

3、  个人项目复用

个人项目复用到工程中其实也蛮简单,直接把生成随机题目的对应代码套用进去就好,而对我们来说最难的部分是

如何计算出每道随机数学题的答案。Python其实相对简单,因为有eval函数,可以直接计算简单的加减乘除式子,

所以只要把初高中里面带的三角函数和根号平方提前计算再放回原式子就好。这里想要说一下的就是我的两个bug。

第一个是括号问题,三角函数没有提前去掉内部的括号,所以调用math.sin函数时计算值就一直出错。光就这个小小

的bug,我跟我的搭档改了可能得有大半天,当时改到最后几乎要气的把电脑扔下综合楼,结果在一遍遍排查后终于

找出了错误原因,才发现是个小小的点没注意。第二个bug是等号,同样,是在调用eval函数时,怎么都算不出来,

调试也看不出来。最后突然灵机一动,想到自己没把公式最后的等号字符去掉,这才运行正确。通过这件事情告诉

我们,投机从不能取巧,只有踏踏实实,一步一步的走好,才能直达成功的终点。

4、 打包成exe文件

当完成项目后,需要对工程文件进行打包并输出可执行目标文件。这一步也不难,输入相应的指令就好,但是我们

一开始弄的时候也是死活打不开。网上找来找去,试用了种种解决办法也毫无作用,直到最后看了一篇博文,原来

是我们的.py文件缺少了一段代码,所以才不能运行。于是添加上代码后,顺利输出exe文件。

 

三、结果展示

 技术图片

 技术图片

 技术图片

 技术图片

技术图片

 

技术图片

 

四、感想总结

对于过程中种种错误的感想上面已经写了很多,这里我想写点别的。我之前从来没写过UI界面(不会写java…),

所以一开始看到这个项目的需求是很蒙的。选了Pyqt5来写以后,首先光是安装我就安了可能有一两天,不停的

卸载删除安装,晚上也睡不着,整个人都浑浑噩噩的,因为进度实在是太赶了,当时只剩下56天时间,而我连

软件都没打开。安好了之后,按照教程,生成code以后,有点更绝望了。周围的朋友大多数是用Java写的,搭

档也不会python,没人能教我(我也不太好意思去问)。但现在说这么多如何困难如何艰苦的话,也没什么太

大意义了,反正现在已经做出来了。不经历风雨,怎能见彩虹!不管是学习,还是生活,我觉得都还是需要一点

励志鸡汤的。

以上是关于结对编程总结之我的血汗泪的主要内容,如果未能解决你的问题,请参考以下文章

课后作业-结对编程项目总结

结对编程项目总结

结对编程总结 (黄飞龙+覃浩芹)

课后作业-结对编程项目总结

20172325《结对编程——四则运算》第一周总结

课后作业-结对编程项目总结