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之间,转成“优秀” 其他,转成“错误”
产品代码:
![](https://images2015.cnblogs.com/blog/885278/201604/885278-20160414215217941-828630100.png)
测试代码:
![](https://images2015.cnblogs.com/blog/885278/201604/885278-20160414215311363-576655892.png)
![](https://images2015.cnblogs.com/blog/885278/201604/885278-20160414215325629-1606157547.png)
![](https://images2015.cnblogs.com/blog/885278/201604/885278-20160414215336848-1828618740.png)
![](https://images2015.cnblogs.com/blog/885278/201604/885278-20160414215349848-703174962.png)
![](https://images2015.cnblogs.com/blog/885278/201604/885278-20160414215400285-958443932.png)
TDD
1.新建一个测试目录:![](https://images2015.cnblogs.com/blog/885278/201604/885278-20160414215413582-1428954362.png)
![](https://images2015.cnblogs.com/blog/885278/201604/885278-20160414215446379-1372526966.png)
2.增加第一个测试用例:
![](https://images2015.cnblogs.com/blog/885278/201604/885278-20160414215458113-2060330457.png)
![](https://images2015.cnblogs.com/blog/885278/201604/885278-20160414215622957-1527098589.png)
![](https://images2015.cnblogs.com/blog/885278/201604/885278-20160414215635207-1250150289.png)
![](https://images2015.cnblogs.com/blog/885278/201604/885278-20160414215652020-1250319295.png)
3.修改代码,出现绿条,测试完成:
![](https://images2015.cnblogs.com/blog/885278/201604/885278-20160414215813301-1857967846.png)
UML
1.新建一个class:![](https://images2015.cnblogs.com/blog/885278/201604/885278-20160414215833176-1264915919.png)
2.右键Dog类,选择Add,再点击Attribute,填好内容;
![](https://images2015.cnblogs.com/blog/885278/201604/885278-20160414215846520-1459719176.png)
3.右键Dog类,选择Add,再点击Operation,填好内容;
![](https://images2015.cnblogs.com/blog/885278/201604/885278-20160414215901520-1766197786.png)
4.按上面的步骤再添加一个Cat类:
![](https://images2015.cnblogs.com/blog/885278/201604/885278-20160414215916129-2007403725.png)
![](https://images2015.cnblogs.com/blog/885278/201604/885278-20160414215934613-1652023628.png)
设计模式初步:
面向对象三要素是“封装、继承、多态”,任何面向对象编程语言都会在语法上支持这三要素。如何借助抽象思维用好三要素特别是多态还是非常困难的,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));
}
```
测试结果
![](https://images2015.cnblogs.com/blog/885278/201604/885278-20160415073642926-89125380.png)
![](https://images2015.cnblogs.com/blog/885278/201604/885278-20160415074433457-2039928331.png)
PSP
步骤 | 耗时 | 百分比 |
---|---|---|
需求分析 | 10分钟 | 9% |
设计 | 20分钟 | 18% |
代码实现 | 30分钟 | 27% |
测试 | 20分钟 | 28% |
分析总结 | 30分钟 | 27% |
单元测试的好处
可以根据需求设计相应的代码,不浪费精力在不你要的代码上;设计代码时考虑问题更加全面,不容易漏掉重要的环节;
运用了换位思考的方式来设计实现代码,用户满意度比较高。
问题及解决过程
有尝试使用调用函数的方法来实现练习,但编译过程中出现错误未能解决,已至无法进行下去,所以换用较为简单的做法。我会在今后的学习中努力解决这个问题。![](https://images2015.cnblogs.com/blog/885278/201604/885278-20160415074458316-749731575.png)
相关文章推荐
- HttpClient get,Post请求
- android AsyncTask介绍
- 设计模式:单例模式(Singleton)
- 算法导论第三集
- 无法安装 installer integrity check has failed
- JVM(7)--java内置工具使用
- NYOJ---1241 - Distribution
- Mac 终端命令详解
- 在tomcat下部署工程
- 结对2.03
- 【leetcode】237. Delete Node in a Linked List
- MySQL之——日期时间Extract函数介绍
- 【iOS开发】二维码生成 二维码读取 (带Logo的二维码)
- JS面向(基于)对象编程--构造方法(函数)
- 网站导航固定头部
- mybatis configuration 一些标签配置问题
- HDOJ 1286 找新朋友(数论)(欧拉函数)
- Oracle-25-having子句&连接的定义(如多表联查)
- java POI实现向Excel中插入图片
- 1.2.5 Linux的内核版本