结对编程之带UI的中小学数学学习软件

结对编程总结

本次结对编程是以程延博同学的代码为基础修改而成的。

个人项目的复用:

结对编程中的出题逻辑直接使用了原个人项目中的出题代码,只是在其上添加了计算算式结果的代码。

在结对编程中新增添的部分包括:

登录,注册,设置密码修改密码,题目显示,结果显示等界面

算式的结果计算和分数统计

密码的设置存储和修改

手机验证码注册功能

密码格式,手机号有效性,题目数量范围等的检测

一些经验总结和教训:

       界面:

界面使用的javaSwing,认识了一系列API和类,包括像BorderLayout等的各种布局的使用,Jbutton,jPanel,JcheckBox,JFrame,JtextField等等。学会了基本的java Swing页面的编写,各种属性的设置,以及页面之间的跳转(这里使用的是setVisible直接让不需要的页面不显示)

页面看起来就简洁明了!

手机验证码:

在这里使用的阿里云的短信服务,刚开通的时候有100条免费短信包所以非常方便。阿里云的官方文档已经详细地说明了如何使用短信服务,并且还有demo可以参考。

我们要做的只是申请服务,签名,和模板,等待审核,根据他们给出的demo将其中的部分内容修改为自己的内容(比如AcessKey,签名模板等)

这是我第一次使用云服务,感觉很方便,也很神奇。

这里有个小教训就是阿里云的那个文档里并没有把模板那部分代码到底要修改成什么写清楚,我以为是模板名称就行,后来才发现其实还有个模板ID,这个小失误导致我傻傻地改了很久bug。

不过有了这次关于云服务的试用体验,我觉得以后学习起这方面应该也会更容易吧

关于Maven工程:

在看阿里云官方文档的时候,看到写的是推荐通过添加Maven依赖的方式来安装阿里云的Java SDK。所以特意去了解了一下Maven,他其实是一个项目管理工具,能够帮助我们简化构建过程,更方便地管理自己的文件。

关于Maven的安装和Maven与eclipse的集成有兴趣的同学可以去看我的另一篇博客Maven的安装和eclipse的集成

总之,在了解到这些之后,我将项目转换成了Maven项目,

然后通过上面的方法将阿里云短信服务所需要的核心库添加到项目工程中,之后就可以使用阿里云的短信服务啦!

密码的设置修改和存储:

这里仍然使用的是txt文件存储的方式。只要通过BufferedReader,fileReader,fileWriter等输入输出流就可以实现txt文件的存储方式。

密码的修改有一些难度,因为如果通过指针定位到txt文件中某一行容易发生一些不可预计的错误,所以这里修改密码的方式采取的是直接将整个文件(所有的账号密码)读出来,修改需要修改的部分,然后再将整个文件重新写回去。这样其实显得有一些麻烦,以后有机会可以尝试用数据库来做账户的管理。

阅读代码:

在这里不得不提一下我阅读队友代码的体验。这让我深刻地体会到了别人的代码到底有多难理解。尤其是在注释还比较少的情况下。

这也暴露了我们以后在团队合作中可能出现的一个问题,那就是代码的不规范和注释的不清晰导致的工作效率严重下降!也算是给团队项目提了个醒吧,在开始之前,大家最好统一一下代码的规范,并且最好在必要的地方编写注释。

正则表达式

为了检测密码和手机号的有效性,特意去仔细了解了java的正则表达式,收获了很多,这确实是一个对于处理字符串来说非常好的工具!

比如说就通过下面短短的一行式子,就可以轻松地去检验电话号码是否符合标准,而不需要蠢蠢的用if等去做条件判断。

总的来说在这次结对编程中收获了很多

原文地址:https://www.cnblogs.com/yr7950969/p/11600767.html

时间: 2024-10-03 23:06:56

结对编程之带UI的中小学数学学习软件的相关文章

结对编程之带UI的小初高数学学习软件

