java一元二次方程程序设计实验报告_Java 组件及事件处理实训 实训2:编写一个窗体程序,用于计算一元二次方程...
代码:
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:编写一个窗体程序,用于计算一元二次方程...相关推荐
- java程序设计实验报告_JavA程序设计实验报告.doc
Java程序设计实验报告 学号: 姓名: 座位号: 实验日期: [实验名称]: JDK配置与开发工具的使用 [实验目的]: 熟悉JDK开发环境. 熟悉EditPlus编辑器或Eclipse等开发环境的 ...
- java 类与对象实验报告_java类与对象实验报告
java类与对象实验报告 西 安 邮 电 大 学(计算机学院)课内实验报告实验名称: 类与对象 专业名称: 计算机科学与技术班 级: 计科1405班 学生姓名: 高宏伟 学 号: 04141152指导 ...
- java猜数字游戏实验报告_java猜数游戏实验报告.doc
java猜数游戏实验报告 课 程 设 计 报 告 课程设计名称 Java程序设计-猜数游戏 指导教师 钟世刚 专业 班级 信息安全 学 号 姓 名 成 绩 一.设计任务与要求1 1.1 设计任务与要求 ...
- java多线程贪吃蛇实验报告_JAVA开放性实验报告贪吃蛇
JAVA开放性实验报告贪吃蛇 JAVA程序设计 开放性实验报告 专 业: 计算机科学与技术 班 级: 2012级2班 学 号: 姓 名: 实验2贪吃蛇游戏设计(4学时) 1.实验内容 (1) 创建软件 ...
- java字节字符流实验报告_Java第09次实验(IO流)--实验报告
0.字节流与二进制文件 我的代码 用DataOutputStream和FileOutputStream将Student对象写入二进制文件student.data package test; impor ...
- Java简单记事本设计实验报告_java记事本实验报告
期末考查大作业任务书 课程名称: Java 语言程序设计设计实验 题 目: 简单记事本得设计与实现 学 院: 管理学院 系: 信息管理系 专业班级: 学 号: 学生姓名: 起讫日期: 2015-09- ...
- java猜数字游戏实验报告_Java实现的猜数字游戏示例
本文实例讲述了Java实现的猜数字游戏.分享给大家供大家参考,具体如下: 这里演示一段java语言猜数字代码,流程如下: 系统随机生成0-9中的不重复四位数字. 然后用户输入四个数字 如果数字对了,位 ...
- java点餐系统实验报告_JAVA课程实践报告 基于web的点餐系统毕业设计.doc
JAVA课程实践报告 基于web的点餐系统毕业设计 大连理工大学城市学院 JAVA课程实践报告 题目:基于web点餐系统 学院:计算机工程学院 班级:07软日3班 指导教师: 杨俊生 学生姓名:李杰伟 ...
- 用java编写日历添加窗口一角_Java 实训4 编写一个窗体程序显示日历
实训要求: 1.使用BorderLayout 进行总体布局 2.在North 位置放置包含两个按钮( 上月和下月)的Panel 3.在South 位置放置一个Label 用于显示当前年份和月份 4.在 ...
最新文章
- 计算机php外文翻译,php外文翻译.doc
- C++ Primer 5th笔记(chap 11)关联容器---无序容器
- Winform中通过NPOI导出Excel时通过ICellStyle和IDataFormat格式化日期显示格式
- 阿里云云主机添加swap分区与swap性能优化
- 小程序二级页面tabbar_小程序页面推广踩坑记
- 【剑指offer】_08.数值的整数次方
- 信号与槽是如何实现的_铺天盖地的吐槽,结果却是卖到断货?iPhone12魅力何在?...
- 无线通信-信道模型概念
- 动手学深度学习(使用Pytorch)网址收藏
- linux 查看硬盘健康,linux硬盘检测健康状态
- 计算机桌面放大了,电脑桌面好像被放大了,怎么处理?
- flex属性-flex:1到底是什么
- 静态条件下三轴加速度求角度的算法
- 服务器有什么类型?应用功能是什么
- MySQL高级--2--黑马
- 您可以在Windows PC或Android手机上使用iMessage吗?
- 微信小程序开发使用onreachBottom实现页面触底加载及分页
- Java并发基础知识(五)
- CAD碎片化学习教程 @3. 设置当前字体
- word2vec源码分析