20145302张薇《Java程序设计》实验二报告
20145302张薇《Java程序设计》实验二:Java面向对象程序设计
使用TDD的方式设计实现复数类:Complex
测试代码
import org.junit.Test;
public class ComplexNumberTest {
@Test
public void TestFunction1() {
ComplexNumber complexnumber = new ComplexNumber(1, 3);
;
assert complexnumber.m_dRealPart == 1 : "ComplexNumber(double r,double I)构造函数有错误";
assert complexnumber.m_dImaginPart == 3 : "ComplexNumber(double r,double I)构造函数有错误";
}
@Test
public void TestFunction2() {
ComplexNumber complexnumber = new ComplexNumber();
assert complexnumber.m_dImaginPart == 0 : "ComplexNumber()构造函数有错误";
assert complexnumber.m_dRealPart == 0 : "ComplexNumber()构造函数有错误";
}
@Test
public void TestSetWay() {
ComplexNumber complexnumber = new ComplexNumber();
complexnumber.SetRealPart(1);
complexnumber.SetImaginaryPart(1);
assert complexnumber.m_dRealPart == 1 : "SetRealPart方法有错误";
assert complexnumber.m_dImaginPart == 1 : "SetImaginaryPart方法有错误";
}
@Test
public void TestgetWay() {
ComplexNumber complexnumber = new ComplexNumber();
complexnumber.SetRealPart(2);
complexnumber.SetImaginaryPart(5);
assert complexnumber.GetRealPart() == 2 : "GetRealPart方法有错误";
assert complexnumber.GetImaginaryPart() == 5 : "GetImaginaryPart方法有错误";
}
@Test
public void TestStringWay() {
ComplexNumber complexnumber = new ComplexNumber(2,6);
assert complexnumber.toString()=="2.0+6.0i":"toString方法有错误";
}
@Test
public void TestAddWay1() {
ComplexNumber complexnumber1 = new ComplexNumber(1,1);
ComplexNumber complexnumber2 = new ComplexNumber(2,2);
ComplexNumber complexnumber3=complexnumber1.ComplexAdd1(complexnumber2);
assert complexnumber3.m_dRealPart == 3 : "ComplexAdd方法有错误";
assert complexnumber3.m_dImaginPart == 3 : "ComplexAdd方法有错误";
}
@Test
public void TestAddWay2() {
ComplexNumber complexnumber1 = new ComplexNumber(1,1);
ComplexNumber complexnumber2=complexnumber1.ComplexAdd2(2);
assert complexnumber2.m_dRealPart == 3 : "ComplexAdd方法有错误";
assert complexnumber2.m_dImaginPart == 1 : "ComplexAdd方法有错误";
}
@Test
public void TestMinusWay1() {
ComplexNumber complexnumber1 = new ComplexNumber(1,1);
ComplexNumber complexnumber2 = new ComplexNumber(2,2);
ComplexNumber complexnumber3=complexnumber2.ComplexMinusl(complexnumber1);
assert complexnumber3.m_dRealPart == 1 : "ComplexMinus方法有错误";
assert complexnumber3.m_dImaginPart == 1 : "ComplexMinus方法有错误";
}
@Test
public void TestMinusWay2() {
ComplexNumber complexnumber1 = new ComplexNumber(5,1);
ComplexNumber complexnumber2=complexnumber1.ComplexMinus2(1);
assert complexnumber2.m_dRealPart == 4 : "ComplexMinus方法有错误";
assert complexnumber2.m_dImaginPart == 1 : "ComplexMinus方法有错误";
}
@Test
public void TestMultiWay1() {
ComplexNumber complexnumber1 = new ComplexNumber(3,3);
ComplexNumber complexnumber2 = new ComplexNumber(3,5);
ComplexNumber complexnumber3=complexnumber1.ComplexMultil(complexnumber2);
assert complexnumber3.m_dRealPart == -6 : "ComplexMinus方法有错误";
assert complexnumber3.m_dImaginPart == 24 : "ComplexMinus方法有错误";
}
@Test
public void TestMultiWay2() {
ComplexNumber complexnumber1 = new ComplexNumber(3,3);
ComplexNumber complexnumber2=complexnumber1.ComplexMulti2(2);
assert complexnumber2.m_dRealPart == 6 : "ComplexMinus方法有错误";
assert complexnumber2.m_dImaginPart == 6 : "ComplexMinus方法有错误";
}
}
实验代码
public class ComplexNumber {
public double m_dRealPart;
public double m_dImaginPart;
public ComplexNumber(){
this.m_dImaginPart=0;
this.m_dRealPart=0;
}
public ComplexNumber(double r,double I){
this.m_dRealPart=r;
this.m_dImaginPart=I;
}
public double GetRealPart(){
return this.m_dRealPart;
}
public double GetImaginaryPart(){
return this.m_dImaginPart;
}
public void SetRealPart(double d) {
this.m_dRealPart=d;
}
public void SetImaginaryPart(double d) {
this.m_dImaginPart=d;
}
public ComplexNumber ComplexAdd1(ComplexNumber c){
this.m_dRealPart=this.m_dRealPart+c.m_dRealPart;
this.m_dImaginPart=this.m_dImaginPart+c.m_dImaginPart;
return this;
}
public ComplexNumber ComplexAdd2(double c){
this.m_dRealPart=this.m_dRealPart+c;
return this;
}
public ComplexNumber ComplexMinusl(ComplexNumber c){
this.m_dRealPart=this.m_dRealPart-c.m_dRealPart;
this.m_dImaginPart=this.m_dImaginPart-c.m_dImaginPart;
return this;
}
public ComplexNumber ComplexMinus2(double c){
this.m_dRealPart=this.m_dRealPart-c;
return this;
}
public ComplexNumber ComplexMultil(ComplexNumber c){
double a=this.m_dImaginPart;
double b=this.m_dRealPart;
this.m_dRealPart=b*c.m_dRealPart-(a*c.m_dImaginPart);
this.m_dImaginPart=b*c.m_dImaginPart+a*c.m_dRealPart;
return this;
}
public ComplexNumber ComplexMulti2(double c){
double a=this.m_dImaginPart;
double b=this.m_dRealPart;
this.m_dRealPart=this.m_dRealPart*c;
this.m_dImaginPart=this.m_dImaginPart*c;
return this;
}
public String toString(){
return this.m_dRealPart+"+"+this.m_dImaginPart+"i";
}
}
实验结果截图

