20145320《Java程序设计》第二次实验报告
20145320《Java程序设计》第二次实验报告
北京电子科技学院(BESTI)实验报告
课程:Java程序设计
班级:1453
指导教师:娄嘉鹏
实验日期:2016.04.12 15:30-18:30
实验名称:Java开发环境的熟悉
实验内容:
- 初步掌握单元测试和TDD
- 理解并掌握面向对象三要素:封装、继承、多态
- 初步掌握UML建模
- 熟悉S.O.L.I.D原则
- 了解设计模式
使用TDD的方式设计关实现复数类Complex
步骤:
1.编写计算复数类Complex,分为加减乘置数四种情况。
伪代码如下
public class Complex {
double real=0;//实部
double imaginary=0;//虚部
Complex(){}
getComplex(double real,double imaginary)
{
this.real=real;
this.imaginary=imaginary;
}
add(Complex c1){//加法
c.real=c1.real+this.real;
c.imaginary=c1.imaginary+this.imaginary;
return c;
}
multi(Complex c1){//乘法
c.real=c1.real*this.real-c1.imaginary*this.imaginary;
c.imaginary=c1.imaginary*this.real+this.imaginary*c1.real;
return c;
}
Minus(Complex c1){//减法
c.real=c1.real-this.real;
c.imaginary=c1.imaginary-this.imaginary;
return c;
}
}
产品代码如下
package experiment2;
public class Complex {
private double real=0;//实部
private double imaginary=0;//虚部
Complex(){}
public void getComplex(double real,double imaginary)
{
System.out.println("set");
this.real=real;
this.imaginary=imaginary;
}
public Complex add(Complex c1){//加法
Complex c=new Complex();
System.out.println("add");
c.real=c1.real+this.real;
c.imaginary=c1.imaginary+this.imaginary;
return c;
}
public Complex multi(Complex c1){//乘法
Complex c =new Complex();
System.out.println("multi");
c.real=c1.real*this.real-c1.imaginary*this.imaginary;
c.imaginary=c1.imaginary*this.real+this.imaginary*c1.real;
return c;
}
public Complex Minus(Complex c1){//减法
System.out.println("Minus");
Complex c =new Complex();
c.real=c1.real-this.real;
c.imaginary=c1.imaginary-this.imaginary;
return c;
}
public double GetRealPatr(){//获得实部
return this.real;
}
public double GetimaginaryPatr(){//获得虚部
return this.imaginary;
}
public Object tostring(){//合成一个a+bi字符串
Object a=new Object();
if(imaginary>0)
a=this.real+"+"+this.imaginary+"i";
if(imaginary==0)
a=this.real;
if(imaginary<0)
a=this.real+""+this.imaginary+"i";
System.out.println(a);
return a;
}
}
test如下
test1

测试项目:
- 实部赋负数
- 虚部赋负数
- 取c1实部与虚部
- 输出字符串c2、x、y、z
- 置数方法、加法方法、减法方法、乘法方法
测试结果

test2

测试项目:
- 虚部实部均为负数
- 负复数与正复数相乘
测试结果

test3

测试项目
- 虚部实部输入负小数
- 负复小数与正复小数相乘
出现错误了!错误在这里,这里定义了虚、实部均为int,其实可为double型
public void getComplex(int real,int imaginary)
{
System.out.println("set");
this.real=real;
this.imaginary=imaginary;
}
修改代码后测试结果

建立的模型如下

