博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
20165231 结对编程项目_四则运算阶段总结
阅读量:5769 次
发布时间:2019-06-18

本文共 1391 字,大约阅读时间需要 4 分钟。

题目描述

邹欣老师在一文中提到:

在结对编程模式下,一对程序员肩并肩地、平等地、互补地进行开发工作。两个程序员并排坐在一台电脑前,面对同一个显示器,使用同一个键盘,同一个鼠标一起工作。他们一起分析,一起设计,一起写测试用例,一起编码,一起单元测试,一起集成测试,一起写文档等。

生活中也有很多类似的搭档关系,例如:

越野赛车(驾驶,领航员)驾驶飞机(驾驶,副驾驶)战斗机的编组(长机,僚机)

我们把结对编程中两位合作者的关系看作驾驶员和领航员,其中:

驾驶员(Driver)是控制键盘输入的人领航员(Navigator)起到领航、提醒的作用

在本次结对编程中,即需要两位合作者之间建立驾驶员和领航员的关系。

中缀表达式与后缀表达式

中缀表达式就是运算符号在运算数中间的表达式,比如1+2,顾名思义,后缀表达式就是运算符在运算数后面的表达式,比如1 2 +。为什么要讲后缀表达式呢?因为电脑运算后缀表达式会比中缀表达式方便很多。那么如何运算后缀表达式呢?

举个例子:计算9+(3-1)3+6/2,转换为后缀表达式即为9 3 1 - 3 + 6 2 / +(怎么转换后面再讲)。计算规则就是建立一个空栈,遇到数字就入栈,遇到符号就以符号前面的两个数为运算数进行计算。

image
image

中缀表达式转换为后缀表达式

法则:

  • 如果遇到数字,我们就直接将其输出。
  • 如果遇到非数字时,若栈为空或者该符号为左括号或者栈顶元素为括号,直接入栈。
  • 如果遇到一个右括号,持续出栈并输出符号,直到栈顶元素为左括号,然后将左括号出栈(注意,左括号只出栈,不输出),右括号不入栈。
  • 如果遇到运算符号且栈非空,查看栈顶元素,如果栈顶元素的运算优先级大于或者等于该运算符号,则持续出栈,直到栈顶元素优先级小于该运算符。最后将该元素入栈。
  • 如果我们读到了输入的末尾,则将栈中所有元素依次弹出。

测试说明

产品代码主要进行三个方面的测试:

  • 正常测试
  • 异常测试
  • 边界测试

实验过程

  • 首先要有一个方法类实现计算方法
  • 然后再有一个类作为错误判断测试输出。
    -image

核心代码:加减乘除的运算

import java.util.Random;public class Output {    private int a, b;    private int i;    private String operator[]={"+","-","×","÷"};    public Output(){        while(true){            a=new Random().nextInt(100);            b=new Random().nextInt(100);            i=new Random().nextInt(4);            if(i==1&&a

运行测试

image

结对搭档

搭档:20165220葛宇豪

起初看到四则运算我一位只是做一个简易的计算器,当打开要求发现事情并没有那么简单。然后就开始各种思考参考,想出类似于伪代码的一个框架,按照框架一步步实现,但是由于能力和学识的限制很多功能并不能很好的实现,或者没法实现没做出来。目前出来的算是勉强可以看的结果吧。后续还会接着改进。

image

转载于:https://www.cnblogs.com/Yhooyon/p/8850246.html

你可能感兴趣的文章
CentOS 小问题集锦(一)
查看>>
4_frame_b.html
查看>>
使用 IntraWeb (42) - 测试读取 SqLite (一)
查看>>
我的友情链接
查看>>
CentOS配置yum
查看>>
我的友情链接
查看>>
一些软件设计的原则
查看>>
JSP代码段中直接访问值valuestack栈内容(转)
查看>>
使用 Charles 获取 https 的数据
查看>>
相对路径和绝对路径的问题
查看>>
Cocos2dx-OpenGL ES2.0教程:使用VBO索引(4)
查看>>
Keepalived 配置电信/联通双线高可用集群
查看>>
2014年3月15日参加阿里技术大讲堂技术保障专场
查看>>
关于Linux进程的一些收获
查看>>
Go编程笔记(10)
查看>>
利用XMPP协议推送服务器告警信息到安卓平台及桌面
查看>>
Android APP实现语言切换功能
查看>>
如何查看计算机端口状态
查看>>
Linux学习记录--软件安装RPM|SRPM|YUM
查看>>
Git基础之(十九)——标签管理
查看>>