一、分析需求

  在拿到结对编程项目需求文档后,我和队友第一件事就是讨论需求,分析项目给出的需求以及实现的一些细节。比如,登录界面的设置(注册、重置、登录按钮),注册界面的输入框设置(手机号、验证码、密码、确认密码),题目难度和数量界面的设置等这些逻辑流程问题。并大致对各个类需要实现的功能和接口进行了商定,这样方便了后期的合拢。

  下图为当时讨论时的笔记——

二、编程实现

  我负责的是用户手机注册并发送验证码到相应手机号部分和随机算式计算结果部分。

1、接收验证码部分

  最初是根据老师给的提示,在阿里云平台中申请短信服务,但短信签名的申请过程非常非常非常不顺利,总是因各种理由未通过,几经修改也无济于事。

  后来便开始寻找其他平台,看是否能够申请到他们的短信签名。

其中,百度云、腾讯云、凌凯这三家平台成为了我们的第二条路。但是凌凯虽然稳定且老牌,但他不针对个人用户,而是面对高校、企业等有大规模发送短信需求的用户,虽然其有十分成熟的短信验证码功能,但我们因无资质只能放弃;百度云更是直接pass,因为其短信业务的开通需要公司执照,直接将我们扔出了门外。所幸,随后腾讯云给了我们一条生路。在开通了公众号后,成功通过了短信签名和短信正文模板的申请。

  至此,我们得到了发送短信验证码的关键参数,并根据腾讯云提供的java API模板在完成参数配置后实现了向用户注册手机号发送短信验证码的功能。

2、随机算式计算部分

  引用队友之前随机算式生成部分,随机算式计算类Calculater传入随机生成的String型算式,输出float型运算结果。运算过程中对“(”、“+”、“-”、“×”、“÷”、“)”、“=”这些操作符进行优先级的定义,并按照优先级分别将操作符和操作符左右的数字压入栈中。

下图为对操作符的优先级定义——

  为了简化运算过程,我们对算式先进行了一些处理,将三角函数和平方开方部分先算出结果,将结果替换到原来的位置。在这里我最开始运用的是for循环将结果和原字符串位置进行移位,以达到替换的效果。但当平方数为102以上时这里就会出现字符串溢出的问题,所以我的队友提出了使用StringBuilder中的replace方法实现对字符串的替换并帮助我进行了修改,在这里感谢大佬援手。

  下图为对算式的提前处理部分——

Attention:在这里,我要向大家隆重介绍一个函数——eval()

  这是多么神奇的一个函数呢,大概就是让我之前花在处理栈空错误的大把时间变成0。

  在抛出异常处理后,输入包含括号、数字(含小数)、+-×÷操作符的标准四则运算表达式后,一个回车便可计算出double类型的结果,可谓十分方便了……

  实现如下——

三、合拢测试

在最后的合拢测试部分,随着测试次数的增多,很多bug也接连出现,再次感谢大佬carry,修改了如闪退、输入空、总分错误等bug。

四、使用git以及GitHub进行代码管理

  在Java IDE中包含了git以及Github的功能整合,以IntelliJ IDEA为例,在“VCS-import into version control”里面可以通过”Create git repository”来创建项目的git:

  然后就可以看到左下方出现了一个”Version control”的标签:

  可以通过commit来记录自己所做的更改。之后便会在“Version control”的“log”里面看到自己的commit了:

  那么git有什么用呢?在本地工程中通过commit可以记录文件的改动,然后决定是否需要回退。可以设置分支来添加新功能,在功能可以实现时再将分支合并。而且,git可以将代码上传到GitHub上面,在“VCS-import into version control”里面通过”Share project on Github”来上传项目到自己的GitHub账户上,那么队友即使不在身边也可以让他/她通过GitHub来时刻获取代码的最新状态了。当你想要上传更改时,可以通过“push”命令来执行:

  如果自己的项目是克隆自别人的GitHub仓库,可以通过“pull”指令获取项目的最新状态。如果上传了项目,那么就可以再GitHub的个人主页上看到了,而且也是会记录自己的项目历史的:

五、以下为运行截图

登录界面——

注册界面——

当密码不符要求时——

题目难度选择界面——

题目数量设定界面——

答题界面——

分数显示界面——

转载于:https://www.cnblogs.com/pigeontang/p/9757990.html

