java 结对编程_结对编程(java实现)

项目成员:林剑峰3117004621   陆君健3117004624

一、Github项目地址

https://github.com/luk66666/Formula-generator

二、PSP表格

PSP2.1

Personal Software Process Stages

预估耗时(分钟)

实际耗时(分钟)

Planning

计划

20

20

· Estimate

· 估计这个任务需要多少时间

20

20

Development

开发

1090

1260

· Analysis

· 需求分析 (包括学习新技术)

60

60

· Design Spec

· 生成设计文档

50

40

· Design Review

· 设计复审 (和同事审核设计文档)

30

30

· Coding Standard

· 代码规范 (为目前的开发制定合适的规范)

40

30

· Design

· 具体设计

60

60

· Coding

· 具体编码

720

900

· Code Review

· 代码复审

60

60

· Test

· 测试(自我测试,修改代码,提交修改)

100

80

Reporting

报告

130

150

· Test Report

· 测试报告

60

60

· Size Measurement

· 计算工作量

30

40

· Postmortem & Process Improvement Plan

· 事后总结, 并提出过程改进计划

40

50

合计

1240

1430

三、设计实现过程

代码总共分为5大类:1、Mark类(分数) 2、Generate类(生成表达式)3、Calculator类(计算)

4、IO类 5、MyApp类(主类)

(1)、Mark类定义了针对分数运算的加减乘除方法,同时还有分数输出形式(Markprint())、分数计算分析

(analyse)以及分数计算方法的调用函数(Markcalculate)。

计算时先经过Analyse方法,然后将在Analyse方法里面调用Markcalculate方法,同时也在Markcalculate方法

里面调用分数的加减乘除方法。

(2)、Generate类 定义了一个setNum方法,用来存放用户输入的计算范围的最大值,

然后还有一个generation方法用来生成表达式

(3)、Calculator类 定义了一个calculate的方法,在calculate方法里面调用了removeSpace方法,将字符串

中的空格去掉,同时还调用了isStandard和compare方法,一个用来判断表达式是否标准,一个用来比较当前运算符与栈顶元素运算符的优先级。

同时还写了一个getResult方法。

(4)IO类 创建了setOutBufferedWriter、CreateFile、WriteToFile还有CloseOutBufferedWriter的方法

(5)MyApp类 在main方法中调用其他四个类的方法,来实现表达式的生成以及文件的建立。

四、代码说明

4bec109b00d5f713c9f1229a17d92acc.png

将输入的字符串进行分析,用contains的方法判断字符串中是加减乘除哪种运算,然后用split方法将字符串中

的运算符号除掉,再接着调用Markcalculate方法(后面0、1、2、3就是对应加减乘除四种运算),在Markcalculate

里面调用Mark类中的加减乘除方法。

120624745a185f56bf8749fa0ad8b062.png

用来生成表达式,在用户所输入的数字范围里面生成所需要的表达式,同时用for循环确保表达式的长度。

2162cac18856977c4966a2cb02e1e2ac.png

用栈来存放数字和符号

e6ec96cf6ec33cc26ebaa1c65df328c0.png

比较当前运算符和栈顶元素运算符之间的优先级

五、测试运行

1)用命令行运行的主界面,生成1道题,数值范围1以内,

bea2feac821eb5cad36916b833b8aba9.png

生成10道题,数值范围10以内,

1afd4bea2cbb62fb3d216d3b898db4bf.png

a4783cff405cbd078d5438bea337e53b.png

生成10000道题,数值范围100以内,

a1737f19dc9190f725464af75c5b3dd2.png

c6629800bddce031ecd7e4951986dbf7.png

六、项目小结

这次结对项目,让我们对合作开发有了更深的认识。两个人的想法总是比一个人的想法更全面,结伴项目让我们有了更多的沟通和思想上的碰撞,在编程中,相互讨论,可以更快更有效地解决问题,互相请教对方,得到能力上的互补,不像个人项目般枯燥乏味。特别是当一方出现问题时,另一个可以协助解决,大大地提高了效率。同时我们互相监督,保持热情,不容易偷懒。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值