Java编写能完成复数运算的程序

题目简介:

整体分析:

界面分析:

实验代码:

package complex;

import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JPanel;
import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.SwingConstants;
import javax.swing.border.EmptyBorder;
import javax.swing.JButton;
import java.awt.Font; public class Complex implements ActionListener { String s,s1,s2,s3,s4; //s为运算符号,s1,s3为两个虚数的实部,s2,s4为两个虚数的虚部
double a,b,c,d,ans1,ans2; //对应的字符串转化为数值后:a,c为两个虚数的实部,b,d为两个虚数的虚部
//ans1,ans2为计算结果 private JFrame frame;
private JTextField textField_1;
private JTextField textField_2;
private JTextField textField;
private JTextField textField_3;
private JTextField textField_4;
private JTextField textField_5;
private JTextField textField_6;
private JButton button; public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Complex window = new Complex(); //插件自动生成对象,并设置可见性为可见
window.frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
} /*GUi插件自动生成*/
public Complex() {
frame = new JFrame();
frame.setBounds(100, 100, 709, 377);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().setLayout(new GridLayout(1, 1, 0, 0)); JPanel panel = new JPanel();
panel.setBorder(new EmptyBorder(20, 20, 20, 20));
frame.getContentPane().add(panel);
panel.setLayout(new GridLayout(4, 5, 20, 20));
/*public GridLayout(x,y,hgap,vgap) x,y为表格布局的行和列,hgap和vgap为表格元素间的间距*/ JLabel label = new JLabel("\u590D\u65701\uFF1A");
label.setFont(new Font("宋体", Font.BOLD, 19));
label.setHorizontalAlignment(SwingConstants.CENTER);
panel.add(label); textField_1 = new JTextField();
textField_1.setFont(new Font("宋体", Font.BOLD, 18));
textField_1.setHorizontalAlignment(SwingConstants.CENTER);
textField_1.setColumns(10);
panel.add(textField_1); JLabel label_1 = new JLabel("+");
label_1.setFont(new Font("宋体", Font.BOLD, 19));
label_1.setHorizontalAlignment(SwingConstants.CENTER);
panel.add(label_1); textField_2 = new JTextField();
textField_2.setFont(new Font("宋体", Font.BOLD, 18));
textField_2.setHorizontalAlignment(SwingConstants.CENTER);
textField_2.setColumns(10);
panel.add(textField_2); JLabel label_2 = new JLabel("i");
label_2.setFont(new Font("宋体", Font.BOLD, 19));
label_2.setHorizontalAlignment(SwingConstants.CENTER);
panel.add(label_2); JLabel label_3 = new JLabel("\u8FD0\u7B97\u7B26");
label_3.setFont(new Font("宋体", Font.BOLD, 19));
label_3.setHorizontalAlignment(SwingConstants.CENTER);
panel.add(label_3); JLabel label_4 = new JLabel("");
label_4.setHorizontalAlignment(SwingConstants.CENTER);
panel.add(label_4); textField = new JTextField();
textField.setFont(new Font("宋体", Font.BOLD, 19));
textField.setHorizontalAlignment(SwingConstants.CENTER);
textField.setColumns(10);
panel.add(textField);
/*
* TextArea与TextField的最基本区别
* TextArea可以输入多行文本,
* TextField只能输入单行文本。
*/ JLabel label_5 = new JLabel("");
label_5.setHorizontalAlignment(SwingConstants.CENTER);
panel.add(label_5); JLabel label_6 = new JLabel("");
panel.add(label_6); JLabel label_7 = new JLabel("\u590D\u65702\r\n");
label_7.setFont(new Font("宋体", Font.BOLD, 19));
label_7.setHorizontalAlignment(SwingConstants.CENTER);
panel.add(label_7); textField_3 = new JTextField();
textField_3.setFont(new Font("宋体", Font.BOLD, 18));
textField_3.setHorizontalAlignment(SwingConstants.CENTER);
textField_3.setColumns(10);
panel.add(textField_3); JLabel label_8 = new JLabel("+");
label_8.setFont(new Font("宋体", Font.BOLD, 19));
label_8.setHorizontalAlignment(SwingConstants.CENTER);
panel.add(label_8); textField_4 = new JTextField();
textField_4.setFont(new Font("宋体", Font.BOLD, 18));
textField_4.setHorizontalAlignment(SwingConstants.CENTER);
textField_4.setColumns(10);
panel.add(textField_4); JLabel label_9 = new JLabel("i");
label_9.setFont(new Font("宋体", Font.BOLD, 18));
label_9.setHorizontalAlignment(SwingConstants.CENTER);
panel.add(label_9); button = new JButton("=");
button.setFont(new Font("宋体", Font.BOLD, 20));
panel.add(button);
button.addActionListener(this); textField_5 = new JTextField();
textField_5.setFont(new Font("宋体", Font.BOLD, 18));
textField_5.setHorizontalAlignment(SwingConstants.CENTER);
textField_5.setColumns(10);
panel.add(textField_5); JLabel label_11 = new JLabel("+");
label_11.setFont(new Font("宋体", Font.BOLD, 19));
label_11.setHorizontalAlignment(SwingConstants.CENTER);
panel.add(label_11); textField_6 = new JTextField();
textField_6.setFont(new Font("宋体", Font.BOLD, 18));
textField_6.setHorizontalAlignment(SwingConstants.CENTER);
textField_6.setColumns(10);
panel.add(textField_6); JLabel label_12 = new JLabel("i");
label_12.setFont(new Font("宋体", Font.BOLD, 19));
label_12.setHorizontalAlignment(SwingConstants.CENTER);
panel.add(label_12);
} /*点击按钮事件*/
public void actionPerformed(ActionEvent e) {
//得到输入框的内容
s1 = textField_1.getText();
s2 = textField_2.getText();
s3 = textField_3.getText();
s4 = textField_4.getText();
s = textField.getText();
//字符串转化为数值
a = Double.parseDouble(s1);
b = Double.parseDouble(s2);
c = Double.parseDouble(s3);
d = Double.parseDouble(s4);
//选择运算类型:加,减,乘
switch (s) {
case "+":
ans1 = a + b;
ans2 = c + d;
break;
case "-":
ans1 = a - b;
ans2 = c - d;
break;
case "*":
ans1 = a*c - b*d;
ans2 = a*d + b*c;
break;
}
//设置文本框内容
textField_5.setText(ans1+"");
textField_6.setText(ans2+""); } }

