代码:

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

public class EquationFrame extends JFrame implements ActionListener {

SquareEquation equation;

JTextField textA, textB, textC;

JTextArea showRoots;

JButton controlButton;

public EquationFrame() {

equation = new SquareEquation();

textA = new JTextField(8);

textB = new JTextField(8);

textC = new JTextField(8);

controlButton = new JButton("确定");

JPanel pNorth = new JPanel();

pNorth.add(new JLabel("二次项系数:"));

pNorth.add(textA);

pNorth.add(new JLabel("一次项系数:"));

pNorth.add(textB);

pNorth.add(new JLabel("常数项系数:"));

pNorth.add(textC);

pNorth.add(controlButton);

controlButton.addActionListener(this);

getContentPane().add(pNorth, BorderLayout.NORTH);

showRoots=new JTextArea();

JScrollPane scrollPane =new JScrollPane(showRoots);

getContentPane().add(scrollPane,BorderLayout.CENTER);

setSize(630, 160);

Dimension scnSize = Toolkit.getDefaultToolkit().getScreenSize();

Dimension fromSize = this.getSize();

this.setLocation((scnSize.width - fromSize.width) / 2,

(scnSize.height - fromSize.height) / 2);

validate();

setVisible(true);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

public void actionPerformed(ActionEvent e) {

try {

double a = Double.parseDouble(textA.getText());

double b = Double.parseDouble(textB.getText());

double c = Double.parseDouble(textC.getText());

equation.setA(a);

equation.setB(b);

equation.setC(c);

showRoots.append("根:" + equation.getRootOne());

showRoots.append("根:" + equation.getRootTwo() + "\n");

} catch (Exception ex) {

showRoots.append(ex.getMessage() + "\n");

}

}

public static void main(String args[]) {

new EquationFrame();

}

}

public class SquareEquation {

double a, b, c;

public void setA(double a) {

this.a = a;

}

public void setB(double b) {

this.b = b;

}

public void setC(double c) {

this.c = c;

}

public double getRootOne() {

double disk = calculateValidDisk();

return (-b + Math.sqrt(disk)) / (2 * a);

}

public double getRootTwo() {

double disk = calculateValidDisk();

return (-b + Math.sqrt(disk)) / (2 * a);

}

private double calculateValidDisk() {

if (a == 0) {

throw new EquationException("不是二次方程",

EquationException.NONE_EQUATION);

}

double disk = b * b - 4 * a * c;

if (disk < 0) {

throw new EquationException("没有实根", EquationException.NO_REAL_ROOT);

}

return disk;

}

}

class EquationException extends RuntimeException {

public static final int NONE_EQUATION = 1;

public static final int NO_REAL_ROOT = 2;

private int errorCode;

public EquationException(String msg, int errorCode) {

super(msg);

this.errorCode = errorCode;

}

public int getErrorCode() {

return errorCode;

}

}运算结果:

java一元二次方程程序设计实验报告_Java 组件及事件处理实训 实训2:编写一个窗体程序,用于计算一元二次方程...相关推荐

  1. java程序设计实验报告_JavA程序设计实验报告.doc

    Java程序设计实验报告 学号: 姓名: 座位号: 实验日期: [实验名称]: JDK配置与开发工具的使用 [实验目的]: 熟悉JDK开发环境. 熟悉EditPlus编辑器或Eclipse等开发环境的 ...

  2. java 类与对象实验报告_java类与对象实验报告

    java类与对象实验报告 西 安 邮 电 大 学(计算机学院)课内实验报告实验名称: 类与对象 专业名称: 计算机科学与技术班 级: 计科1405班 学生姓名: 高宏伟 学 号: 04141152指导 ...

  3. java猜数字游戏实验报告_java猜数游戏实验报告.doc

    java猜数游戏实验报告 课 程 设 计 报 告 课程设计名称 Java程序设计-猜数游戏 指导教师 钟世刚 专业 班级 信息安全 学 号 姓 名 成 绩 一.设计任务与要求1 1.1 设计任务与要求 ...

