前言、
今天彻底完成了结对编程项目。
从个人项目开始到结对编程结束,过程一直比较坎坷。
个人项目的困难主要集中在出题方面,再详细点还是括号问题,最初的个人项目只能完成括号内括号,不能生成两个独立的括号,这个问题在结对编程开始时,参照搭档的c语言代码,已经得到解决。主要思想是建立两个列表分别记录每个数字左右两边的括号情况。
综述、
因为是第一次真正做一个ui的比较完整的小项目,第一次用python来做ui,一切也基本上是从零开始,从网上找资料学会最基本的之后,越往后就越需要自己一点点摸索。
在开始结对编程项目后,结合结对编程项目要求发现个人项目实现的多种功能都会不适合结对编程要求。比如后端的出题函数,如果出题出的不合理,在结对编程需要解题的时候就会无比复杂,真是给自己使绊子。这就要考虑重新规划出题的规则,从而简化解题步骤。
我和搭档的这个项目的解题步骤可以分为以下几步:去平方,去根号,去三角函数,到了这一步,python库的强大功能就体现出来了,只要是小学格式的题目,用python可以直接计算出来,省却了判断括号确定优先级来运算的这一复杂步骤。
结对编程项目开始后,第一想法就是做一个小的exe可执行文件,后来发现网页好像更适合这个项目,但是没有做网页的基础,需要从头开始学习,所以我和搭档两个人就一条路走到黑,一路研究python结合Qtdesigner来实现这个项目。
项目功能介绍、
一、用户登录
用户账号和密码存放在数据库
当前界面可以选择登录或跳转到注册界面
二、用户注册
用户注册过程,先提供手机号码发送短信验证码,验证码输入正确后允许输入用户名和密码来注册新用户
若以上信息符合要求则会注册成功
三、题目类型选择
选择题目数量(10-30)和题目类型(小学,初中,高中)
当前界面提供修改密码和退出登录功能
题目类型选择后可以开始做题
四、做题界面
在当前界面可以选择退出当前用户重新登陆、重新出题、修改密码、提交功能
题目显示第几题和内容加四个选项
做题过程中可以随时提交,可以点击下一题和上一题切换题目
五、分数显示
显示得分情况
可以选择重新出题或者退出登录
六、密码修改
登录状态下可以进行当前用户密码修改
遇到的问题、
前端ui界面的开发完全是从0开始,在此项目开发的过程中遇到了几个比较容易踩坑的地方。
一、两个窗口之间的来回切换,比如登陆界面和注册界面,可以从登陆界面到注册界面,也可以从注册界面跳到登陆界面,这种在小白开始学习阶段,在对python的pyqt5设计ui的类包装一知半解的情况下是很难以理解与实现的,网上找到的资料大多不能很好的反应这种情况。
二、信号槽的使用,实际上在我看来python的pyqt的ui的信号槽是非常人性化的,比较简单易懂,但是要实现前端与后端程序的结合,在没有经验的情况下没有很好的思路导致整个项目前后端分界不是很明确。
三、各个部件的各种功能实现,需要一点一点的摸索。
四、不同界面的传参问题。解决这个问题的过程中,加深了我对python窗口class的理解。
五、用户名和密码问题。最开始用户名和密码是保存到本地txt.文件夹。后来考虑用数据库,但是由于对于数据库不是很了解,服务器端的数据库实现不了,最后采用的也是本地数据库。
六、项目打包成exe过程中踩过了一些坑。打包后主要遇到了两个错误。一个是因为数据库的路径问题,需要用绝对路径,否则打包后的exe文件打不开数据库。二是找不到Qt5Core.dll,具体原因是有的版本pyqt5库对系统变量的加载存在bug,是什么原因只有官方才能解释,对有bug的版本库提供一种办法就是,在主程序中pyqt5库import之前就对系统变量进行手动设置。
总结分析
项目到目前为止还很不完善,会在之后的时间慢慢改进。
这次项目开发的过程也很不完善,没有详细的进行需求的获取,项目分析,没有相关文档的记录。
结对编程项目的实现是两个人努力的成果,由于考虑到python强大的库函数,我们在结对编程项目开始前决定以我的个人项目代码为基础编写程序。我主要负责后端的出题解题、验证码发送、程序的各种合理性判断,前端ui界面全权由搭档设计实现,最后再由我将前后端联调。
此次项目收获很大,提高了自己编写代码的能力,提高了使用python语言的熟练度,学习了ui设计的一种方式。更重要的是初步体验到了团队协作的重要性。程序编写之前的需求分析尤为重要。前端后端开发者要充分沟通到各个方面,这样才会在前后端联调的过程中提高工作效率。每个人在做好自己工作的同时要对整个项目有一个整体性的了解,同时又要掌握各个细节。最终才能在大家的共同努力下实现整个工程。
项目开发过程中发现自己的编程能力严重不足,以后要多多掌握一些技术来丰富自己的技能。
原文地址:https://www.cnblogs.com/Super-Fan/p/11602881.html