- 说是String方法有问题,其他的成功了。
实验调整截图

- 我试了,在别人的电脑上可以运行成功,但是这里出错了,说是用到了java.lang.String方法。
建模截图

实验体会
- 实验最重要的是动手做,自己独立上手一遍会记得更牢固。
20145302张薇《Java程序设计》实验二报告的更多相关文章
- 20145302张薇 Java第一周学习总结
20145302张薇 <Java程序设计>第一周学习总结 教材学习内容总结 第一章 1995年,java被公认诞生.java第一开始为了消费性数字产品(如手机)而设计,所以java本身有很 ...
- Java程序设计 实验二 Java面向对象程序设计
北京电子科技学院(BESTI) 实 验 报 告 课程:Java程序设计 班级:1353 姓名:李海空 学号:20135329 成绩: 指导教师:娄嘉鹏 ...
- JAVA程序设计 实验一报告
北京电子科技学院(BESTI) 实 验 报 告 课程:Java程序设计 班级:1351 姓名:李畅宇 学号:20135129 成绩: 指导教师:娄嘉鹏 ...
- 20145302张薇《Java程序设计》实验三报告
20145302张薇<Java程序设计>实验三:敏捷开发与XP实践 实验内容 使用git上传代码 使用git实现代码开发实践 实现代码的重载 使用git上传代码 git init git ...
- 20145302张薇《Java程序设计》实验五报告
20145302张薇 实验五:Java网络编程及安全 实验内容 掌握Socket程序的编写: 掌握密码技术的使用: 设计安全传输系统. 实验要求 基于Java Socket实现安全传输 基于TCP实现 ...
- 20145316《Java程序设计》实验二报告
20145316<Java程序设计>实验二报告 一.实验目的与要求 1.初步掌握单元测试和TDD. 2.理解并掌握面向对象三要素:封装.继承.多态. 3.初步掌握UML建模. 4.熟悉S. ...
- 20145301《Java程序设计》实验二报告:Java面向对象程序设计
20145301<Java程序设计>实验二报告:Java面向对象程序设计 课程:Java程序设计 实验名称:Java面向对象程序设计 实验目的与要求: 初步掌握单元测试和TDD 理解并掌握 ...
- 20145302张薇《Java程序设计》第三周学习总结
20145302张薇<Java程序设计>第三周学习总结 教材学习内容总结 第四章 定义类 一个原始码中有多少类就会有多少.class文档. 标准类 使用java.util.scanner让 ...
- 20145302张薇 《Java程序设计》第二周学习总结
20145302张薇 <Java程序设计>第一周学习总结 教材学习内容总结 第三章 第三章讲的是基本类型,变量,运算符和基本条件语句. 基本类型分为: 整数:short(2 byte),i ...
随机推荐
- HDU 2157 How many ways??(简单线性DP | | 矩阵快速幂)
题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=2157 这道题目很多人的题解都是矩阵快速幂写的,矩阵快速幂倒是麻烦了许多了.先给DP的方法 dp[i][ ...
- Java Filter过滤xss注入非法参数的方法
http://blog.csdn.NET/feng_an_qi/article/details/45666813 Java Filter过滤xss注入非法参数的方法 web.xml: <filt ...
- 【使用时发生的意外】HDFS 分布式写入问题 AlreadyBeingCreatedException
进行追加文件时出现AlreadyBeingCreatedException错误 堆栈信息大致如下: org.apache.hadoop.ipc.RemoteException(org.apache.h ...
- android 知识收集
1.无论是 Activity.BroadcastReceiver还是Service,只要是有长时间处理的任务,就需要重新开一个线程来处理,为什么会这样? 因为他们都是运行在主线程中的. 2.在使用Br ...
- Asp.Net MVC以JSON传值扩展方法
Asp.Net在客户端和服务器端,以JSON形式相互传值,可写扩展方法,用到的类型如下: DataContractJsonSerializer类: 该类在System.Runtime.Serializ ...
- vs开发nodejs系列之 修改新建js文件的模板
文件位置 C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\Extensions\Microsoft ...
- Spark的集群管理器
上篇文章谈到Driver节点和Executor节点,但是如果想要运行Driver节点和Executor节点,就不能不说spark的集群管理器.spark的集群管理器大致有三种,一种是自带的standa ...
- JQuery点击标题实现div的收缩
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ...
- 微信小程序组件action-sheet
操作反馈action-sheet:官方文档 Demo Code: Page({ data: { actionSheetHidden: true, actionSheetItems: ['item1', ...
- java poi解析excel日期为数字的问题
这个数字是什么呢?是以1900年为原点,到2015年8月21日,之间经过的天数. 知道这个后,就很好处理了,我们拿到1900年的日期,在这个日期上加上42237天即可.如下: Calendar cal ...