复数计算界面小程序-Java

需求分析

Java编程实现如下图所示的一个可对复数进行计算的界面Application
在这里插入图片描述

代码实现

实验共有两个文件,如下所示:
在这里插入图片描述

  1. 设计并实现出程序界面
  2. 添加功能实现

ComplexAPP

import java.awt.BorderLayout;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.Label;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;

import com.sun.jdi.event.EventQueue;

public class ComplexAPP{
	private JFrame frame;
	private JTextField R1;
	private JTextField V1;
	private JTextField operator;
	private JTextField R2;
	private JTextField V2;
	private JTextField R3;
	private JTextField V3;

	public ComplexAPP() {
 		frame=new JFrame();
 		frame.setBounds(100,100,450,300);//设置左上角坐标及宽高
 		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置关闭方式
 		frame.getContentPane().setLayout(null);//设置布局
 		
 		JLabel fushu1_Label=new JLabel("复数1");
 		fushu1_Label.setBounds(14,31,72,18);
 		frame.getContentPane().add(fushu1_Label);
 		
 		JLabel oper_Label=new JLabel("运算符");
 		oper_Label.setBounds(14,87,72,25);
 		frame.getContentPane().add(oper_Label);
 		
 		JLabel fushu3_Lable=new JLabel("复数2");
 		fushu3_Lable.setBounds(14,149,72,18);
 		frame.getContentPane().add(fushu3_Lable);
 		
 		JButton equalBtn=new JButton("=");
 		equalBtn.setBounds(14,198,64,27);
 		frame.getContentPane().add(equalBtn);
 		equalBtn.addActionListener(new ActionListener() {//添加点击事件
			
			@Override
			public void actionPerformed(ActionEvent e) {
//				R1转换为double型数据,V1转换为Double型数据
				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 resultComplex=null;
				if(operator.getText().equals("+")) {
					resultComplex=c1.Plus(c1, c2);
				}else if(operator.getText().equals("-")) {
					resultComplex=c1.Minus(c1, c2);
				}else if(operator.getText().equals("*")) {
					resultComplex=c1.Multiply(c1, c2);
				}
				R3.setText(String.valueOf(resultComplex.getReal_part()));
				V3.setText(String.valueOf(resultComplex.getVitual_part()));
			}
		});
// 		单行文本框
 		R1=new JTextField();
 		R1.setBounds(100,28,86,24);
 		frame.getContentPane().add(R1);
 		R1.setColumns(10);
 		
 		JLabel plus1_Label=new JLabel("+");
 		plus1_Label.setBounds(214,31,8,18);
 		frame.getContentPane().add(plus1_Label);
 		
 		JLabel i_Label=new JLabel("i");
 		i_Label.setBounds(346,31,8,18);
 		frame.getContentPane().add(i_Label);
 		
 		V1=new JTextField();
 		V1.setBounds(246,28,86,24);
 		frame.getContentPane().add(V1);
 		V1.setColumns(10);
 		
 		JLabel i1_Label = new JLabel("i");
		i1_Label.setBounds(346, 31, 28, 18);
		frame.getContentPane().add(i1_Label);
		
		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);
	
		
		JLabel plus2_Label = new JLabel("+");
		plus2_Label.setBounds(211, 149, 35, 18);
		frame.getContentPane().add(plus2_Label);
		
		V2 = new JTextField();
		V2.setBounds(246, 146, 86, 24);
		frame.getContentPane().add(V2);
		V2.setColumns(10);
		
		JLabel i2_Label = new JLabel("i");
		i2_Label.setBounds(346, 149, 72, 18);
		frame.getContentPane().add(i2_Label);
		
		R3 = new JTextField();
		R3.setEditable(false);
		R3.setBounds(100, 199, 86, 24);
		frame.getContentPane().add(R3);
		R3.setColumns(10);
		
		JLabel plus3_Label = new JLabel("+");
		plus3_Label.setBounds(211, 202, 35, 18);
		frame.getContentPane().add(plus3_Label);

		V3 = new JTextField();
		V3.setEditable(false);
		V3.setBounds(246, 199, 86, 24);
		frame.getContentPane().add(V3);
		V3.setColumns(10);
		
