1.学号:201421123099
2.博客连接html
1.学号:201421123100
2.博客连接(本博客)git
1.在提取计算模块上,杨爱清同窗扮演领航员的角色,杨立鑫同窗扮演驾驶员。
杨爱清同窗提出了提取出来的类应该包含如下几个函数:
- add() (加)
- sub() (减)
- mul() (乘)
- div() (除)
- compare() (分数大小比较)
- GCD() (计算最大公约数)
- CreatFrac() (建立随即分数)
杨立鑫同窗根据根据同伴所说,在原程序中提取出了计算模块,并单首创建了一个类Fraction。(下方有Fraction代码)编程
2.在单元测试上,杨立鑫同窗扮演领航员的角色,杨爱清同窗扮演驾驶员。
杨立鑫同窗提出,经过单元测试代码,要测试加法是否能正确工做,加减乘除功能,测试计算类对于各类参数的支持。针对提取出的模块杨爱清同窗使用junit选择并构建了FractionTest类.dom
一、经过单元测试代码,测试加法是否能正确工做;ide
二、经过单元测试代码,测试加减乘除功能。函数
三、经过单元测试代码,测试计算类对于各类参数的支持:单元测试
- 输入是有错误的,例如 “1 ++ 2”,学习
- 在数值范围是 -1000 .. 1000 的时候,传进去 “10000 + 32768”,测试
- 或者是 “ 248 / 0” 怎么办?this
- 怎么告诉函数的调用者 “你错了”? 把返回的字符串定义为 “-1” 来表示?
- 那么若是真的计算结果是 “-1” 又怎么处理呢?
四、经过增量修改的方式,改进程序, 完成对各类错误状况的处理。
经过产生随机数方法,反复测试全部单元;
单元测试代码:
package test; import static org.junit.Assert.*; import org.junit.Before; import org.junit.Test; public class FractionTest { Fraction fraction=new Fraction(); Fraction f1 = fraction.CreatFrac(); Fraction f2 = fraction.CreatFrac(); @Before public void setUp() throws Exception { } @Test public void testFraction() { } @Test public void testAdd() { fraction.add(f1, f2); } @Test public void testSub() { fraction.sub(f1, f2); } @Test public void testMul() { fraction.mul(f1, f2); } @Test public void testDiv() { fraction.div(f1, f2); } @Test public void testCompare() { fraction.compare(f1, f2); } @Test public void testCreatFrac() { } }
PSP2.1 | Personal Software Process Stages | Time (%) Senior Student(/hour) | Time (%)(/hour) |
· Planning | 计划 | 2 | 1 |
· Estimate | 估计这个任务须要多少时间 | 15 | 13 |
· Analysis | 需求分析 (包括学习新技术) | 2 | 1.5 |
· Coding Standard | 代码规范 | 0.5 | 0.5 |
· Design | 具体设计 | 1.5 | 1 |
· Coding | 具体编码 | 10 | 7 |
· Test | 测试(自我测试,修改代码,提交修改) | 2 | 1.5 |
Reporting | 报告 | 1 | 2 |
由于对GIT的不熟悉不熟练浪费了不少时间。常常提交不成功。可是在老师的帮助下,仍是成功的提交了代码,并基本的学会了使用,收获仍是蛮多的。
结对编程的几回做业都是我和爱清一块儿完成,常常一块儿约图书馆,一块儿探讨,互相学习。而且在领航员与驾驶员的角色切换中,收获了合做的快乐。一块儿我都是喜欢什么事情什么程序都本身来作,这样才能更加清楚地了解哪部分代码是作什么,很是怕和别人合做后不清楚对方作的什么,不利于本身地编程。当合做而且扮演好角色才发现,合做不是两我的孤立地独自地各敲各地代码,而是在一人领航指挥,一人动手操做地模式下相互促进,并且增长了团队之间地交流,可以更加完善的实现项目。
通过这两次编程,我以为可以为我将来进入社会进行团队协做时提供了思路与基础。
1.码云地址
2.小组成员探讨照片
3.特别鸣谢张敏老师~有问题问她几乎都是秒回,并且特别耐心详细地回答个人每一个问题~有图有真相~
4.Fraction代码
package test; public class Fraction { private int fenzi; private int fenmu; public Fraction() { super(); } public Fraction(int fenzi, int fenmu) { super(); this.fenzi = fenzi; this.fenmu = fenmu; this.simplify(fenzi, fenmu); //在构造函数中直接化简分数(感受此方法欠妥) } public static Fraction add(Fraction f1, Fraction f2) { int fz1 = f1.getFenzi(); int fz2 = f2.getFenzi(); int fm1 = f1.getFenmu(); int fm2 = f2.getFenmu(); Fraction f = new Fraction(fz1 * fm2 + fm1 * fz2, fm1 * fm2); return f; }//加法运算 public static Fraction sub(Fraction f1, Fraction f2) { int fz1 = f1.getFenzi(); int fz2 = f2.getFenzi(); int fm1 = f1.getFenmu(); int fm2 = f2.getFenmu(); Fraction f = new Fraction(fz1 * fm2 - fm1 * fz2, fm1 * fm2); return f; }//减法运算 public static Fraction mul(Fraction f1, Fraction f2) { int fz1 = f1.getFenzi(); int fz2 = f2.getFenzi(); int fm1 = f1.getFenmu(); int fm2 = f2.getFenmu(); Fraction f = new Fraction(fz1 * fz2, fm1 * fm2); return f; }//乘法运算 public static Fraction div(Fraction f1, Fraction f2) { int fz1 = f1.getFenzi(); int fz2 = f2.getFenzi(); int fm1 = f1.getFenmu(); int fm2 = f2.getFenmu(); Fraction f = new Fraction(fz1 * fm2, fm1 * fz2); return f; }//除法运算 public static boolean compare(Fraction f1, Fraction f2) { int fz1 = f1.getFenzi(); int fz2 = f2.getFenzi(); int fm1 = f1.getFenmu(); int fm2 = f2.getFenmu(); if (fz1 * fm2 >= fz2 * fm1) { return true; } else { return false; } }//比较两分数的大小 public static int GCD(int m, int n) { while (true) { if ((m = m % n) == 0) { return n; } if ((n = n % m) == 0) { return m; } } }//计算最大公约数 public void simplify(int fenzi, int fenmu) { int GCD = GCD(fenzi, fenmu); this.fenzi = fenzi / GCD; this.fenmu = fenmu / GCD; }//化简分数 @Override public String toString() { if (fenzi == 0) { return 0 + ""; } else if (fenzi % fenmu == 0) { return fenzi / fenmu + ""; } else { return fenzi + "/" + fenmu; } }//改写toString,输出为分数形式 public int getFenzi() { return fenzi; } public void setFenzi(int fenzi) { this.fenzi = fenzi; } public int getFenmu() { return fenmu; } public void setFenmu(int fenmu) { this.fenmu = fenmu; } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + fenmu; result = prime * result + fenzi; return result; } @Override public boolean equals(Object obj) { if (this == obj) { return true; } if (obj == null) { return false; } if (getClass() != obj.getClass()) { return false; } Fraction other = (Fraction) obj; if (fenmu != other.fenmu) { return false; } if (fenzi != other.fenzi) { return false; } return true; } public static Fraction CreatFrac() { int fz, fm; fz = (int) (0 + Math.random() * (100 - 0 + 1));//分子取0--100的随机数 fm = (int) (1 + Math.random() * (10 - 1 + 1));//分母取1--100的随机数 Fraction frac = new Fraction(fz, fm); return frac; }//建立随机分数 }