  4. java多线程贪吃蛇实验报告_JAVA开放性实验报告贪吃蛇

    JAVA开放性实验报告贪吃蛇 JAVA程序设计 开放性实验报告 专 业: 计算机科学与技术 班 级: 2012级2班 学 号: 姓 名: 实验2贪吃蛇游戏设计(4学时) 1.实验内容 (1) 创建软件 ...

  5. java字节字符流实验报告_Java第09次实验(IO流)--实验报告

    0.字节流与二进制文件 我的代码 用DataOutputStream和FileOutputStream将Student对象写入二进制文件student.data package test; impor ...

  6. Java简单记事本设计实验报告_java记事本实验报告

    期末考查大作业任务书 课程名称: Java 语言程序设计设计实验 题 目: 简单记事本得设计与实现 学 院: 管理学院 系: 信息管理系 专业班级: 学 号: 学生姓名: 起讫日期: 2015-09- ...

  7. java猜数字游戏实验报告_Java实现的猜数字游戏示例

    本文实例讲述了Java实现的猜数字游戏.分享给大家供大家参考,具体如下: 这里演示一段java语言猜数字代码,流程如下: 系统随机生成0-9中的不重复四位数字. 然后用户输入四个数字 如果数字对了,位 ...

  8. java点餐系统实验报告_JAVA课程实践报告 基于web的点餐系统毕业设计.doc

    JAVA课程实践报告 基于web的点餐系统毕业设计 大连理工大学城市学院 JAVA课程实践报告 题目:基于web点餐系统 学院:计算机工程学院 班级:07软日3班 指导教师: 杨俊生 学生姓名:李杰伟 ...

  9. 用java编写日历添加窗口一角_Java 实训4 编写一个窗体程序显示日历

    实训要求: 1.使用BorderLayout 进行总体布局 2.在North 位置放置包含两个按钮( 上月和下月)的Panel 3.在South 位置放置一个Label 用于显示当前年份和月份 4.在 ...

最新文章

  1. 计算机php外文翻译,php外文翻译.doc
  2. C++ Primer 5th笔记(chap 11)关联容器---无序容器
  3. Winform中通过NPOI导出Excel时通过ICellStyle和IDataFormat格式化日期显示格式
  4. 阿里云云主机添加swap分区与swap性能优化
  5. 小程序二级页面tabbar_小程序页面推广踩坑记
  6. 【剑指offer】_08.数值的整数次方
  7. 信号与槽是如何实现的_铺天盖地的吐槽,结果却是卖到断货?iPhone12魅力何在?...
  8. 无线通信-信道模型概念
  9. 动手学深度学习(使用Pytorch)网址收藏
  10. linux 查看硬盘健康,linux硬盘检测健康状态
  11. 计算机桌面放大了,电脑桌面好像被放大了,怎么处理?
  12. flex属性-flex:1到底是什么
  13. 静态条件下三轴加速度求角度的算法
  14. 服务器有什么类型?应用功能是什么
  15. MySQL高级--2--黑马
  16. 您可以在Windows PC或Android手机上使用iMessage吗?
  17. 微信小程序开发使用onreachBottom实现页面触底加载及分页
  18. Java并发基础知识(五)
  19. CAD碎片化学习教程 @3. 设置当前字体
  20. word2vec源码分析

热门文章

  1. 百度股市通日k数据接口
  2. 要matlab标定数据做双目相机矫正OpenCV C++
  3. 基于MATLAB的频谱、能量谱、三分之一倍频程分析
  4. ubuntu 搭建k8s集群中篇
  5. kafka 主动消费_Kafka ack消费确认-提交和偏移量 详解
  6. AutoCAD命令集
  7. QNX APS自适应分区调度
  8. 架构对比(CPU、GPU、FPGA、ASIC、DSA……)
  9. 为什么说我学计算机是误入歧途,致贪玩的初中生:为什么别人在学习,而你却要玩,你要赶紧警醒!...
  10. docker部署ELK、grafana、zabbix