结对编程项目复盘:带UI的小初高数学学习软件
实现个人项目时,由于我当时的Java GUI编程基础还比较薄弱,所以我选择通过命令行实现,并将编程开发的重点放到了算法效率上去。没能设计出用户体验更佳的UI成为了我在个人项目阶段最大的遗憾。
在这次结对编程项目时,有幸能和擅长图形化编程的志豪同学结为队友。他在SIT项目中所学习到的GUI编程方法与我在CCF与ACM训练中积累到的一些算法经验相得益彰,所以在编程项目已经结束的现在,我认为并相信,我们都学到了很多。
经过讨论,我们在一开始便将项目分为四个部分:短信验证码功能实现、UI界面实现、出题功能的实现、题目正确答案的计算与四个选项的给定。本着“越是陌生的领域越是惊喜无穷”的想法,我选择开发UI界面并探索短信验证码的相关SDK,志豪实现出题、给定正确答案、设置错误项算法。在开发过程中,我们互相帮助,他帮助我解决了很多图形化编程上的问题,我也提出了一些算法建议。我们约定了统一的代码风格与接口,将彼此实现的类进行整合,最终完成了项目。

我想先具体说说我实现的那一部分。由于我在GUI编程方面并没有足够的经验,所以在一开始遇到的问题还是比较多的。志豪同学帮助我理解了一些基本组件的用法(如Button与JButton的区别、Jlabel文字的格式设置方法、文本输入框与密码输入框的添加方法、使用Jlabel设置图片的方法、设置背景图片的方法),再结合可视化编程的思想,通过不断调试,我慢慢实现了预期效果。志豪提供了一些宝贵的建议,比如账号信息应本地保存或服务器保存,这样便可以登录之前注册的账号,也使得注册更有意义。我认真听取了他提供的建议,实现了相应功能,我们的项目就这样在彼此的交流之中不断完善。

我认为短信验证码功能的实现同样是一个重点。我通过自己的公众号申请了短信签名,并借助腾讯云提供的SDK实现了短信验证码功能。当我学习到短信正文模板、短信服务API这些概念,并意识到短信验证码本质上本机程序生成的一段随机码而API按模板发送到指定地址时,我内心是小有成就的。这意味着我可以去探索腾讯云、百度云等提供的其他API,先前只是听说而从未真正实现过的人工智能算法似乎离我更近了一步。

志豪的那一部分实现了出题功能与选项生成功能,由于算法逻辑上比较复杂,需要处理的情况比较多,所以他下了不少功夫。令我十分钦佩的一点是,当我们在讨论在做题页面实现题目依次显示的功能时,志豪提出通过链表高效实现,为了进一步有所提高,他没有使用Java提供的容器,而是像初学数据结构一样,从最底层(结点类)开始实现了一个高效的链表。这种“Stay hungry,Stay foolish”的态度非常值得学习。
测试的时候发现了一些美中不足的地方,比如生成的三个错误选项均为保留了两位小数的double类型,在取值上与正确答案接近。所以在当正确答案显然应该为整数时,其余三个选项同样为整数更为合适。志豪进一步完善了三角函数与平方根的计算方法,我们再一起改进了选项查重方法,经过多次调试,我们最终完成了结对编程项目。

