您的位置:首页 > 其它

20145304 实验二实验报告

2016-04-14 22:00 197 查看

实验二 Java面向对象程序设计

实验内容

1.初步掌握单元测试和TDD;

2.理解并掌握面向对象三要素:封装、继承、多态;

3.初步掌握UML建模;

4.熟悉S.O.L.I.D原则;

5.了解设计模式。

实验步骤

单元测试

1.三种代码:

伪代码:

百分制转五分制:
如果成绩小于60,转成“不及格”
如果成绩在60与70之间,转成“及格”
如果成绩在70与80之间,转成“中等”
如果成绩在80与90之间,转成“良好”
如果成绩在90与100之间,转成“优秀”
其他,转成“错误”


产品代码:



测试代码:











TDD

1.新建一个测试目录:





2.增加第一个测试用例:









3.修改代码,出现绿条,测试完成:



UML

1.新建一个class:



2.右键Dog类,选择Add,再点击Attribute,填好内容;



3.右键Dog类,选择Add,再点击Operation,填好内容;



4.按上面的步骤再添加一个Cat类:





设计模式初步:

面向对象三要素是“封装、继承、多态”,任何面向对象编程语言都会在语法上支持这三要素。如何借助抽象思维用好三要素特别是多态还是非常困难的,S.O.L.I.D类设计原则是一个很好的指导:

SRP(Single Responsibility Principle,单一职责原则)

OCP(Open-Closed Principle,开放-封闭原则)

LSP(Liskov Substitusion Principle,Liskov替换原则)

ISP(Interface Segregation Principle,接口分离原则)

DIP(Dependency Inversion Principle,依赖倒置原则)

练习

伪代码

输入两个复数a,b
实现a,b相加并输出
实现a,b相减并输出
实现a,b相乘并输出

产品代码

```

package cc.openhome;

import java.util.Scanner;

public class Complex {

public static void main(String[] args) {

Scanner scanner=new Scanner(System.in);

System.out.printf("请输入a的实部和虚部");//输入两个复数

double ra=scanner.nextDouble();

double ia=scanner.nextDouble();

System.out.printf("请输入b的实部和虚部");

double rb=scanner.nextDouble();

double ib=scanner.nextDouble();

double addR,addI,minusR,minusI,MultiR,MultiI;

System.out.printf("a+b=%.2f+%.2fi%n",ra+rb,ia+ib);

System.out.printf("a-b=(%.2f)+(%.2fi)%n",ra-rb,ia-ib);

System.out.printf("ab=%.2f+%.2fi%n",(rarb)-(iaib),(rbia)+(ra*ib));

}

```

测试结果





PSP

步骤耗时百分比
需求分析10分钟9%
设计20分钟18%
代码实现30分钟27%
测试20分钟28%
分析总结30分钟27%

单元测试的好处

可以根据需求设计相应的代码,不浪费精力在不你要的代码上;

设计代码时考虑问题更加全面,不容易漏掉重要的环节;

运用了换位思考的方式来设计实现代码,用户满意度比较高。

问题及解决过程

有尝试使用调用函数的方法来实现练习,但编译过程中出现错误未能解决,已至无法进行下去,所以换用较为简单的做法。我会在今后的学习中努力解决这个问题。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: