复数的四则运算(java版)

news/2024/10/23 9:39:00/

复数的四则运算(java版)

目录

  • 复数的四则运算(java版)
    • 介绍
    • 复数的四则运算
    • 实现思路
    • 代码
      • 1、封装复数类
      • 2、测试复数类
      • 3、代码测试结果

介绍

  • 复数,为实数的延伸,它使任一多项式方程都有根。复数当中有个“虚数单位 ” i,它是−1的一个平方根,即 i^2=−1。任一复数都可表达为 **x+yi,**其中x及y皆为实数,分别称为复数之“实部”和“虚部”。

  • 四则运算,是一种简单基本的数学运算,即 加法 、 减法 、 乘法 和 除法 四种运算。

复数的四则运算

要想实现复数的四则运算,我们就要先知道复数的四则运算分别都是如何计算的。

两个复数的四则运算(数学表达式)

复数一:a+bi  
复数二:c+di加法 a+bi + c+di = (a+c)+(b+d)i
减法 a+bi - (c+di) = (a-c)+(b+d)i
乘法 a+bi * (c+di) = (ac-bd) + (ad+bc)i
除法 (a+bi)/(c+di) = [(ac+bd)+(bc-ad)i]/(c^2+d^2)

实现思路

由于 java程序设计语言 是一门面向对象编程的,所以我们可以考虑把 复数 封装成一个类,然后我们就可以实例化这个类,创建 复数 对象。我们在封装这个类的时候就可以思考该怎么封装,要去思考 复数 这个对象 中应该具备什么样的属性和特征。

  • 状态特征

状态特征也就是 复数对象 拥有的属性,应该有 实部虚部

  • 行为特征

行为特征也就是 复数对象 的具备方法,除了构造和setter and getter 方法,还应该有 实现复数相加的方法add(),实现复数相减的方法sub(),实现 复数相乘的方法mul(),实现复数相除的除法div(),还有重写toString()的方法。

代码

1、封装复数类

