标签:
实验报告
课程: |
Java程序设计 |
班级: |
1352 |
姓名: |
莫凡 |
学号: |
20135225 |
|||||||||
成绩: |
|
指导教师: |
娄嘉鹏 |
实验日期: |
2015.05.05 |
|||||||||||
实验密级: |
|
预习程度: |
|
实验时间: |
18:30~22:30 |
|||||||||||
仪器组次: |
25 |
必修/选修: |
选修 |
实验序号: |
二 |
|||||||||||
实验名称: |
Java面向对象程序设计 |
|||||||||||||||
实验目的与要求: 1. 初步掌握单元测试和TDD 2. 理解并掌握面向对象三要素:封装、继承、多态 3. 初步掌握UML建模 4. 熟悉S.O.L.I.D原则 5. 了解设计模式
|
||||||||||||||||
实验仪器:
|
||||||||||||||||
统计的PSP(Personal Software Process)时间:
步骤 |
耗时(min) |
百分比 |
需求分析 |
30 |
12.5% |
设计 |
70 |
29.2% |
代码实现 |
70 |
29.2% |
测试 |
40 |
16.7% |
分析总结 |
30 |
12.5% |
实验内容一:单元测试。
需求:我们要在一个MyUtil类中解决一个百分制成绩转成“优、良、中、及格、不及格”五级制成绩的功能。
伪代码:
百分制转五分制: 如果成绩小于60,转成“不及格” 如果成绩在60与70之间,转成“及格” 如果成绩在70与80之间,转成“中等” 如果成绩在80与90之间,转成“良好” 如果成绩在90与100之间,转成“优秀” 其他,转成“错误”
通过测试代码在产品代码中发现bug
测试代码图
修改产品代码中的bug并通过测试
产品代码图
TDD测试
实验内容二:面向对象三要素
1封装2.继承3.多态
实验内容三:设计模式初步
实验内容四:使用TDD的方式设计关实现复数类Complex。
复数类伪代码:
复数由实数部分和虚数部分组成。复数的加减:实数与实数相加(add)减(reduce),复数与复数相加减,输出复数结果方法(Output)。
先写出测试代码:
package complex;
public class ComplexTest{
public static void main(String[] args) {
Complex c=new Complex();
Complex c1=new Complex(19,10);
Complex c2=new Complex(12.5,11.5);
c1.Output();
c2.Output();
System.out.println("这两复数和为:");
System.out.println(c.add(c1, c2).r+"+"+c.add(c1, c2).i+"i");
System.out.println("这两复数差为:");
System.out.println(c.reduce(c1, c2).r+"+"+c.reduce(c1, c2).i+"i");
}
}
再写出产品代码:
package complex;
public class Complex{
double r,i;
Complex()
{
this.r=0;//实数
this.i=0;//复数
}
Complex(double re,double im)
{
this.r=re;
this.i=im;
}
Complex reduce(Complex p1,Complex p2)
{
Complex p =new Complex(p1.r-p2.r,p1.i-p2.i);
return p;
}
Complex add(Complex p1, Complex p2) {
Complex p =new Complex(p1.r+p2.r,p1.i+p2.i);
return p;
}
void Output()
{
System.out.println("复数的值为:");
if(this.i!=0)
System.out.println(this.r+"+"+this.i+"i");
else
System.out.println(this.r);
}
}
测试结果
单元测试的好处:
先写出伪代码,可以使在编写产品代码时更加流畅,编写测试代码可以尽量减少产品代码中的bug。因此单元测试可以有效地提高编程效率,减少所写程序中的bug。
实验中遇到的问题:
复数类的定义不了解。
解决问题的方法:
通过上网查资料,了解了复数类的基本定义后写出了产品的伪代码。然后利用TDD的方法,编写测试代码的框架,再编写出产品代码。运行测试代码进行调试最后得出正确结果。
标签:
原文地址:http://www.cnblogs.com/Ntime/p/4485767.html