目录

一、结对对象

  • 担任角色

    • 驾驶员(Driver):20165223 蔡霓(是控制键盘输入的人)
    • 领航员(Navigator):20165218 赵冰雨(起到领航、提醒的作用)
  • 搭档本次结对博客:20165218
  • 本次结对码云链接:四则运算

二、需求分析

取自《结对编程项目-四则运算》

  • 题目内容

实现一个命令行程序,要求:

自动生成小学四则运算题目(加、减、乘、除)

支持整数

支持多运算符(比如生成包含100个运算符的题目)

支持真分数

统计正确率

  • 扩展需求

    • 文件:

      • 处理生成题目并输出到文件
      • 完成题目后从文件读入并判题
      • 多语言支持:简体中文, 繁體中文, English
    • 生成题目去重

程序一次运行生成的题目不能重复,即任何两道题目不能通过有限次交换+和×左右的算术表达式变换为同一道题目。例如,23 + 45 = 和45 + 23 = 是重复的题目,6 × 8 = 和8 × 6 = 也是重复的题目。3+(2+1)和1+2+3这两个题目是重复的,由于+是左结合的,1+2+3等价于(1+2)+3,也就是3+(1+2),也就是3+(2+1)。但是1+2+3和3+2+1是不重复的两道题,因为1+2+3等价于(1+2)+3,而3+2+1等价于(3+2)+1,它们之间不能通过有限次交换变成同一个题目。(引用自:http://www.cnblogs.com/jiel/p/4810756.html

  • week1要求(本次结对要求)

    • 需求分析
    • 设计思路
    • 支持整数
    • JUnit测试
    • 扩展需求(*选)

三、设计思路


import java.util.Scanner;
import java.util.Random; public class fourOperations
{
//选择所需要的四则运算
public static void main(String[] args)
{
int type;
int A, B, C;
String Exit = "n";
Scanner scanner = new Scanner(System.in);
while ( Exit.equalsIgnoreCase("n"))
{
System.out.println("==========整数的四则运算==========");
System.out.println("请选择要进行的四则运算");
System.out.print("1(+) 2(-) 3(×) 4(÷) : " );
type = scanner.nextInt();
//进行四则运算
switch (type)
{
case 1:
System.out.print("请输入两个整数:");
A = scanner.nextInt();
B = scanner.nextInt();
C = A + B;
System.out.println( A + " + " + B + " = " + C);
break;
case 2:
System.out.print("请输入两个整数:");
A = scanner.nextInt();
B = scanner.nextInt();
C = A - B;
System.out.println( A + " - " + B + " = " + C);
break;
case 3:
System.out.print("请输入两个整数:");
A = scanner.nextInt();
B = scanner.nextInt();
C = A * B;
System.out.println( A + " × " + B + " = " + C);
break;
case 4:
System.out.print("请输入两个整数:");
A = scanner.nextInt();
B = scanner.nextInt();
C = A / B;
System.out.println( A + " ÷ " + B + " = " + C);
break;
//default排错
default:
System.out.print("输入的运算代表数字错误!");
}
//优化设计
System.out.print("退出程序?(y/n): ");
Exit = scanner.nextLine();
Exit = scanner.nextLine();
}
}
}

四、功能截图

  • 测试要求内容

    • 正常测试(正常整数运算)
    • 异常测试(未能实现的小数分数运算)
    • 边界测试(临界点的测试,如0处的运算)
  • 测试截图

    【加法】

【减法】

【乘法】

【除法】

五、结对感受

两人搭配,干活不累。第一次尝试双人结对编写代码,分别担任不同角色的两人在编写代码的时候更轻松了,不会像之前那样“不撞南墙不回头”一个人闷声敲代码浪费宝贵时间。这次的编程中也出现了些问题,但在两个人的努力下都较圆满的解决了。事实上目前的代码也还不够完善,我也要更加努力,在代码的编写上更进一步,希望下一周的结对编程中能学到更多,掌握更多。

20165223 结对编程之四则运算week1-阶段性总结的更多相关文章

  1. 20165223 结对编程之四则运算week2-整体总结

    目录 一.结对对象 二.需求分析 三.设计思路 四.核心代码 五.功能截图 六.结对感受 一.结对对象 担任角色(本周交换角色,流动学习) 驾驶员(Driver):20165218 赵冰雨(是控制键盘 ...

  2. 20175324王陈峤宇 2018-2019-2《Java程序设计》结对编程项目-四则运算 第一周 阶段性总结

    20175324王陈峤宇 2018-2019-2<Java程序设计>结对编程项目-四则运算 第一周 阶段性总结 需求分析 这次的结对作业是要求我们利用栈来设计一个计算器. 自动生成四则运算 ...

  3. 20175229许钰玮 2018-2019-2《Java程序设计》结对编程项目-四则运算 第一周 阶段性总结

    20175229许钰玮 2018-2019-2<Java程序设计>结对编程项目-四则运算 第一周 阶段性总结 需求分析 自动生成四则运算题目(加.减.乘.除). 既可以用前缀算法(波兰算法 ...

  4. 20175311胡济栋 2018-2019-2《Java程序设计》结对编程项目-四则运算 第二周 阶段性总结

    20175311胡济栋 2018-2019-2<Java程序设计>结对编程项目-四则运算 第二周 阶段性总结 需求分析 这是利用栈来设计一个计算器的第二阶段总结. 自动生成四则运算的题目( ...

  5. 结对编程项目——四则运算vs版

    结对编程项目--四则运算vs版 1)小伙伴信息:        学号:130201238 赵莹        博客地址:点我进入 小伙伴的博客 2)实现的功能: 实现带有用户界面的四则运算:将原只能在 ...

  6. 2017-2018-2 1723 『Java程序设计』课程 结对编程练习-四则运算-最后阶段

    2017-2018-2 1723 『Java程序设计』课程 结对编程练习-四则运算-最后阶段 最后的一周,时间越来越紧张,因为之前的拖沓和一些事情的耽误,导致了如今的紧张,这一周应该是我们小组效率最高 ...

  7. 2017-2018-2 1723 『Java程序设计』课程 结对编程练习-四则运算-准备阶段

    2017-2018-2 1723 『Java程序设计』课程 结对编程练习-四则运算-准备阶段 在一个人孤身奋斗了将近半个学期以后,终于迎来的我们的第一次团队协作共同编码,也就是,我们的第一个结对编程练 ...

  8. 2017-2018-2 1723 『Java程序设计』课程 结对编程练习-四则运算-中坚阶段

    2017-2018-2 1723 『Java程序设计』课程 结对编程练习-四则运算-中坚阶段 如今的编写,进入了一段时间的中坚阶段,小伙伴的思路虽然很一致,但是总是存在着一定问题,这就造成了我们中坚阶 ...

  9. 结对编程1——四则运算-GUI

    码市链接:https://coding.net/u/hmhhh/p/hmh-homework/git/tree/master/ 201421123003 黄建英 201421123004 黄美海 题目 ...

随机推荐

  1. js数据放入缓存,需要再调用

    再贴代码之前先描述下,这个技术应用的场景:一个页面的http请求次数能少点就少,这样大大提高用户体验.所以再一个页面发起一个请求,把所有数据都拿到后储存在缓存里面,你想用的时候再调用出来,这个是非常好 ...

  2. 如何入门vue之二

    学习完指令之后我们需要学习的就是组件. 在学习组件前我们要了解一下 methods 用来处理事件的. computed用来计算属性  他就是类似于data一样只不过是动态的处理数据 里面写的方法当成属 ...

  3. Windows BAT 命令下del 与 rd 命令

    https://blog.csdn.net/jigetage/article/details/81180757 RD 与 DEL 命令 windows bat 目录和文件的删除处理. 命令:RD,删除 ...

  4. mybatis两种开发方式

    本文首先讲解从JDBC到mybatis的演变过程,然后是使用mybatis进行开发的两种方式. 一 JDBC的使用及其优化 1.使用JDBC进行数据库操作 加载JDBC驱动: 建立并获取数据库连接: ...

  5. linux apache tomcat 安装和升级

    一,安装tomcat 注意!安装tomcat前需安装配置JDK,安装方式请参照这篇文章: http://www.cnblogs.com/blog4matto/p/5582054.html 1 tomc ...

  6. SQL约束(主键约束、外键约束、自动递增、不允许空值、值唯一、值默认、值限制范围)

    NOT NULL 不允许空值约束 NOT NULL 约束强制列不接受 NULL 值(NULL值就是没有值或缺值).NOT NULL 约束强制字段始终包含值,即不向字段添加值,就无法插入新记录或者更新记 ...

  7. Javascript 实现复制(Copy)动作方法大全

    一.实现点击按钮,复制文本框中的的内容 <script type="text/javascript"> function copyUrl2() { var Url2=d ...

  8. javascript帧动画

    前面的话 帧动画就是在“连续的关键帧”中分解动画动作,也就是在时间轴的每帧上逐帧绘制不同的内容,使其连续播放而成的动画.由于是一帧一帧的画,所以帧动画具有非常大的灵活性,几乎可以表现任何想表现的内容. ...

  9. 5.cgroup资源控制

    控制组( CGroups)是 Linux 内核的一个特性,主要用来对共享资源进行隔离.限制.审计等. 只有将分配到容器的资源进行控制,才能避免多个容器同时运行时对宿主机系统的资源竞争.每个控制组是一组 ...

  10. Mac下搭建PHP服务器

    打开终端 1. 输入  sudo vi /etc/apache2/httpd.conf 2.把167-170的前面#去掉即加载下面几个模块 1.LoadModule alias_module libe ...