结对编程项目总结 by:陈宏伟&刘益
结对编程项目在欢快的国庆假期中也顺利结束了。从最初拿到结对编程项目的思考,再到一步一步实现,中间经历了一个漫长的过程。在我和队友的多次协商下,最终我们还是选择使用基于python来实现这一次结对编程项目,并且最终选择了以eric6 + pyqt5 +Anaconda3以及pycharm混搭的开发环境来实现了此次带UI的中小学生题目生成系统。
设计实现:
关于此次结对项目,我和队友总结了一下,主要分为两个方面,UI加上后台的实现,我们也进行了明确的分工,我去实现UI界面,队友实现后台系统,后期再根据我每个页面提供给队友的接口,把UI和后台实现进行整合。在实现的过程中,我们也遇到了很多困难,然后我们也对此分别进行了总结。
UI的实现:
起初最开始拿到结对编程项目的需求的时候,先是冷静分析了一波,UI的实现具体需要哪些页面,页面与页面之间的关系是什么,怎么去实现页面之间的相互跳转。起初分析完后,最开始是用的python自带的tkinter模块进行每一个界面的设计,但当设计第一个界面的时候,便出现了问题,关于label控件在背景图片上的显示问题,尝试了很多方法,画布,背景图片和label控件的组合方法或者分开来按照顺序贴图,但是设计出来都达不到自己预期所想要的效果。最终还是放弃了tkinter,选择了功能更为强大的pyqt5,加上以前学习UI所搭建好的eric6和Anconda3,最终实现了所想要的效果。
后台的实现:
因为队友最初的个人项目是用C++来写的,但是我们决定整个项目基于python来实现之后,队友还是选择了重新把C++代码改成了python代码,并且在以前所遇到的出题的出现的问题上进行了优化,还多加实现了项目所需要的其他功能,比如题目的计算,短信验证,统计成绩等等。尤其是在对题目进行计算的时候我们遇到了些许困难,队友最开始的时候想的是使用队列这一结构对题目答案进行计算,先只考虑小学的情况,用一个队列来保存算式里面的运算数,用另一个队列来保存算式里的运算符,定义括号长度从2开始递增,然后先对算式进行遍历,将括号长度为2包含的两个操作数放入到队列1里,然后将其中的运算符放入队列2里,依次类推,最终将所有运算数和操作符全部放完,再每次从队列1中取出两个元素,并从队列2中取出一个操作符,然后进行计算,将得到的值重新放入到队列1的队尾,一直循环,直到队列2为空,队列1里所得到的数值便是最后的计算结果。对于初中生和高中生来说,只需要先将加入的某数的平方开方或者三角函数替换为具体数值,再复用小学计算的方法便能实现。但最后还是有点小bug,最终我们根据查找资料,然后运用的python里面的自带的eval()函数进行计算,最终能算出具体的数值。
组合的实现:
在进行UI开发的时候,采用的思想是页面与逻辑的分离,每一个UI都有一个UI界面的py文件和一个具体控件逻辑行为实现的py文件,而控件逻辑行为实现的文件,恰好为我们后台代码与UI界面的结合提供了一个很好的接口,我们只需要将我们后台具体实现的某个页面所需要的代码糅合进槽函数中,便能实现后台与UI界面的完美融合。

成果展示:






结对编程的经验教训:
结对编程项目总结 by:陈宏伟&刘益的更多相关文章
- 结对编程项目——四则运算vs版
结对编程项目--四则运算vs版 1)小伙伴信息: 学号:130201238 赵莹 博客地址:点我进入 小伙伴的博客 2)实现的功能: 实现带有用户界面的四则运算:将原只能在 ...
- 20175324王陈峤宇 2018-2019-2《Java程序设计》结对编程项目-四则运算 第一周 阶段性总结
20175324王陈峤宇 2018-2019-2<Java程序设计>结对编程项目-四则运算 第一周 阶段性总结 需求分析 这次的结对作业是要求我们利用栈来设计一个计算器. 自动生成四则运算 ...
- 结对编程项目——C语言实现WordCount Web化
结对编程项目 代码地址 201631062219,201631011410 gitee项目地址:https://gitee.com/xxlznb/pair_programming 作业地址:https ...
- 20175229许钰玮 2018-2019-2《Java程序设计》结对编程项目-四则运算 第一周 阶段性总结
20175229许钰玮 2018-2019-2<Java程序设计>结对编程项目-四则运算 第一周 阶段性总结 需求分析 自动生成四则运算题目(加.减.乘.除). 既可以用前缀算法(波兰算法 ...
- 20175311胡济栋 2018-2019-2《Java程序设计》结对编程项目-四则运算 第二周 阶段性总结
20175311胡济栋 2018-2019-2<Java程序设计>结对编程项目-四则运算 第二周 阶段性总结 需求分析 这是利用栈来设计一个计算器的第二阶段总结. 自动生成四则运算的题目( ...
- 结对编程项目总结(core2组)
结对编程项目总结(core2组) 作业---四则运算(Core 第二组) ----by 吴雪晴 PB16061514 齐天杨 PB16060706 一.项目简介 项目的任务为制作一个给(貌似是?) ...
- 结对编程项目复盘:带UI的小初高数学学习软件
实现个人项目时,由于我当时的Java GUI编程基础还比较薄弱,所以我选择通过命令行实现,并将编程开发的重点放到了算法效率上去.没能设计出用户体验更佳的UI成为了我在个人项目阶段最大的遗憾. 在这次结 ...
- 结对编程项目报告--四则运算CORE
<!doctype html> sw_lab2.mdhtml {overflow-x: initial !important;}#write, body { height: auto; } ...
- 这就是小学生也会用的四则计算练习APP吗?- by软工结对编程项目作业
结对编程项目 软件工程 这就是链接 作业要求 这就是链接 作业目标 熟悉在未结对情况下如何结对开发项目 Github与合作者 合作者(学号): 区德明:318005422 虚左以待 Github链接: ...
随机推荐
- iOS----------has copy command from(bug修复)
:-1: Multiple commands produce '/Users/apple/Library/Developer/Xcode/DerivedData/Pic-frfhvoheijeiybf ...
- 从一个git仓库拷贝到另一个git仓库
利用git从一个仓库拷贝一个项目到另一个仓库,并且log也能够一起过去. 1.从原地址克隆一份裸版本库,比如原本托管于 GitHub. git clone --bare http://github.. ...
- bat脚本自定义魔兽warIII运行分辨率,去黑边
我们一般平时安装完WarIII后运行时的分辨率默认是800*600,导致有黑边的存在.所以我写了一个bat脚本来自定义WarIII的运行分辨率.需要以管理员身份运行. 下载链接: 链接:https:/ ...
- pytest之收集用例规则与运行指定用例
前言 上篇文章相信大家已经了解了pytest在cmd下结合各种命令行参数如何运行测试用例,并输出我们想要看到的信息.那么今天会讲解一下pytest是如何收集我们写好的用例?我们又有哪些方式来运行单个用 ...
- Video/Audio禁止快进(退)
首先接着上个随笔.上个随笔主要介绍了视频音频的相关操作.属性和方法.这里主要记录一个应用:禁止快进(快退同理). 思路:监听快进事件(此处是监听播放时间更新),利用一个缓存的时间和播放到的时间进行对比 ...
- redis缓存类
<?php class Redis_model{ public $redis = null; public function __construct() { $hosts = $this-> ...
- Linux 桌面玩家指南:15. 深度学习可以这样玩
特别说明:要在我的随笔后写评论的小伙伴们请注意了,我的博客开启了 MathJax 数学公式支持,MathJax 使用$标记数学公式的开始和结束.如果某条评论中出现了两个$,MathJax 会将两个$之 ...
- Vue评论组件案例
最近学习了Vue前端框架,在这里记录一下组件的用法,我自己试着写了一个评论的组件,大神看到勿喷,欢迎提出宝贵意见. 首先看一下效果图 用到的文件有: <link rel="styles ...
- 简单读!zookeeper单机模式的启动逻辑
zk用处如此之多,以至于每个地方都要你理解zk原理! 请按如下操作姿势打开: 1. 打开zk的git仓库地址:https://github.com/apache/zookeeper , 确认过眼神,它 ...
- vs 2017 vs code
vs 2017 Enterprise: NJVYC-BMHX2-G77MM-4XJMR-6Q8QF Professional: KBJFW-NXHK6-W4WJM-CRMQB-G3CDH ==== ...