感谢志豪一直的认真、负责、有耐心。这次结对编程很好地锻炼了我们的合作能力,我也受益于此,从志豪这儿学到了很多。结对编程项目结束,团队项目GO!
结对编程项目复盘:带UI的小初高数学学习软件的更多相关文章
- 结对编程——带UI的小初高数学学习软件
一.简介 本次项目要求: 1.所有功能通过图形化界面操作,可以是桌面应用,可以是网站(编程语言和技术不限): 2.用户注册功能.用户提供手机号码,点击注册将收到一个注册码,用户可使用该注册码完成注册: ...
- 带UI的小初高数学学习软件—艰难地用C++(QT库)实现的过程
从互相了解对方的代码思路然后确定用C++编写,到用win32写界面时变得摇摆不定的考虑着要不要改变语言,再到用QT写完界面后发现短信接口一般都不提供C++,最后到QT打包出来的可执行文件在别的设备上无 ...
- 带UI的小初高数学学习软件
结对编程项目总结 一.项目需求分析与功能总结 (1)用户注册功能 用户提供手机号码,点击注册将收到一个注册码,用户可使用该注册码完成注册. (2)设置密码功能 密码6-10位,必须含大小写字母和数 ...
- 带UI 的小初高数学学习系统 —结对编程项目总结
一. 项目综述 本系统是基于QT Creator 4.3.0开发环境,开发语言C++,能够实现用户注册,发送短信验证码,用户登陆,用户选择题目类型和数量,显示用户本次答题基本功能.支持对用户账号查重, ...
- HNU_小初高数学学习软件_功能说明
结对编程项目主要功能: 1.用户注册功能.用户提供手机号码,点击注册将收到一个注册码,用户可使用该注册码完成注册: 2.用户完成注册后,界面提示设置密码,用户输入两次密码匹配后设置密码成功.密码6-1 ...
- 结对编程项目总结 by:陈宏伟&刘益
结对编程项目在欢快的国庆假期中也顺利结束了.从最初拿到结对编程项目的思考,再到一步一步实现,中间经历了一个漫长的过程.在我和队友的多次协商下,最终我们还是选择使用基于python来实现这一次结对编程项 ...
- 结对编程项目总结(core2组)
结对编程项目总结(core2组) 作业---四则运算(Core 第二组) ----by 吴雪晴 PB16061514 齐天杨 PB16060706 一.项目简介 项目的任务为制作一个给(貌似是?) ...
- 这就是小学生也会用的四则计算练习APP吗?- by软工结对编程项目作业
结对编程项目 软件工程 这就是链接 作业要求 这就是链接 作业目标 熟悉在未结对情况下如何结对开发项目 Github与合作者 合作者(学号): 区德明:318005422 虚左以待 Github链接: ...
- 20175324王陈峤宇 2018-2019-2《Java程序设计》结对编程项目-四则运算 第一周 阶段性总结
20175324王陈峤宇 2018-2019-2<Java程序设计>结对编程项目-四则运算 第一周 阶段性总结 需求分析 这次的结对作业是要求我们利用栈来设计一个计算器. 自动生成四则运算 ...
随机推荐
- YiluPHP是如何做到不用配置、不用注入就能直接使用所有的类?
使用过YiluPHP的人都会发现,不管是模型类还是逻辑类.辅助类还是工具类,使用所有类都不需要在配置文件中设置加载或注入,也不需要在页面中使用 include 或 require 或 use ,直接使 ...
- UWP 利用Windows.UI.Composition实现简单的放大🔍效果
看一下效果先 我这里实现了鼠标进入和退出的效果,当然也可以添加其他的事件,比如获得焦点和失去焦点的. 先随便写一个xaml布局,一个Grid,里面一张图片. <Grid x:Name=" ...
- ReadWriteLock场景应用解析
本人免费整理了Java高级资料,涵盖了Java.Redis.MongoDB.MySQL.Zookeeper.Spring Cloud.Dubbo高并发分布式等教程,一共30G,需要自己领取.传送门:h ...
- Pytorch 记录
BCELoss BCEWithLogitsLoss 将sigmoid和BCELoss结合在一起,数据的稳定性更好. torch.nn.functional: binary_cross_entropy_ ...
- 关于List和String有意思的几个应用
关于List和String有意思的几个应用 1. List:all_equal 功能:验证列表中的所有元素是否是都一样的. 解析:该技巧是使用[1:] 和 [:-1] 来比较所给定列表中的所有元素 ...
- Xshel和Xftp免费版
打开:https://www.netsarang.com/zh/free-for-home-school/ 然后填写自己的姓名与真实的邮箱即可.提交成功后,会将下载链接发送至刚才填写的邮箱里,发送的下 ...
- c# 保留2位小数 整数时无小数
对数值保存两位小数,有时是整数时,不需要显示两位小数.例如值为:1.32 保留两位,结果是1.32,值为:2,结果有两种显示,2和2.00 /// <summary> /// 金额 /// ...
- JDK新特性关于流操作部分
// array 工具类 可以用来快捷的将数组转化为list List<String> strings = Arrays.asList("zhongguo", &quo ...
- VMware虚拟机Linux配置
1.设置时区和时间 打开虚拟机,设置好用户名和密码,就可以进入了. 进入之后,可以先设置时区和时间 在CentOS桌面右上角,点击时间,然后进行设置 2.添加用户使用root权限 安装虚拟机之后,登录 ...
- Python内置装饰器@property
在<Python装饰器(Decorators )>一文中介绍了python装饰器的概念,日常写代码时有一个装饰器很常见,他就是内置的@property. 我们一步步的来接近这个概念. 一个 ...