教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 学前教育 >

北邮JAVA第三次作业科学计算器(附源代码)

来源:网络收集 时间:2026-05-16
导读: JAVA第三次作业 选题:科学计算器 一、 设计思路 (1)布局 1. 数字键盘有0~9和小数点 2. 符号键盘有+?×÷,幂,开方,lg,ln 3. 功能按键有清屏(AC)和删除(Del) (2)计算器流程状态转移图 设定的标志位和变量有: boolean numflag = false; //标志:是否

JAVA第三次作业

选题:科学计算器

一、 设计思路

(1)布局

1. 数字键盘有0~9和小数点

2. 符号键盘有+?×÷,幂,开方,lg,ln 3. 功能按键有清屏(AC)和删除(Del)

(2)计算器流程状态转移图

设定的标志位和变量有:

boolean numflag = false; //标志:是否输入数字

boolean opflag = false; //标志:是否输入运算操作符 String txt = null; //显示到文本框里的字符串 String num_txt = \; //当前操作数的字符串形式 String op = \; //存放输入的运算操作符 num1 = 0; //第一个操作数 num2 = 0; //第二个操作数

private BigDecimal big_num1 = new BigDecimal(Double.toString(0));//解决浮点数的精度丢失问题

private BigDecimal big_num2 = new BigDecimal(Double.toString(0));

1. 关于操作数

操作数为输入数字时会改变的数,有num1和num2。按下运算符和控制字符,会设定当前

下在键入的操作数,由opflag控制,false表示正在操作num1,true表示正在操作num2。

初始状态下的操作数为num1。按下AC会恢复操作数为初始状态num1。 按Delete、开方、lg、ln不会改变当前的操作数。其中后三者只对num1有效。 其他的运算符和控制符都会使操作数为num2。

2. 计算器的状态框图

输入第一个数,比如53 numflag=true(num1) opflag=false num_txt=”53” op=”” txt=”53” 初始状态 numflag=false opflag=false num_txt=”” op=”” txt=null num1,num2 = 0 按下一个运算符,比如+ numflag=false opflag=true num_txt=”” op=”+” txt=”num1+” 其中按下

按= 显示结果,恢复初始状态 numflag=true(num1) opflag=false num_txt=”” op=”” txt=”result” “=”后,结果存输入第二个数,比如66 入numflag=true(num2) opflag=true num_txt=” 66” op=”” txt=”num1+66” num1,继续输入数字会在num1的结果上处理。 在上述图中没有画出的还有: - -

任何时候按下AC,都会回到初始状态

任何时候按下Del,都会把当前的操作数回删一位

二、 程序截图

按下9+3.3,再按下+0.25

2

按下=,再按Del

AC后进行乘法和除法测试。3/9*3

3

幂测试2^10

开方测试 根号65。开方是对文本框里只有一个操作数时有效

下面是lg101和ln2.718的结果。ln和lg对文本框里只有一个操作数时有效

4

后面的功能已经验证了可以对结果继续操作没有出现bug。

三、代码分析

1. 声明控件

这些就不写了,包括JFrame在内用了25个控件,23个JButton,1个Jframe,一个显示计算界面的文本框result

private JTextField result;

2. 初始化用于控制计算流程的变量

/**

* 几个变量,用于计算、判定,存放结构等。 * */

private boolean numflag = false; //标志:是否输入数字

private boolean opflag = false; //标志:是否输入运算操作符 private String txt = null; //显示到文本框里的字符串

private String num_txt = \; //正在键入的操作数的字符串形式 private String op = \; //存放输入的运算操作符 private double num1 = 0; //num1和num2用作运算 private double num2 = 0;

private BigDecimal big_num1 = new BigDecimal(Double.toString(0));//解决浮点数的精度问题 private BigDecimal big_num2 = new BigDecimal(Double.toString(0));

3. main方法里创建窗体

public static void main(String[] args) {

EventQueue.invokeLater(new Runnable() { public void run() { try {

MyFrame window = new MyFrame(); window.frame.setVisible(true); } catch (Exception e) { e.printStackTrace(); } } });

//添加到线程队列

//创建对象时初始化控件

5

…… 此处隐藏:349字,全部文档内容请下载后查看。喜欢就下载吧 ……
北邮JAVA第三次作业科学计算器(附源代码).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/598714.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)