实验结果:

Java编写能完成复数运算的程序的更多相关文章

  1. java编写创建数据库和表的程序

    本文示例可见一斑了,主要是通过Java对SQL语句进行操作,和普通的增删改查的原理是一样的: import java.sql.*; public class Test { public static ...

  2. 300道随机四则运算小程序(java编写)

    这是由Java编写的300道随机四则运算小程序, 运算数范围为0~100(不包括100),运算结果保留两位小数. 程序代码: import java.util.*; class Yunsuan{ pu ...

  3. Java 编写小程序,下载指定网页上的所有图片

    使用Java编写一个小程序,可以根据指定的网页地址,下载网页中的所有图片:使用到网络编程.线程池.IO和UUID的技术.具体代码如下: import java.io.File; import java ...

  4. Java编写串口程序

    用Java编写串口程序一般都会用到这个 http://fizzed.com/oss/rxtx-for-java 根据电脑的情况下载 解压以后有安装文档 For a JDK installation: ...

  5. Java编写画图板程序细节-保存已画图形

    没有Java编写画图板程序细节-保存已画图形   一.为何我们要保存画图板上已画图形呢? 有很多人会问,为什么我们一定要保存画图板上已经画好了的图形呢?原因很简单.当我们在画图板上画完自己想画的图形后 ...

  6. 算法笔记_047:复数运算(Java)

    目录 1 问题描述 2 解决方案   1 问题描述 编程实现两个复数的运算.设有两个复数 和 ,则他们的运算公式为: 要求:(1)定义一个结构体类型来描述复数. (2)复数之间的加法.减法.乘法和除法 ...

  7. 编写高质量代码改善C#程序的157个建议——建议130:以复数命名枚举类型,以单数命名枚举元素

    建议130:以复数命名枚举类型,以单数命名枚举元素 枚举类型应该具有负数形式,它表达的是将一组相关元素组合起来的语义.比如: enum Week { Monday, Tuesday, Wednesda ...

  8. 编写高质量代码改善C#程序的157个建议——建议124:考虑在命名空间中使用复数

    建议124:考虑在命名空间中使用复数 如果有一组功能相近的类型被分到了同一个命名空间想,可以考虑为命名空间使用复数. 最典型的例子有,在FCL中,我们需要把所有的非泛型集合类集中在一起存放,所以就有了 ...

  9. Java练习 SDUT-4303_简单的复数运算(类和对象)

    简单的复数运算(类和对象) Time Limit: 2000 ms Memory Limit: 65536 KiB Problem Description 设计一个类Complex,用于封装对复数的下 ...

随机推荐

  1. Beta冲刺版本第一天

    该作业所属课程:https://edu.cnblogs.com/campus/xnsy/SoftwareEngineeringClass2 作业要求地址:https://edu.cnblogs.com ...

  2. SpringBoot使用JPA来做数据查询

    Spring-Data-JPA在做数据存储方面真的很方便,它的目的就是写更少的代码,更多的事情,但是也有其力有未逮或者说处理起来比较闹心的地方. 1.先来感受一下使用JPA做数据查询时,代码的简化程度 ...

  3. Task底层实现原理探秘

    .NET 4包含新名称空间System.Threading.Tasks,它 包含的类抽象出了线程功能, 在底层使用ThreadPool. 任务表示应完成的某个单元的工作. 这个单元的工作可以在单独的线 ...

  4. 对ACID的深层解读

    A:Atomieity 通常,原子指不可分解为更小粒度的东西,该术语在计算机的不同领域里面有着相似但却微妙的差异.在多线程并发编程中,如果某线程执行一个原子操作,这意味着其他线程是无法看到该结果的中间 ...

  5. jQuery.getScript(url, [callback])

    jQuery.getScript(url, [callback]) 概述 通过 HTTP GET 请求载入并执行一个 JavaScript 文件.大理石平台精度等级 jQuery 1.2 版本之前,g ...

  6. SQL中where in的用法

    首先我们要知道where是什么:一个判断符.在SQL操作中,控制只选择指定的行. in的其实归类于特殊的比较运算符 expr1 between expr2 and expr3:表示expr1的值在ex ...

  7. 51 Nod 1352 集合计数

    大致题意:求ax+by=n+1的正数解的个数. 先看下面: 相信看过了通解的参数表示后已经知道怎么解了,贴代码: #include <bits/stdc++.h> #define ll l ...

  8. go之流程控制

    一.与用户交互 var name string fmt.Scanln(&name) # 一定得传指针,因为我要修改的是name的值 fmt.Println(name) 二.if判断 1.if ...

  9. 十大免费SSL证书:网站免费添加HTTPS加密

    SSL证书,用于加密HTTP协议,也就是HTTPS.随着淘宝.百度等网站纷纷实现全站Https加密访问,搜索引擎对于Https更加友好,加上互联网上越来越多的人重视隐私安全,站长们给网站添加SSL证书 ...

  10. 「CTSC 2008」祭祀

    题目链接 戳我 \(Solution\) 第一问 这道题要知道一个叫做\(Dilworth\)的定理 最长反链\(=\)最小链覆盖 证明(\(from\ r\_64\)): 所以我们只要求一个最小链覆 ...