1.按照老师博客的要求新建一个MyUtil项目html
在src内新建java classjava
输入以下代码:设计模式
public class MyUtil{ public static String percentage2fivegrade(int grade){ //若是成绩小于0,转成“错误” if ((grade < 0)) return "错误"; //若是成绩小于60,转成“不及格” else if (grade < 60) return "不及格"; //若是成绩在60与70之间,转成“及格” else if (grade < 70) return "及格"; //若是成绩在70与80之间,转成“中等” else if (grade < 80) return "中等"; //若是成绩在80与90之间,转成“良好” else if (grade < 90) return "良好"; //若是成绩在90与100之间,转成“优秀” else if (grade <= 100) return "优秀"; //若是成绩大于100,转成“错误” else return "错误"; } }
2.新建一个test文件夹,标注为test sourceapp
在MyUtil类名处create testide
输入以下代码:函数
import org.junit.Test; import junit.framework.TestCase; public class MyUtilTest extends TestCase { @Test public void testNormal() { assertEquals("不及格", MyUtil.percentage2fivegrade(55)); assertEquals("及格", MyUtil.percentage2fivegrade(65)); assertEquals("中等", MyUtil.percentage2fivegrade(75)); assertEquals("良好", MyUtil.percentage2fivegrade(85)); assertEquals("优秀", MyUtil.percentage2fivegrade(95)); } @Test public void testException() { assertEquals("错误",MyUtil.percentage2fivegrade(-55)); assertEquals("错误",MyUtil.percentage2fivegrade(105)); } @Test public void testBoundary() { assertEquals("不及格",MyUtil.percentage2fivegrade(0)); assertEquals("及格",MyUtil.percentage2fivegrade(60)); assertEquals("中等",MyUtil.percentage2fivegrade(70)); assertEquals("良好",MyUtil.percentage2fivegrade(80)); assertEquals("优秀",MyUtil.percentage2fivegrade(90)); } } test运行结果以下:
1.学习有关StringBuffer的相关知识单元测试
StringBuffer append() 向字符串缓冲区追加元素 StringBuffer charAt() 返回此序列中指定索引处的 char 值 StringBuffer capacity() 获得缓冲区分配的总容量 StringBuffer indexOf() 返回当前StringBuffer对象中,第一个知足str子串的位置 StringBuffer toString( ) 返回此序列中数据的字符串表示形式 StringBuffer length() 获得当前StringBuffer的长度 length 与 capacity 的区别:分配的容量与实际的长度
2.按照老师博客中的要求,新建一个 StringBufferDemo项目
在src内新建一个java class
输入以下代码:学习
public class StringBufferDemo{ public static void main(String [] args){ StringBuffer buffer = new StringBuffer(); buffer.append('S'); buffer.append("tringBuffer12345"); System.out.println(buffer.charAt(1)); System.out.println(buffer.capacity()); System.out.println(buffer.indexOf("tringBuffer12345")); System.out.println("buffer = " + buffer.toString()); System.out.println(buffer.length()); } }
3.建立一个test文件夹,标注为test source
新建一个test java class
输入以下代码:测试
import org.junit.Test; import junit.framework.TestCase; public class StringBufferDemoTest extends TestCase { StringBuffer sq = new StringBuffer("gst and sq"); StringBuffer gst = new StringBuffer("sq and gst lueluelue hahaha"); public void testcharat() { assertEquals('g', sq.charAt(0)); assertEquals('s', gst.charAt(0)); } public void testcapacity() { assertEquals(26, sq.capacity()); assertEquals(43, gst.capacity()); } public void testlength() { assertEquals(10, sq.length()); assertEquals(27, gst.length()); } public void testindexof() { assertEquals(0, sq.indexOf("gst")); assertEquals(11, gst.indexOf("lue")); } } 运行结果: 
参考http://www.cnblogs.com/rocedu/p/6736847.htmlthis
对设计模式示例进行扩充,体会OCP原则和DIP原则的应用,初步理解设计模式
用本身的学号%6进行取余运算,根据结果进行代码扩充:
4: 让系统支持Float类,并在MyDoc类中添加测试代码代表添加正确,提交测试代码和运行结的截图,加上学号水印
建立项目等一系列操做同上
输入的src内代码为:
abstract class Data { abstract public void DisplayValue(); } class Integer extends Data { int value; Integer() { value=100; } public void DisplayValue(){ System.out.println (value); } } class Floater extends Data { float value; Floater() { value=5320; } public void DisplayValue(){ System.out.println (value); } } abstract class Factory { abstract public Data CreateDataObject(); } class IntFactory extends Factory { public Data CreateDataObject(){ return new Integer(); } } class FloatFactory extends Factory { public Data CreateDataObject(){ return new Floater(); } } class Document { Data pd; Document(Factory pf){ pd = pf.CreateDataObject(); } public void DisplayData(){ pd.DisplayValue(); } } public class MyDoc { static Document d; public static void main(String[] args) { d = new Document(new FloatFactory()); d.DisplayData(); } } 运行截图:
任务:以TDD的方式开发一个复数类Complex,要求以下: // 定义属性并生成getter,setter double RealPart; double ImagePart; // 定义构造函数 public Complex() public Complex(double R,double I) //Override Object public boolean equals(Object obj) public String toString() // 定义公有方法:加减乘除 Complex ComplexAdd(Complex a) Complex ComplexSub(Complex a) Complex ComplexMulti(Complex a) Complex ComplexDiv(Complex a)
新建项目,src内新建java class
输入以下代码:
import java.util.Objects; import static java.lang.Math.sqrt; import static java.lang.StrictMath.round; public class Fushu { public static void main (String args[]){ Complex sq = new Complex(1.0,4.0); Complex gst = new Complex(1.0,3.0); } static class Complex{ double x; double y; Complex(double x,double y){ this.x=x; this.y=y; } Complex ComplexAdd(Complex a){ return new Complex(x+a.x,y+a.y ); } Complex ComplexSub(Complex a){ return new Complex(x-a.x,y-a.y ); } Complex ComplexMulti(Complex a){ return new Complex(x*a.x-y*a.y,x*a.y+y*a.x); } Complex ComplexDiv(Complex a){ double g = sqrt(a.x*a.x)+sqrt(a.y*a.y); double s = (x*a.y-y*a.x); return new Complex ((x*a.x)+(y*a.y)/g,round(s/g)); } @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; Complex complex = (Complex) o; return Double.compare(complex.x, x) == 0 && Double.compare(complex.y, y) == 0; } @Override public String toString() { if (y > 0) { return "("+x+"+"+y+"i"+")"; } else { return "("+x+"-"+y+"i"+")"; } } } }
在test文件目录下新建class
输入代码以下:
import junit.framework.TestCase; import org.junit.Test; public class FushuTest extends TestCase { Fushu.Complex sq = new Fushu.Complex(1.0, 4.0); Fushu.Complex gst = new Fushu.Complex(1.0, 3.0); @Test public void testAdd() { assertEquals("(2.0+7.0i)", sq.ComplexAdd(gst).toString()); } @Test public void testSub() { assertEquals("(0.0+1.0i)", sq.ComplexSub(gst).toString()); } @Test public void testMul() { assertEquals("(-11.0+7.0i)", sq.ComplexMulti(gst).toString()); } @Test public void testDiv() { assertEquals("(4.0-0.0i)", sq.ComplexDiv(gst).toString()); } }
运行截图:
1、在IDEA中按照博客步骤找不到Generator,而且以后出现安装失败
解决方法:在setting中直接搜索Generator2.0安装
2、老师的博客中SringBufferDeo类里面测试理论与实际不符
解决办法:在append()中加入12345
3、单元测试时出现test not found错误
解决方法:测试类中类名不能大写,改为小写便可
实验PSP:
步骤 | 耗时 | 百分比 |
---|---|---|
需求分析 | 30m | 16% |
设计 | 60m | 33% |
实现 | 30m | 16% |
测试 | 20m | 11% |
分析总结 | 40m | 22% |