1)复数类ComplexNumber的属性

m_dRealPart: 实部,代表复数的实数部分

m_dImaginPart: 虚部,代表复数的虚数部分

public class ComplexNumber {

	private double m_dRealPart;
private double m_dImaginPart;

2)复数类ComplexNumber的方法

ComplexNumber() 构造函数,将实部,虚部都置为0

ComplexNumber(double r, double I) 构造函数,创建复数对象的同时完成复数的实部,虚部的初始化

GetRealPart() 获取实部

GetImaginaryPart() 获取虚部

SetRealPart(double d) 设置实部

SetImaginaryPart(double d) 设置虚部

public ComplexNumber(){
double m_dRealPart = 0;
double m_dImaginPart = 0;
} public ComplexNumber(double r, double i) {
this.m_dRealPart = r;
this.m_dImaginPart = i;
} public double real() {
return this.m_dRealPart;
} public double imag() {
return this.m_dImaginPart;
}

ComplexAdd(ComplexNumber c) 复数相加

ComplexAdd(double c) 复数相加

ComplexMinus(ComplexNumber c) 复数相减

ComplexMinus(double c) 复数相减

ComplexMulti(ComplexNumber c)  复数相乘

ComplexMulti(double c)  复数相乘

public ComplexNumber complexAdd(ComplexNumber c) {
return new ComplexNumber(c.real() + this.real(), c.imag() + this.imag());
} public ComplexNumber complexMinus(ComplexNumber c) {
return new ComplexNumber(c.real() - this.real(), c.imag() - this.imag());
} public ComplexNumber complexMultiply(ComplexNumber c) {
return new ComplexNumber(
this.real() * c.real() - this.imag() * c.imag(),
this.imag() * c.real() + this.real() * c.imag());
} public ComplexNumber complexDivide(ComplexNumber c) {
double div2 = c.real() * c.real() + c.imag() * c.imag();
return new ComplexNumber(
(this.real() * c.real() + c.imag() * this.imag()) / div2,
(this.imag() * c.real() - this.real() * c.imag()) / div2);
}

toString() 把当前复数对象的实部,虚部组合成a+bi的字符串形式

public String toString() {
return "(" + this.real() + "+" + this.imag() +"i"+ ")";
} public static void main(String args[]) {
ComplexNumber cn = new ComplexNumber(1, 2);
System.out.println(cn);
cn = cn.complexMultiply(new ComplexNumber(6, 4));
System.out.println(cn);
}

实验体会:作为第二个java实验,我认为实验难度要明显高于实验一(从四则运算到复数的运算)。从一开始就遇到了很多困难,根本不知道该如何敲。后来有了方向,跟着步骤做了下来。虽然参考了百度中的代码,不过自己也有所学习。譬如说一开始我没有想到应用this,经过学习也巩固了this的实际用法。参考:http://zhidao.baidu.com/link?url=I2Odm3vMxnZJ9NhTxFygUSsmkxIOC-iT3B9PukPHJ4BWJQOUdTWD24Isrn8m5xhVUy9vI6JrHG95GQCZ_zkV0a

步骤 耗时 百分比

需求分析 30min 16.7%

设计 30min 16.7%

代码实现 1h 33%

测试 30min 16.7%

分析总结 30min 16.7%

20145106 java实验二的更多相关文章

  1. 20175212童皓桢 Java实验二-面向对象程序设计实验报告

    20175212童皓桢 Java实验二-面向对象程序设计实验报告 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O.L.I.D原则 了解设 ...

  2. Java实验二实验报告:java面向对象程序设计

    java实验二实验报告 实验内容 1. 初步掌握单元测试和TDD 2. 理解并掌握面向对象三要素:封装.继承.多态 3. 初步掌握UML建模 4. 熟悉S.O.L.I.D原则 5. 了解设计模式 实验 ...

  3. Java实验二20135104

    课程:Java程序设计          班级: 1351 姓名:刘帅                学号:20135104 成绩:             指导教师:娄嘉鹏       实验日期:2 ...

  4. 20165326 java实验二

    2017-2018-2 20165326实验二<Java面向对象程序设计>实验报告 课程:Java程序设计 班级:1653班 姓名:陈卓 学号:20165326 成绩:指导教师:娄嘉鹏 实 ...

  5. java实验二——输出一个指定整数的所有质因数

    import java.util.Scanner; public class 实验二 { /** * @param args */ public static void main(String[] a ...

  6. 20145106 java实验一

    因为之前就使用过eclipse所以本次试验开始阶段并没有遇到什么大问题,按照步骤做下来. 我的实验序号根据算法是第二个四则运算的实验. 加法: package ljp; public class he ...

  7. 20145324 Java实验二

    实验1: 先建立.java 在建立test 测试正常情况 测试出错情况 错误 修改后的代码 正确 测试边界情况 100时出错 修改后的代码 测试 实验2: 先建test在写,java 实验3:建模 练 ...

  8. Java实验二

    北京电子科技学院(BESTI) 实     验    报     告 课程:Java程序设计 班级:1351    姓名:黄君如  学号:20135117 成绩:             指导教师:娄 ...

  9. java实验二实验报告

    一.实验内容 1. 初步掌握单元测试和TDD 2. 理解并掌握面向对象三要素:封装.继承.多态 3. 初步掌握UML建模 4. 熟悉S.O.L.I.D原则 5. 了解设计模式 二.实验过程(本次试验都 ...

随机推荐

  1. Unity事件处理机制与NGUI事件机制

    1 Unity原生 1.1 GUI void OnGUI(){ if(GUI.Button(Rect position, string text)){ //点击后立即执行 } 1.1 Input 每个 ...

  2. POJ_3616_Milking Time

    Milking Time Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 10841   Accepted: 4564 Des ...

  3. tomcat与jetty的区别

    转载自:https://www.cnblogs.com/fengli9998/p/7247559.html Jetty和Tomcat为目前全球范围内最著名的两款开源的webserver/servlet ...

  4. LightOj 1104 - Birthday Paradox(生日悖论概率)

    题目链接:http://lightoj.com/volume_showproblem.php?problem=1104 题意:一年365天,在有23个人的情况下,这23个人中有两个人生日相同的概率是大 ...

  5. 启动yarn

    $cd /app/hadoop/hadoop-2.2.0/sbin $./start-yarn.sh

  6. oracle(十)临时表

    1.临时表的特点 (1)多用户操作的独立性:对于使用同一张临时表的不同用户,oracle都会分配一个独立的 Temp Segment,这样就避免了多个用户在对同一张临时表操作时 发生交叉,从而保证了多 ...

  7. 深入浅出 TCP/IP 协议栈

    写的不错:http://www.cnblogs.com/onepixel/p/7092302.html#3899256

  8. ubuntu 下执行定时任务

    Window shell文件在linux系统下执行不了的解决办法 一些人喜欢用vim来写linux shell script, 但是, 有的人喜欢在Windows下用一些方便的编辑器(比如鼎鼎大名的N ...

  9. 关于Python类属性与实例属性的讨论

    标题名字有点长. 之所以想写这个文章是因为碰巧看到网上一篇关于Pyhon中类属性及实例属性区别的帖子.因为我之前也被这个问题困扰过,今天碰巧看到了这篇帖子,发现帖子的作者只是描述了现象,然后对原因的解 ...

  10. Knight Moves(hdu1372 bfs模板题)

    http://acm.hdu.edu.cn/showproblem.php?pid=1372 Knight Moves Time Limit: 2000/1000 MS (Java/Others)   ...