java复数运算的Application程序

编写复数运算的Application程序:

(1)设计复数类Complex,具有实部、虚部两个属性,能完成复数的加、减、乘三种运算。

(2)使用Application创建一图形用户界面程序,界面如下,程序运行时,用户可在“复数1”后面的对应文本框中输入第一个复数的实部和虚部,在“复数2”后面的对应文本框中输入第二个复数的实部和虚部,在“运算符”后面的文本框中输入“+”或“-”或“*”运算符号,当用户按下“=”按钮后,程序调用复数类Complex的对应方法,将运算结果(计算得到的复数的实部和虚部)显示在其后排列的两个文本框中。

//复数类 ----->>

package practice2;

public class Complex {
	
	private double real_part;
	private double vitual_part;
	
	public double getReal_part() {
		return real_part;
	}

	public double getVitual_part() {
		return vitual_part;
	}

	public Complex(double real_part, double vitual_part) {
		super();
		this.real_part = real_part;
		this.vitual_part = vitual_part;
	}
	
	public Complex Plus(Complex c1, Complex c2) {
		Complex r = new Complex(0, 0);
		r.real_part = c1.real_part+c2.real_part;
		r.vitual_part = c1.vitual_part+c2.vitual_part;
		return r;
	}
	
	public Complex Minus(Complex c1, Complex c2) {
		Complex r = new Complex(0, 0);
		r.real_part = c1.real_part - c2.real_part;
		r.vitual_part = c1.vitual_part - c2.vitual_part;
		return r;
	}
	
	public Complex Multiply(Complex c1, Complex c2) {
		Complex r = new Complex(0, 0);
		r.real_part = c1.real_part*c2.real_part - c1.vitual_part*c2.vitual_part;
		r.vitual_part = c1.real_part*c2.vitual_part+c1.vitual_part*c2.real_part;
		return r;
	}
}

//复数窗口

package practice2;

import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JButton;
import javax.swing.JTextField;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;

public class ComplexWindow {

	private JFrame frame;
	private JTextField R1;
	private JTextField V1;
	private JTextField operator;
	private JTextField R2;
	private JTextField V2;
	private JTextField R3;
	private JTextField V3;

	/**
	 * Launch the application.
	 */
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					ComplexWindow window = new ComplexWindow();
					window.frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

	/**
	 * Create the application.
	 */
	public ComplexWindow() {
		initialize();
	}

	/**
	 * Initialize the contents of the frame.
	 */
	private void initialize() {
		frame = new JFrame();
		frame.setBounds(100, 100, 450, 300);
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.getContentPane().setLayout(null);
		
		JLabel label = new JLabel("\u590D\u65701\uFF1A");
		label.setBounds(14, 31, 72, 18);
		frame.getContentPane().add(label);
		
		JLabel label_1 = new JLabel("\u8FD0\u7B97\u7B26\uFF1A");
		label_1.setBounds(14, 87, 72, 25);
		frame.getContentPane().add(label_1);
		
		JLabel label_2 = new JLabel("\u590D\u65702\uFF1A");
		label_2.setBounds(14, 149, 72, 18);
		frame.getContentPane().add(label_2);
		
		JButton button = new JButton("=");
		button.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				
				Complex c1 = new Complex(Double.parseDouble(R1.getText()), Double.valueOf(V1.getText()));
				Complex c2 = new Complex(Double.parseDouble(R2.getText()), Double.valueOf(V2.getText()));
				Complex result = null;
				if(operator.getText().equals("+")) {
					result = c1.Plus(c1, c2);
				}
				else if(operator.getText().equals("-")) {
					result = c1.Minus(c1, c2);
				}
				else if(operator.getText().equals("*")) {
					result = c1.Multiply(c1, c2);
				}
				
				R3.setText(String.valueOf(result.getReal_part()));
				V3.setText(String.valueOf(result.getVitual_part()));
			}
		});
		button.setBounds(14, 198, 64, 27);
		frame.getContentPane().add(button);
		
		R1 = new JTextField();
		R1.setBounds(100, 28, 86, 24);
		frame.getContentPane().add(R1);
		R1.setColumns(10);
		
		JLabel label_3 = new JLabel("+");
		label_3.setBounds(214, 31, 8, 18);
		frame.getContentPane().add(label_3);
		
		JLabel lblI = new JLabel("i");
		lblI.setBounds(346, 31, -4, 18);
		frame.getContentPane().add(lblI);
		
		V1 = new JTextField();
		V1.setBounds(246, 28, 86, 24);
		frame.getContentPane().add(V1);
		V1.setColumns(10);
		
		JLabel lblI_1 = new JLabel("i");
		lblI_1.setBounds(346, 31, 28, 18);
		frame.getContentPane().add(lblI_1);
		
		operator = new JTextField();
		operator.setBounds(180, 87, 86, 24);
		frame.getContentPane().add(operator);
		operator.setColumns(10);
		
		R2 = new JTextField();
		R2.setBounds(100, 146, 86, 24);
		frame.getContentPane().add(R2);
		R2.setColumns(10);
		
		V2 = new JTextField();
		V2.setBounds(246, 146, 86, 24);
		frame.getContentPane().add(V2);
		V2.setColumns(10);
		
		JLabel label_4 = new JLabel("+");
		label_4.setBounds(211, 149, 35, 18);
		frame.getContentPane().add(label_4);
		
		JLabel lblI_2 = new JLabel("i");
		lblI_2.setBounds(346, 149, 72, 18);
		frame.getContentPane().add(lblI_2);
		
		R3 = new JTextField();
		R3.setEditable(false);
		R3.setBounds(100, 199, 86, 24);
		frame.getContentPane().add(R3);
		R3.setColumns(10);
		
		V3 = new JTextField();
		V3.setEditable(false);
		V3.setBounds(246, 199, 86, 24);
		frame.getContentPane().add(V3);
		V3.setColumns(10);
		
		JLabel label_5 = new JLabel("+");
		label_5.setBounds(211, 202, 35, 18);
		frame.getContentPane().add(label_5);
		
		JLabel lblI_3 = new JLabel("i");
		lblI_3.setBounds(346, 202, 72, 18);
		frame.getContentPane().add(lblI_3);
	}
}

  • 2
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

江湖无为

感谢你们的鼓励

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值