//复数的四则运算
public class Complex {//实部和虚部的定义//定义成double比较好的的原因之一是因为 有除法运算private double realPart;private double imagePart;//构造方法public Complex() {}public Complex(double realPart, double imagePart) {this.realPart = realPart;this.imagePart = imagePart;}//setter and getterpublic double getImagePart() {return imagePart;}public void setImagePart(double imagePart) {this.imagePart = imagePart;}public double getRealPart() {return realPart;}public void setRealPart(double realPart) {this.realPart = realPart;}//复数的加法public Complex add(Complex complexNumber) {if (complexNumber == null) {System.out.println("复数对象输入错误");return new Complex();}double newImagePart = this.getImagePart() + complexNumber.getImagePart();double newRealPart = this.getRealPart() + complexNumber.getRealPart();return new Complex(newRealPart, newImagePart);}//复数的减法public Complex sub(Complex complexNumber) {if (complexNumber == null) {System.out.println("复数对象输入错误");return new Complex();}double newImagePart = this.getImagePart() - complexNumber.getImagePart();double newRealPart = this.getRealPart() - complexNumber.getRealPart();return new Complex(newRealPart, newImagePart);}//复数的乘法public Complex mul(Complex complexNumber) {if (complexNumber == null) {System.out.println("输入复数对象错误");return new Complex();}double newRealPart = this.getRealPart() * complexNumber.getRealPart() - this.getImagePart() * complexNumber.getImagePart();double newImagePart = this.getRealPart() * complexNumber.getImagePart() + this.getImagePart() * complexNumber.getRealPart();return new Complex(newRealPart, newImagePart);}public Complex division(Complex complexNumber) {if (complexNumber == null) {System.out.println("输入复数对象错误");return new Complex();}double newRealPart = (this.getRealPart() * complexNumber.getRealPart() + this.getImagePart() * complexNumber.getImagePart()) / (complexNumber.getRealPart() * complexNumber.getRealPart() + complexNumber.getImagePart() * complexNumber.getImagePart());double newImagePart = (-this.getRealPart() * complexNumber.getImagePart() + this.getImagePart() * complexNumber.getRealPart())/ (complexNumber.getRealPart() * complexNumber.getRealPart() + complexNumber.getImagePart() * complexNumber.getImagePart());return new Complex(newRealPart, newImagePart);}//重写toString方法public String toString(){if(this.imagePart>0){return this.realPart+"+"+this.imagePart+"i"; //如果是虚部是正数,需要手动添加 +}else if(this.imagePart<0){return this.realPart+this.imagePart+"i";//如果虚部是负数,不用给你手动添加 -(运算的结果自带)}else return this.realPart+" ";}}

2、测试复数类

import java.util.Scanner;//测试封装的复数类,实现负数的四则运算
public class ComplexTest {//这里我们可以采取从键盘中输入复数的实部和虚部public static void main(String[] args) {double realPart ;double imagePart ;Scanner s = new Scanner(System.in);System.out.print("输入第一个复数的实部:");realPart = s.nextDouble();System.out.print("输入第一个复数的虚部:");imagePart = s.nextDouble();Complex complex1 = new Complex(realPart,imagePart);System.out.print("输入第二个复数的实部:");realPart = s.nextDouble();System.out.print("输入第二个复数的虚部:");imagePart = s.nextDouble();Complex complex2 = new Complex(realPart,imagePart);//测试复数的加减乘除System.out.println("加法:"+ complex1.add(complex2));System.out.println("减法:"+complex1.sub(complex2));System.out.println("乘法:"+complex1.mul(complex2));System.out.println("除法:"+complex1.division(complex2));}
}

3、代码测试结果

在这里插入图片描述


http://www.ppmy.cn/news/1069079.html

相关文章

设计模式—职责链模式(Chain of Responsibility)

目录 思维导图 什么是职责链模式&#xff1f; 有什么优点呢&#xff1f; 有什么缺点呢&#xff1f; 什么场景使用呢&#xff1f; 代码展示 ①、职责链模式 ②、加薪代码重构 思维导图 什么是职责链模式&#xff1f; 使多个对象都有机会处理请求&#xff0c;从而避免请…

day48 动规.p9

- 198.打家劫舍 cpp class Solution { public: int rob(vector<int>& nums) { if (nums.size() 1) return nums[0]; vector<int> dp(nums.size(), 0); dp[0] nums[0]; dp[1] max(nums[0], nums[1]); for (int i 2; i < nums.size(); i) { dp[i] max(…

PDF制作成翻页电子书

在日常工作中&#xff0c;大部分人使用的都是PDF文档发送给客户&#xff0c;但是PDF文档通常是静态的&#xff0c;缺乏交互性和视觉吸引力。那你有没有想过把它转换成翻页的电子书呢&#xff1f; 小编将告诉你操作步骤&#xff0c;非常简单 1.搜索FLBOOK在线制作电子杂志平台 …

大数据Flink实时计算技术

1、架构 2、应用场景 Flink 功能强大&#xff0c;支持开发和运行多种不同种类的应用程序。它的主要特性包括&#xff1a;批流一体化、精密的状态管理、事件时间支持以及精确一次的状态一致性保障等。在启用高可用选项的情况下&#xff0c;它不存在单点失效问题。事实证明&#…

传承精神 缅怀伟人——湖南多链优品科技有限公司赴韶山开展红色主题活动

8月27日上午&#xff0c; 湖南多链优品科技有限公司全体员工怀着崇敬之情&#xff0c;以红色文化为引领&#xff0c;参加了毛泽东同志诞辰130周年的纪念活动。以董事长程小明为核心的公司班子成员以及全国优秀代表近70人一行专赴韶山&#xff0c;缅怀伟人毛泽东同志的丰功伟绩。…

AUTOSAR从入门到精通-【应用篇】基于嵌入式实时Linux及AUTOSAR的跨平台技术研究与实现

目录 前言 通用实时操作系统的国内外研究现状 AUTOSAR国内外研究现状 实时操作系统的选择

React中的性能测试工具组件Profiler的基本使用

React中的性能测试工具组件Profiler是一个非常有用的工具&#xff0c;它可以帮助我们分析React应用程序的性能瓶颈。在本文中&#xff0c;我们将学习如何使用Profiler组件来测试React应用程序的性能。 首先&#xff0c;让我们来了解一下Profiler组件的基本用法。在React中&…

16- flask-bootstrap模板的使用

Flask 中支持 flask-bootstrap模板 和 bootstrap-flask模板 # 不使用: bootstrap-flask # pip install bootstrap-flask1.3.1 # 支持bootstrap 4 # pip install flask-bootstrap # 支持bootstrap3# 中文文档:https://flask-bootstrap-zh.readthedocs.io/zh/latest/ # 样式文档…