		JLabel lblI_3 = new JLabel("i");
		lblI_3.setBounds(346, 202, 72, 18);
		frame.getContentPane().add(lblI_3);

 		frame.setVisible(true);
	}
	public static void main(String[] args) {
		new ComplexAPP();
	}
}

Complex

public class Complex {
	private double real_part;
	private double vitual_part;
//	得到实数部分
	public double getReal_part() {
		return real_part;
	}

	public void setReal_part(double real_part) {
		this.real_part = real_part;
	}
//得到虚数部分
	public double getVitual_part() {
		return vitual_part;
	}

	public void setVitual_part(double vitual_part) {
		this.vitual_part = vitual_part;
	}

	public Complex(double real_part,double vitual_part) {
		// TODO Auto-generated constructor stub
		super();
		this.real_part=real_part;
		this.vitual_part=vitual_part;
	}

	public Complex Plus(Complex c1, Complex c2) {
		// TODO Auto-generated method stub
		Complex resComplex=new Complex(0, 0);
		resComplex.real_part=c1.real_part+c2.real_part;
		resComplex.vitual_part=c1.vitual_part+c2.vitual_part;
		return resComplex;
	}

	public Complex Minus(Complex c1, Complex c2) {
		Complex resComplex=new Complex(0, 0);
		resComplex.real_part=c1.real_part-c2.real_part;
		resComplex.vitual_part=c1.vitual_part-c2.vitual_part;
		return resComplex;
	}

	public Complex Multiply(Complex c1, Complex c2) {
		Complex resComplex=new Complex(0, 0);
		resComplex.real_part=c1.real_part*c2.real_part-c1.vitual_part*c2.vitual_part;
		resComplex.vitual_part=c1.real_part*c2.vitual_part+c1.vitual_part* c2.real_part;
		return resComplex;
	}	
}

实验总结

  • 加强对类定义以及使用的认识
  • 学会合理对界面程序进行布局
  • 正确实现实验所要求的的功能
  • 3
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
import java.io.*; public class Book{ double sb; double xb; Book(double x,double y){ this.sb=x; this.xb=y; } Book(){ } public static void main(String args[]){ System.out.println("请输入数据:"); double a=0; double b=0; double c=0; double d=0; String s; BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); System.out.println("请输入第一个复数的实部:"); try{ s = in.readLine(); a=Double.parseDouble(s); } catch(IOException e) { System.out.println("抛掷异常");} System.out.println("请输入第一个复述的虚部:"); try{ s = in.readLine(); b =Double.parseDouble(s); } catch(IOException e) { System.out.println("抛掷异常");} System.out.println("请输入第二个复述的实部:"); try{ s = in.readLine(); c =Double.parseDouble(s); } catch(IOException e) { System.out.println("抛掷异常");} System.out.println("请输入第二个复述的虚部:"); try{ s = in.readLine(); d =Double.parseDouble(s); } catch(IOException e) { System.out.println("抛掷异常");} Book h; h=new Book(a,b); Book j; j=new Book(c,d); System.out.println("您输入的一个数为:"); toString(h); System.out.println("您输入的二个数为:"); toString(j); Book k; k=new Book(); char z='y'; do{ System.out.println("请选择您要进行的计算:"); System.out.println("1 :进行加法运算"); System.out.println("2 :进行减法运算"); System.out.println("3 :进行修改"); System.out.println("4 :进行乘法运算"); System.out.println("5 :进行除法运算"); System.out.println("6 :查看修改结果"); int i=0; try{ i= Integer.parseInt(in.readLine()); } catch(IOException e) { System.out.println("抛掷异常");} switch(i) { case 1: k.sb=jia(h.sb,j.sb); k.xb=jia(h.xb,j.xb); System.out.println("计算结果的实部为:"+k.sb); System.out.println("计算结果的虚部为:"+k.xb); toString(k); break ; case 2: k.sb=jian(h.sb,j.sb); k.xb=jian(h.xb,j.xb); System.out.println("计算结果的实部为:"+k.sb); System.out.println("计算结果的虚部为:"+k.xb); toString(k); brea
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值