结对编程总结+git使用与GitHub代码管理——by林玉俊唐宇涵相关推荐

  1. Git命令大全:轻松掌握Git工具,提高代码管理效率

    文章目录 Git命令大全 一.前言 二.安装 1. Windows系统上的Git安装 2. Linux系统上的Git安装 3. MAC系统上的Git安装 三.配置 四.配置用户名和邮箱地址 五.创建仓 ...

  2. VScode github配置及github代码管理

    今天记录一下我配置VScode中用github来管理自己代码的经验,供有需要的人参考 1.下载git客户端(vscode依赖你本地电脑安装git的能力来管理代码) 地址:https://git-scm ...

  3. 【个人使用篇】github代码管理

    系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 TODO:写完再整理 文章目录 系列文章目录 前言 (1)第一步[下载.新建代码]:clone拉取下载项目/新建自己的项 ...

  4. 软工结对编程之二——UI设计(10061191洪虹10061162刘俊伟)

    本次作业是软工课最后一次大作业,电梯程序的改良优化,我们的工程共有以下几个文件: 代码量约为1500行,以下为代码截图: 运行时虽然速度慢点,但是功能上没有问题,部分运行截图如下: 本次结对编程,时间 ...

  5. Git和Github代码管理实践

    对于代码的管理我们一般使用GitHub+Git或SVN+Redmine,下面主要接介绍一下GitHub和Git的常用操作: 1.GitHub 创建开源项目   先登录其官网注册一个免费使用的账号,依次 ...

  6. github代码管理总结

    一.新建远程仓库 我们在远程新建仓库时,会自动提示两种方式. 设置全局 git config --global user.name "yourname" git config -- ...

  7. GitHub代码管理初探

    一.GitHub结构 几个专用名词的译名如下. Workspace:工作区 Index / Stage:暂存区 Repository:仓库区(或本地仓库) Remote:远程仓库 二.GitHub初级 ...

  8. SourceTree+git结合gitee实现代码管理

      为方便代码托管和协同开发,往往使用到Git,SVN等工具.在Windows和macOS上可使用git配合SourceTree来对Github或Gitee的远端代码进行管理. 1.安装工具 先安装g ...

  9. java编程实现素数环_结对编程(JAVA实现)

    项目成员:黄思扬(3117004657).刘嘉媚(3217004685) 二.PSP表格 PSPPersonal Software Process Stages预估耗时(分钟)实际耗时(分钟) Pla ...

最新文章

  1. mysql 函数,关键字,特性
  2. Android事件处理--读书笔记
  3. 网络编程 - 异步调用
  4. Java编程中值得注意的对象引用现象
  5. MySQL导入导出远程访问命令
  6. 实现模糊查询并忽略大小写
  7. 基于MysqlConnector/C++的数据库连接池的实现
  8. java 线程定时器_Java线程之Timer定时器
  9. @Service @Autowired
  10. java基础面试题之:String 类的常用方法都有那些?
  11. python中intersection用法_Python Set intersection() 方法
  12. avs3 ts格式封装 标准_超能课堂(204):多媒体容器格式变迁录
  13. Java对Domino Objects的访问控制
  14. 开发了一款chrome扩展程序
  15. 仿射解密c语言程序实验报告,仿射加密解密 - 依姆哣特的个人空间 - OSCHINA - 中文开源技术交流社区...
  16. 目标跟踪 MOSSE(Visual Object Tracking using Adaptive Correlation Filters)
  17. GitHub 爬虫项目
  18. Android Studio最新稳定版下载 - 百度网盘(更新于2017年7月14日)
  19. 2014年校园招聘IT公司工资列表
  20. 开机要按F1的解决方法

热门文章

  1. 2021年场(厂)内专用机动车辆安全管理新版试题及场(厂)内专用机动车辆安全管理模拟考试题
  2. MATLAB mex文件
  3. 【Matlab协同任务】二阶一致性算法多无人机协同编队动态仿真【含源码 1740期】
  4. 优Link—移动办公平台
  5. prime_series_level-1
  6. 天天向上的力量(休息日不下降去比较)
  7. DENSO GT-10Q-SU条码扫描器如何恢复出厂设置?
  8. 吉时利杯全国大学生电子测量知识竞赛 获奖名单!
  9. SVN——SVN项目迁移到GIT
  10. 山东大学计算机学院陈敏竹,我院学生辩论队荣获第十三届“山大杯”辩论赛冠军...