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程序设计》实验二报告的更多相关文章

  1. 20145302张薇 Java第一周学习总结

    20145302张薇 <Java程序设计>第一周学习总结 教材学习内容总结 第一章 1995年,java被公认诞生.java第一开始为了消费性数字产品(如手机)而设计,所以java本身有很 ...

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

    北京电子科技学院(BESTI) 实     验    报     告 课程:Java程序设计 班级:1353  姓名:李海空  学号:20135329 成绩:             指导教师:娄嘉鹏 ...

  3. JAVA程序设计 实验一报告

    北京电子科技学院(BESTI) 实     验    报     告 课程:Java程序设计 班级:1351  姓名:李畅宇  学号:20135129 成绩:             指导教师:娄嘉鹏 ...

  4. 20145302张薇《Java程序设计》实验三报告

    20145302张薇<Java程序设计>实验三:敏捷开发与XP实践 实验内容 使用git上传代码 使用git实现代码开发实践 实现代码的重载 使用git上传代码 git init git ...

  5. 20145302张薇《Java程序设计》实验五报告

    20145302张薇 实验五:Java网络编程及安全 实验内容 掌握Socket程序的编写: 掌握密码技术的使用: 设计安全传输系统. 实验要求 基于Java Socket实现安全传输 基于TCP实现 ...

  6. 20145316《Java程序设计》实验二报告

    20145316<Java程序设计>实验二报告 一.实验目的与要求 1.初步掌握单元测试和TDD. 2.理解并掌握面向对象三要素:封装.继承.多态. 3.初步掌握UML建模. 4.熟悉S. ...

  7. 20145301《Java程序设计》实验二报告:Java面向对象程序设计

    20145301<Java程序设计>实验二报告:Java面向对象程序设计 课程:Java程序设计 实验名称:Java面向对象程序设计 实验目的与要求: 初步掌握单元测试和TDD 理解并掌握 ...

  8. 20145302张薇《Java程序设计》第三周学习总结

    20145302张薇<Java程序设计>第三周学习总结 教材学习内容总结 第四章 定义类 一个原始码中有多少类就会有多少.class文档. 标准类 使用java.util.scanner让 ...

  9. 20145302张薇 《Java程序设计》第二周学习总结

    20145302张薇 <Java程序设计>第一周学习总结 教材学习内容总结 第三章 第三章讲的是基本类型,变量,运算符和基本条件语句. 基本类型分为: 整数:short(2 byte),i ...

随机推荐

  1. 目前最火的php框架

    1.yii 作者:宗霖链接:https://www.zhihu.com/question/25023032/answer/75085250来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业 ...

  2. APNS/苹果推送服务

    Apple Push Notification Service Google Cloud Message/Google 云 消息 Firebase Cloud Messaging

  3. Servlet------>servletDemo 及细节注意

    原理图: 前提:我用的命令行都是mac系统下用的,非win jsp实质是一个servlet,所以要先了解servlet,如上页面是一个servletdemo,下面是尝试的步骤 1.先写好Demo.ja ...

  4. mysql 容灾 灾备 备份

    一.数据备份 1.使用mysqldump命令备份 mysqldump命令将数据库中的数据备份成一个文本文件.表的结构和表中的数据将存储在生成的文本文件中. mysqldump命令的工作原理很简单.它先 ...

  5. 通过/dev/mem只能访问高端内存以下的内核线性地址空间

    http://blog.chinaunix.net/uid-20564848-id-74706.html   </proc/iomem和/proc /ioports对应的fops> < ...

  6. Android /system/build.prop 文件

    # begin build properties (开始设置系统性能) # autogenerated by buildinfo.sh (通过设置形成系统信息) ro.build.id=GRI40 ( ...

  7. the ONLY_FULL_GROUP_BY SQL mode is enabled (which it is by default) 用户变量

    MySQL :: MySQL 8.0 Reference Manual :: 5.1.11 Server SQL Modes https://dev.mysql.com/doc/refman/8.0/ ...

  8. ubuntu重新设置登陆界面|切换gdm kdm lightdm

    方法: $ sudo dpkg-reconfigure gdm 然后会出一个让你进行选择的提示,根据需要切换即可

  9. 并发编程 - 进程 - 1.互斥锁/2.模拟抢票/3.互斥锁与join区别

    1.互斥锁: 互斥锁:Lock 原理就是把并发变成串行,一个一个运行,不错乱,但效率低 保证多个进程修改一块数据时,大家是一个一个修改,不错乱 mutex.acquire() mutex.releas ...

  10. Spark Standalone Mode 单机启动Spark -- 分布式计算系统spark学习(一)

    spark是个啥? Spark是一个通用的并行计算框架,由UCBerkeley的AMP实验室开发. Spark和Hadoop有什么不同呢? Spark是基于map reduce算法实现的分布式计算,拥 ...