结对编程项目总结 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链接: ...
随机推荐
- 【学习笔记Part 2● MySQL】
数据库 为什么要用数据库 如何去存放数据?生活中有各种各样的数据.比如说人的姓名.年龄.成绩等.平时我们记录这些信息都是记在大脑中.人的记忆力有限,不可能什么都记住.所以后来人们把数据记录在石头上–& ...
- Win10系统盘制作及安装流程
一.下载最新版的 Win10 镜像 1.打开 MSDN 下载 Windows 系统镜像,即 https://msdn.itellyou.cn/ 2.下载的 iso 镜像文件 3.你可以通过双击 ...
- gittalk报错Error
最近通过github和jekyll搭了一个博客,申请使用了gittalk的评论. 但是博客的页面一直报Error:Not found,如下 发现是gittalk中的信息填写错了,name随便写:Hom ...
- 小白学习Python之路---开发环境的搭建
本节内容 1.Python的介绍 2.发展史 3.安装Python 4.搭建开发环境 5.Hello World程序 一.Python的介绍 Python的创始人为荷兰人吉多·范罗苏姆(Guido v ...
- MacBook IDEA激活码(附视频)
Windows激活请看这里:IDEA激活码 此教程实时更新,请放心使用:如果有新版本出现猪哥都会第一时间尝试激活: idea官网下载地址:https://www.jetbrains.com/idea/ ...
- 微服务实战(三):落地微服务架构到直销系统(构建基于RabbitMq的消息总线)
从前面文章可以看出,消息总线是EDA(事件驱动架构)与微服务架构的核心部件,没有消息总线,就无法很好的实现微服务之间的解耦与通讯.通常我们可以利用现有成熟的消息代理产品或云平台提供的消息服务来构建自己 ...
- 秋招已过,各大厂的面试题分享一波 附C++实现
数据结构和算法是面试的一座大山,尤其去面试大厂更是必不可少!简单说明一下为啥喜欢考数据结构和算法,首先,算法有用也没用,如果是中小型企业的简单业务逻辑,可能用不到啥算法,但大厂一定会用到,都知道数据库 ...
- Flink从入门到放弃(入门篇1)-Flink是什么
戳更多文章: 1-Flink入门 2-本地环境搭建&构建第一个Flink应用 3-DataSet API 4-DataSteam API 5-集群部署 6-分布式缓存 7-重启策略 8-Fli ...
- Tesseract 在 windows 下的安装及简单应用
Tesseract 是一个开源的 OCR 引擎,可以识别多种格式的图像文件并将其转换成文本,最初由 HP 公司开发,后来由 Google 维护.下载地址:https://digi.bib.uni-ma ...
- JDK源码分析(11)之 BlockingQueue 相关
本文将主要结合源码对 JDK 中的阻塞队列进行分析,并比较其各自的特点: 一.BlockingQueue 概述 说到阻塞队列想到的第一个应用场景可能就是生产者消费者模式了,如图所示: 根据上图所示,明 ...