功能要求: 1.用户注册功能.用户提供手机号码,点击注册将收到一个注册码,用户可使用该注册码完成注册: 2.用户完成注册后,界面提示设置密码,用户输入两次密码匹配后设置密码成功.密码6-10位,必须含大小写字母和数字.用户在登录状态下可修改密码,输入正确的          原密码,再输入两次相同的新密码后修改密码成功: 3.密码设置成功后,跳转到选择界面,界面显示小学.初中和高中三个选项,用户点击其中之一后,提示用户输入需要生成的题目数量: 4.用户输入题目数量后,生成一张试卷(同一张卷子不能

结对编程项目:带UI的小初高数学学习软件

用户: 小学.初中和高中学生. 功能: 1.用户注册功能. 2.登录,修改密码 3.在线做题,评分 经验总结 这次的结对编程并没有实现对个人项目的复用,经过对结对编程需求的分析发现个人项目的出题逻辑完全不能用于小初高数学学习软件, 因为在个人项目中的出题逻辑是几乎是采用的完全随机,在结对编程项目中这种逻辑是行不通的,没有办法采用答案,而且在个人项目中我们 都是采用的面向过程的方法,同时我们的个人项目结构也有点混乱,导致了复用的难度很大.所以我们完全重新写了代码,实现了登录/注测, 修改密码,选择

带UI的小初高数学学习软件-与张凯翔同学共同完成结对编程

这次的结对编程是要我们在个人项目的基础上,经过合作和创新,来完成一个带UI界面的出卷答题系统,综合分析题目,这次的项目共有几个难点: 第一,实现UI界面:第二,通过调用短信服务来进行注册:第三,这次登录的账号都要经过注册,这意味这我们需要使用数据库来储存每一个登录或注册的账号,或者使用文件流从txt文件读取:第四,这次不仅需要出题,还要生成四个答案,就是说要负责出题和做题: 经过我们两个人的讨论,我们决定凭借张凯翔同学已经在个人项目实现UI界面的优势,直接使用JAVA语言进行开发,由张凯翔进行U

结对编程:带ui设计的学生答题系统

带ui的学生答题系统 1.功能 (1)实现登录和注册,可以通过手机验证码进行验证 (2)根据类型和数量出题,生成试卷并且题目不重复 (3)计算分数 2.方法 (1)利用二叉树生成题目,直接计算(答案为小数) (采用逆波兰表达式也可以计算) (2)利用xml存储账户信息 (3)利用正则表达式筛选题目,匹配密码 (4)利用c#的可视化开发工具做界面 3.个人项目复用 (1)虽然个人项目使用的是java,结对项目使用的是c#,但这两门语言有太多相似之处,复制后直接能用. 主要复用了个人项目里的二叉树结

结对编程项目:带UI的小初高数学学习软件总结

需要实现的功能: 1.用户注册功能.用户提供手机号码,点击注册将收到一个注册码,用户可使用该注册码完成注册: 2.用户完成注册后,界面提示设置密码,用户输入两次密码匹配后设置密码成功.密码6-10位,必须含大小写字母和数字.用户在登录状态下可修改密码,输入正确的原密码,再输入两次相同的新密码后修改密码成功: 3.密码设置成功后,跳转到选择界面,界面显示小学.初中和高中三个选项,用户点击其中之一后,提示用户输入需要生成的题目数量: 4.用户输入题目数量后,生成一张试卷(同一张卷子不能有相同题目,题

结对编程-带UI的小初高数学学习软件-分析总结

开发环境选择的是VS2015,使用Win32 API进行开发.我主要负责软件UI的设计和实现,队友负责算式的计算,最后一起实现短信验证码的发送功能,再进行整合. 代码复用的主要部分是生成题目的部分. UI界面的实现: 并没有使用 已经将已经将Windows界面程序的创建过程完全封装的Qt或者MFC进行实现,而是比较底层的使用Win32 API 手动创建窗口以及各种需要用到的窗口控件和手写消息处理函数.怎样做的坏处很明显,就是会导致巨大的代码量以及长久的开发周期,但对于理解Windows窗口程序的

结对编程项目复盘:带UI的小初高数学学习软件

实现个人项目时,由于我当时的Java GUI编程基础还比较薄弱,所以我选择通过命令行实现,并将编程开发的重点放到了算法效率上去.没能设计出用户体验更佳的UI成为了我在个人项目阶段最大的遗憾. 在这次结对编程项目时,有幸能和擅长图形化编程的志豪同学结为队友.他在SIT项目中所学习到的GUI编程方法与我在CCF与ACM训练中积累到的一些算法经验相得益彰,所以在编程项目已经结束的现在,我认为并相信,我们都学到了很多. 经过讨论,我们在一开始便将项目分为四个部分:短信验证码功能实现.UI界面实现.出题功

结对编程——带UI的小初高数学学习软件

因为和队友在写个人项目时使用的都是C++语言,所以在结对编程时使用Qt平台创建图形化界面.结对编程的工作量还是很大的,感觉近一周的大部分时间和精力都花在项目上,脑子里都是代码orz. 看到结对编程的项目需求后,我们对接下来的要做的事情有了一定的计划.首先是熟悉开发环境,因为是我们都是第一次做图形化界面,选择了Qt作为开发工具.一开始对于Qt都是没有接触过完全一头雾水的状态.所以我们决定先花一天的时间学习Qt的一些基本操作和了解相关的内容.当大概了解清楚Qt的操作和实现一些简单的功能操作之后,我们

带UI的小初高数学学习软件---结对编程分析

优点: 1.编程风格统一,函数命名符合规则,函数与变量便于分辨,也很容易从命名懂得其实际意义.代码注释简洁,重点突出. 2.将代码分类三部分,分别实现登录及类型初始化,生成试卷,用户信息类,层次清楚明白,便于修改.各个函数分工明晰.代码的封装性较好. 3.存储生成试卷时还按照类型进行了分类,使结果更为清晰明白. 4.利用文件读入做了题目的重复检测. 缺点: 1.功能实现不完整,未完成对括号的添加. 2.生成题目时运算值可能不够严谨,未对此进行合理性检测. 总结: 对方的代码有很多值得学习的地方.