结对编程项目分析

前言、

今天彻底完成了结对编程项目。

从个人项目开始到结对编程结束,过程一直比较坎坷。

个人项目的困难主要集中在出题方面,再详细点还是括号问题,最初的个人项目只能完成括号内括号,不能生成两个独立的括号,这个问题在结对编程开始时,参照搭档的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

时间: 2024-08-30 16:35:52

结对编程项目分析的相关文章

结对编程 搭档个人项目分析

看别人的代码,我觉得是一个痛苦又会有所收获的过程,很多和自己的逻辑不相符的算法思路都是皱着眉头硬看下去,但有的完全理解后,转念一想好像又确实没啥毛病,甚至还比自己的思路巧妙了那么一些,拓展了自己下一次在面对同样问题时的解决思路 队友和我自己一样,也是用了c++(虽然和java一样都半斤八两,但毕竟是大一就学的语言总有点亲切的味道?) 先说优点,首先是注释很清楚,清晰的注释无疑让我的阅读体验上升了不少,可以明了地看出算法的思路(缓缓放下了手中的刀.......) int Primary(int n

结对编程个人项目分析

项目需求 个人项目:中小学数学卷子自动生成程序 用户: 小学.初中和高中数学老师. 功能: 1.命令行输入用户名和密码,两者之间用空格隔开(程序预设小学.初中和高中各三个账号,具体见附表),如果用户名和密码都正确,将根据账户类型显示“当前选择为XX出题”,XX为小学.初中和高中三个选项中的一个.否则提示“请输入正确的用户名.密码”,重新输入用户名.密码: 2.登录后,系统提示“准备生成XX数学题目,请输入生成题目数量(输入-1将退出当前用户,重新登录):”,XX为小学.初中和高中三个选项中的一个

结对编程:电梯调度

电梯调度项目: 项目分析与需求: 从题目上来看,项目要求编写一个掌控电梯的程序.电梯这个东西,大家都乘过,无非就是:乘客上电梯,判断是否超重,乘客选择想要达到的楼层,最后依次去到离需求最近的一个楼层. 项目中要求有四个电梯,其中第一号和第四号电梯是一模一样的,只需要把负载量给修改即可:第二和第三也大同小异,只需要把负载量和输入楼层的判断方式修改一下即可. 在我们的设想中,我们要达到的效果是这样的:得有一个switch语句,来控制一开始的电梯选择界面:之后在case语句之后相应搭载各种需要的语句以

结对-结对编程项目作业名称-结对项目总结

结对编程项目进度报告 项目名称:电灯游戏 人    员:董馨遥  2015035107077 杨  露  2015035107084 所用时间:2017.09.14 ----2017.10.25 游戏项目分析:有个N行N列的正方形灯板,当你开关其中一盏灯:它和上下左右的灯的状态全部反转,如果被点击的灯不是第一排,则改变上边的灯,如果被点击的灯不是最后一排,则改变下边的灯,如果被点击的灯是最左边,则改变右边的灯,如果被点击的灯适最右边,则改变左边的灯.最后是所有的灯都亮 游戏运行结果:运行代码后,

软件工程网络15专业结对编程

结对编程作业总览 项目成员: 黄俊麟 201521123022 郑子杰 201521123021 项目码云地址: https://gitee.com/paitouzi/pair_programming/tree/master 具体项目分析: 1.需求分析 本次结对编程,我们自己新编写了一个计算器程序,能够实现简单的加减乘除运算. 在结对编程的分工中,我所负责的任务如下: 初始化业务逻辑. 开方.正负.清零.退格.数字内容输入拼接,输出结果的实现. 四则运算算法的实现. 每个按钮返回对应的业务(每

结对编程

结对编程(英语:Pair programming)是一种敏捷软件开发的方法,两个程序员在一个计算机上共同工作.一个人输入代码,而另一个人审查他输入的每一行代码.输入代码的人称作驾驶员,审查代码的人称作观察员(或导航员).两个程序员经常互换角色. 在结对编程中,观察员同时考虑工作的战略性方向,提出改进的意见,或将来可能出现的问题以便处理.这样使得驾驶者可以集中全部注意力在完成当前任务的"战术"方面.观察员当作安全网和指南.结对编程对开发程序有很多好处.比如增加纪律性,写出更好的代码等.

软件工程------结对编程第二次

这一周我(1551426)还是继续和我们组的成员(1551419)两人一起结对编程,除此之外,我们还设计了数据库的,总共三个关系模式 room(roomtype,dailyprice,deposit) roominfo(roomnumber,roomtype,isfree) guest(id, startday,phonenumber,roomnumber,name,sex,stayday) 起初我们把room和guest 放在了一起,后来发现数据的冗余以后马上换成三个关系表. 这是我们的关系图

软工第二次实验——结对编程

1丶小组成员 卫瑞亮 1500802122 王玉卿 1500802099 2.代码链接 https://coding.net/u/qq1062718477/p/SE_task/git/commits/master/ 3.软件界面 4.结对编程照片 5.心得体会 到今天接触结对编程差不多两周了,对于结对编程有了更加深刻地理解,通过结对编程,我们可以及时的发现并解决后面可能会出现的问题,并且还能提升我们与别 人进行交流的能力,与人沟通对我们来说也是极为重要的,同时,结对编程使我们频繁进行交流,而且要

结对编程2——单元测试

 周迪 201421123089    黄睿 201421123069  coding.net 地址:http://git.oschina.net/hr2324/SoftEngHW 1.我们的代码要使它的利用率大大提高,所以我们要通过单元测试进一步完善代码,发现细小的错误.于是这次就用JUnit进行了简单四则运算的单元测试. a.需求分析:(1)在上次的基础上将计算模块单独创建一个类: (2)针对计算类做单元测试: (3)主要做整数和真分数的加减乘除: (4) 增量式开发,用git命令提交到co