从模型中可以看见在Complex类中定义了如下方法:
- 首先定义了实部real与虚部imaginary,并赋初值0
- getComplex()方法用于置数
- add()方法用于两个复数相加
- multi()方法用于两个复数相乘
- Minus()方法用于两个复数相减
- GetRealPatr()方法得到实部
- GetimaginaryPatr()方法得到实部
- tostring()方法把复数结合成为a+bi形势的字符串
PSP(Personal Software Process)时间
| 步骤 | 耗时 | 百分比 |
|---|---|---|
| 需求分析 | 24min | 13.3% |
| 设计 | 36min | 20% |
| 代码设计 | 60min | 33.3% |
| 测试 | 40min | 22.2% |
| 分析总结 | 20min | 11.1% |
单元测试的好处
减少问题出现,提高程序质量,在测试中进行项目,边改边写,可以将自己设计的项目不断优化
更快地定位问题出现在哪个模块,提高效率,减少成本,这有助于实现模块的“块内高内聚,块间低耦合”
可以放心修改部分代码
20145320《Java程序设计》第二次实验报告的更多相关文章
- java程序设计第二次实验报告
北京电子科技学院(BESTI) 实验报告 课程:数据结构 班级:1352 姓名:何伟钦 学号:20135223 成绩: 指导教师:娄嘉鹏 实验日期: ...
- 20145320《Java程序设计》第一次实验报告
20145320<Java程序设计>第一次实验报告 北京电子科技学院(BESTI)实验报告 课程:Java程序设计 班级:1453 指导教师:娄嘉鹏 实验日期:2016.04.08 18: ...
- 20155339《java程序设计》第一次实验报告
20155339<java程序设计>第一次实验报告 实验一 java开发环境的熟悉 实验内容 1.使用JDK编译.运行简单的java程序: 2.使用IDEA编辑.编译.运行.调试java程 ...
- 20145330《Java程序设计》第一次实验报告
20145330<Java程序设计>第一次实验报告 实验一Java开发环境的熟悉 实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用Eclipse 编辑.编译.运行.调试Ja ...
- 20145240 《Java程序设计》第一次实验报告
20145240 <Java程序设计>第一次实验报告 实验内容 一.命令行下java程序开发 1.建立Code目录,输入mkdir 20145240命令建立实验目录,并使用dir命令查看目 ...
- 学号20155311 2016-2017-2 《Java程序设计》第一次实验报告
课程:Java程序设计 实验名称:Java开发环境的熟悉 实验目的与要求: 没有Linux基础的同学建议先学习<Linux基础入门(新版)><Vim编辑器> 课程: 完成实验. ...
- 20145216史婧瑶《Java程序设计》第一次实验报告
实验一 Java开发环境的熟悉(Linux + Eclipse) 实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用Eclipse 编辑.编译.运行.调试Java程序. 实验要求 1.没 ...
- 20145238-荆玉茗 《Java程序设计》第一次实验报告
实验一 Java开发环境的熟悉(Linux + Eclipse) 实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用Eclipse 编辑.编译.运行.调试Java程序. 实验要求 1.没 ...
- 20145235 《Java程序设计》第一次实验报告
实验一Java开发环境的熟悉 实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用Eclipse 编辑.编译.运行.调试Java程序. 实验知识点 1.JVM.JRE.JDK的安装位置与区 ...
随机推荐
- 2015 CTSC & APIO滚粗记
o诶人太弱..... 记一发滚粗记以便治疗我的健忘症= = //文章会不定时修改,添加一些内容什么的...因此最好看一下刷新一下(因为有可能你正在看= =我正在写... 5.2 早上9点坐上长达11小 ...
- UVA 10791 - Minimum Sum LCM(坑)
题目链接 不知道为什么,我用cin,cout就是过不了...改成scanf过了... 还是我居然理解错题意了,已经不能用看错了...至少两个数字,我理解成两个数字了,还写了个爆搜... #includ ...
- Linq to Entities下存储过程的使用方法
1.首先在数据库中创建好存储过程. 2.在实体模型中添加存储过程的映射.此时根据映射过来的查询结果有两种途径:第一种可以选择添加选择的存储过程的函数到实体模型中.这样的话,查询的结果将会是xxx_re ...
- GNU for x86汇编语法
作者:冯老师,华清远见嵌入式学院讲师. 译自“Using as The GNU Assembler January 1994”. 参考Tornado随机文档“GNU Toolkit User's Gu ...
- UIView常见属性总结
一 UIVIew 常见属性 .frame 位置和尺寸(以父控件的左上角为原点(,)) .center 中点 (以父控件的左上角为原点(,)) .bounds 位置和尺寸(以自己的左上角为原点 (,)) ...
- power 做表
drop table "USER" cascade constraints; /*================================================= ...
- ASM文件系统
1.确认数据库版本 2.个人理解的存储解决方案的发展趋势 2.1图示说明 2.2图示描述 如上图我们描述了在不同时期的IT行业(数据库)出现的存储文件系统,下面我们将分别说明: ü 裸设备:所谓裸设 ...
- [转载] Can't create table './store/#sql-b2c_1a.frm' (errno: 150)和sql execution error #1452添加外键时错误解决方法
Can't create table './store/#sql-b2c_1a.frm' (errno: 150)解决方法 错误原因有四: 1.外键的引用类型不一样,主键是int外键是char 2.找 ...
- iOS 如何通过CocoaPods添加第三方框架
一 先安装Ruby环境: http://ruby-china.org/wiki/install_ruby_guide 在安装的时候,若是出现: 1.You don't have write perm ...
- 面向过程—面向对象(C++的封装,this)_内存四区_变量生命周期
1.面向对象主要涉及 构造函数.析构函数.虚函数.继承.多态等. 2.对各种支持 的底层实现机制 c语言中,数据 和 处理数据的操作(函数) 是分开来声明,即语言本身并没有支持 “数据和函数”的关联 ...