北邮JAVA第三次作业科学计算器(附源代码)
JA V A第三次作业
选题:科学计算器
一、设计思路
(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.计算器的状态框图
其
中
按
下
结
果
存
入
num1的结果上处理。
在上述图中没有画出的还有:
-任何时候按下AC,都会回到初始状态
-任何时候按下Del,都会把当前的操作数回删一位
二、程序截图
按下9+3.3,再按下+0.25
按下=,再按Del
AC后进行乘法和除法测试。3/9*3
幂测试2^10
开方测试根号65。开方是对文本框里只有一个操作数时有效
下面是lg101和ln2.718的结果。ln和lg对文本框里只有一个操作数时有效
后面的功能已经验证了可以对结果继续操作没有出现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();
}
}
});
}
4.窗体的构造函数
/**
* Constructor
*/
public MyFrame() {
initialize();
}
5.initialize()函数里摆放控件,并设置事件的处理
1)Jframe
frame = new JFrame("Java 计算器");
frame.setResizable(false);
frame.setBounds(100, 100, 371+60, 371);
frame.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
frame.getContentPane().setLayout(null);
2)文本框
result = new JTextField();
result.setFont(new Font("Helvetica", Font.PLAIN, 15));
result.setHorizontalAlignment(SwingConstants.RIGHT);
result.setBounds(29, 28, 308+60, 50);
frame.getContentPane().add(result);
result.setColumns(10);
result.setText(txt);
3)数字按钮,用0举例,其他都一样
bt_0 = new JButton("0");
bt_0.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
numBtnAction("0"); //按钮被按下时触发的事件,在后面写了
}
});
bt_0.setBounds(99, 273, 50, 50);
frame.getContentPane().add(bt_0);
4)“=”按钮
bt_equal = new JButton("=");
bt_equal.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if(opflag == true){
num2 = Double.parseDouble(num_txt); //如果此时opflag为true的话,证明已经输入运算符,这时候刚输入的数为num2,num1和num2进行运算
big_num2 = new BigDecimal(num_txt);
calc(op);
}
result.setText(subZeroAndDot(Double.toString(big_num1.doubleValue())));
//显示结果。结果存入num1
num_txt = subZeroAndDot(Double.toString(big_num1.doubleValue()));
}
});
5)+、-、*、/和幂方按钮,以+举例,其他都一样
bt_plus = new JButton("+");
bt_plus.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
opBtnAction("+");
}
});
6)开方,lg, ln按钮,以开方举例,其他都一样
bt_sqrt = new JButton("sqrt");
bt_sqrt.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (opflag == false) { //只对操作数为num1时有效
calc("sqrt");
txt = num_txt;
result.setText(txt);
}
}
});
7)ac和del的初始化,重点在事件处理上
bt_ac.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
result.setText(null); //全部运算标志和文本框置为初始状态
txt = null;
numflag = opflag = false;
num1 = num2 = 0;
big_num1 = big_num2 = new BigDecimal(Double.toString(0.0));
num_txt = "";
}
});
bt_del.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if(num_txt != "" && num_txt.length() > 0) {
//通过截取字符串的方式回删一个字符
num_txt = num_txt.substring(0, num_txt.length() - 1);
}
if(txt != null && txt.length() > 0) {
txt = result.getText(); //文本框的回删,且不能删除运算符
if (txt.charAt(txt.length()-1) == '+' || txt.charAt(txt.length()-1) == '-' || txt.charAt(txt.length()-1) == '*'
|| txt.charAt(txt.length()-1) == '/' ||
txt.charAt(txt.length()-1) == '^' ) {
}else{
txt = txt.substring(0, txt.length() - 1);
}
result.setText(txt);
}
}
});
6.数字键盘事件处理函数
/**
* 数字键盘里的按键按下后触发的事件。
*
* @param num 传入字符串形式的数字
*
* */
private void numBtnAction(String num) {
numflag = true; //只要输入一个数,则把numflag置为true,表
示已有数字输入
num_txt += num; //把输入的数加入到最终要转换成都double运算
的字符串
txt = result.getText() + num; //加到txt,使输入的数显示到文本框中。
result.setText(txt);
}
7.运算符处理的函数
/**
* 运算符按键触发的动作
*
* @param operator 点击的运算符
*
* */
private void opBtnAction(String operator) {
if(opflag == false && num_txt != "") { //进行判断,如果opflag为false,则表示还没
输入运算符,
num1 = Double.parseDouble(num_txt); //这个时候把num_txt转换成double赋给num1。
big_num1 = new BigDecimal(num_txt);
}
if(opflag == true && num_txt != ""){
num2 = Double.parseDouble(num_txt); //如果opflag为true,表示第一个数输入完毕,且已输入相应的运算符,这个时候是在输入第二个要参与运算的数,则加到num2
big_num2 = new BigDecimal(num_txt);
calc(op); //先计算两数结果,赋给num1,num2置为0,以
便后面多层混合运算使用。
}
numflag = false; //numflag置为0,表示当前需要输入数进行运算
opflag = true; //opflag置为true,表示当前已输入一个或多个
操作数。
op = operator; //把新输入的运算符赋给op
result.setText(subZeroAndDot(big_num1.toString()) + " " + operator + "
"); //在文本框显示,正则表达式去多余的0
num_txt = ""; //num_txt置为空,为了存储下一个操作数。
}
8.进行运算的函数
/**
* 进行 +、-、*、/ 等的运算
* @param op 运算符
*
* */
private void calc(String op) {
switch(op){
case"+" :
num1 = num1 + num2;
num2 = 0;
big_num1 = big_num1.add(big_num2);
big_num2 = new BigDecimal(0);
opflag = false;
num_txt = "";
break;
case"-" :
num1 = num1 - num2;
num2 = 0;
big_num1 = big_num1.subtract(big_num2);
big_num2 = new BigDecimal(0);
opflag = false;
num_txt = "";
break;
case"*" :
num1 = num1 * num2;
num2 = 0;
big_num1 = big_num1.multiply(big_num2);
big_num2 = new BigDecimal(0);
opflag = false;
num_txt = "";
break;
case"/" :
if(num2 != 0) {
num1 = num1 / num2;
num2 = 0;
big_num1 = big_num1.divide(big_num2,17,BigDecimal.ROUND_HALF_UP);
big_num2 = new BigDecimal(0);
opflag = false;
num_txt = "";
}
break;
case"^" :
num1 = Math.pow(num1, num2);
num2 = 0;
big_num1 = new BigDecimal(Double.toString(num1));
big_num2 = new BigDecimal(0);
opflag = false;
num_txt = "";
break;
case"sqrt" :
num1 = Double.parseDouble(num_txt);
num1 = Math.sqrt(num1);
num2 = 0;
big_num1 = new BigDecimal(Double.toString(num1));
big_num2 = new BigDecimal(0);
num_txt = subZeroAndDot(Double.toString(num1));
break;
case"lg" :
num1 = Double.parseDouble(num_txt);
num1 = Math.log10(num1);
num2 = 0;
big_num1 = new BigDecimal(Double.toString(num1));
big_num2 = new BigDecimal(0);
num_txt = subZeroAndDot(Double.toString(num1));
break;
case"ln" :
num1 = Double.parseDouble(num_txt);
num1 = Math.log(num1);
num2 = 0;
big_num1 = new BigDecimal(Double.toString(num1));
big_num2 = new BigDecimal(0);
num_txt = subZeroAndDot(Double.toString(num1));
break;
default: opflag = false;
num_txt = "";
break;
}
}
9.正则表达式去掉字符串多余的0
/**
* 使用java正则表达式去掉多余的.与0
* @param s
* @return
*/
public static String subZeroAndDot(String s){
if(s.indexOf(".") > 0){
s = s.replaceAll("0+?$", "");//去掉多余的0
s = s.replaceAll("[.]$", "");//如最后一位是.则去掉
}
return s;
}
}
四、问题
1. 浮点数精度丢失(已解决)
在计算12.3+0.72时,得到的结果是13.020000000000001。由于数在机器里是以二进制存储, 0.72的二进制长度是无限长,但double位数是有限的,必然会存在精度丢失问题。应该使用BigDecimal类进行计算。
2. 操作数与显示的不同步(已解决)
在程序中一个重要的点就是保持显示的数和内存中的数是相等的,尤其在回删的时候,可能会显示删除运算符,但实际内存中只删掉了操作数的位数,运算符相关变量和标识没有重置。保持显示的操作数的同步是很重要的
3.BigDecimal除不尽报错(已解决)
BigDecimal除法要限制scale不然会报错。精度要大于浮点数的16位。
五、总结
计算器里面小的坑挺多的,看似写完的时候还有一堆事件要处理,,并且程序逻辑需要完整,对各个计算状态的步骤要清晰。
/**
* @author lingnanmiao
*
* BUG解决日志
* - BigDecimal除不尽报错
* -浮点数精度问题,采用了BigDecimal
* -按下等于后再次输入字符时实际num1与文本框显示不同步
* - Delete时会显示删除运算符实际上没有删除的问题
* -正则表达式去多余的0
*
*/
package assignment02;
import java.awt.EventQueue;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.math.BigDecimal;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTextField;
import javax.swing.SwingConstants;
/**
* @author lingnanmiao
*
* BUG解决日志
* - BigDecimal除不尽报错
* - 浮点数精度问题,采用了BigDecimal
* - 按下等于后再次输入字符时实际num1与文本框显示不同步 * - Delete时会删除运算符的问题
* - 正则表达式去多余的0
*
*/
public class MyFrame extends JFrame{
/**
* 声明各个控件,在后面初始化
*/
private JFrame frame;
private JTextField result;
private JButton bt_1;
private JButton bt_2;
private JButton bt_3;
private JButton bt_4;
private JButton bt_5;
private JButton bt_6;
private JButton bt_7;
private JButton bt_8;
private JButton bt_9;
private JButton bt_0;
private JButton bt_equal;
private JButton bt_dot;
private JButton bt_d0;
private JButton bt_plus;
private JButton bt_sub;
private JButton bt_ac;
private JButton bt_del;
private JButton bt_mul;
private JButton bt_div;
private JButton bt_power;
private JButton bt_sqrt;
private JButton bt_lg;
private JButton bt_ln;
/**
* 几个变量,用于计算、判定,存放结构等。
* */
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));
/**
* Launch the application.
*/
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();
}
}
});
}
/**
* Constructor
*/
public MyFrame() {
initialize();
}
/**
* 初始化控件
*/
public void initialize(){
frame = new JFrame("Java 计算器");
frame.setResizable(false);
frame.setBounds(100, 100, 371+60, 371);
frame.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
frame.getContentPane().setLayout(null);
result = new JTextField(); //----------------------------------------------- result.setFont(new Font("Helvetica", Font.PLAIN, 15)); //
result.setHorizontalAlignment(SwingConstants.RIGHT); //
result.setBounds(29, 28, 308+60, 50); // Initialize 显示结果的文本框的布局 frame.getContentPane().add(result); //
result.setColumns(10); //
result.setText(txt); //-----------------------------------------------
/**
* Number Keyboard Initialize
*/
bt_0 = new JButton("0");
bt_0.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
numBtnAction("0");
}
});
bt_0.setBounds(99, 273, 50, 50);
frame.getContentPane().add(bt_0);
bt_1 = new JButton("1");
bt_1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
numBtnAction("1");
}
});
bt_1.setBounds(99, 213, 50, 50);
frame.getContentPane().add(bt_1);
bt_2 = new JButton("2");
bt_2.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
numBtnAction("2");
}
});
bt_2.setBounds(159, 213, 50, 50);
frame.getContentPane().add(bt_2);
bt_3 = new JButton("3");
bt_3.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
numBtnAction("3");
}
});
bt_3.setBounds(219, 213, 50, 50);
frame.getContentPane().add(bt_3);
bt_4 = new JButton("4");
bt_4.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
numBtnAction("4");
}
});
bt_4.setBounds(99, 157, 50, 50);
frame.getContentPane().add(bt_4);
bt_5 = new JButton("5");
bt_5.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
numBtnAction("5");
}
});
bt_5.setBounds(159, 157, 50, 50);
frame.getContentPane().add(bt_5);
bt_6 = new JButton("6");
bt_6.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
numBtnAction("6");
}
});
bt_6.setBounds(219, 157, 50, 50);
frame.getContentPane().add(bt_6);
bt_7 = new JButton("7");
bt_7.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
numBtnAction("7");
}
});
bt_7.setBounds(99, 97, 50, 50);
frame.getContentPane().add(bt_7);
bt_8 = new JButton("8");
bt_8.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
numBtnAction("8");
}
});
bt_8.setBounds(159, 97, 50, 50);
frame.getContentPane().add(bt_8);
bt_9 = new JButton("9");
bt_9.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
numBtnAction("9");
}
});
bt_9.setBounds(219, 97, 50, 50);
frame.getContentPane().add(bt_9);
bt_dot = new JButton(".");
bt_dot.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
numBtnAction(".");
}
});
bt_dot.setFont(new Font("Helvetica", Font.PLAIN, 15));
bt_dot.setBounds(159, 273, 50, 50);
frame.getContentPane().add(bt_dot);
bt_d0 = new JButton("00");
bt_d0.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
numBtnAction("0");
numBtnAction("0");
}
});
bt_d0.setBounds(219, 273, 50, 50);
frame.getContentPane().add(bt_d0);
/**
* Option Initialize
*/
bt_equal = new JButton("=");
bt_equal.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if(opflag == true){
num2 = Double.parseDouble(num_txt); //如果此时opflag为true的话,证明已经输入运算符,这时候刚输入的数为num2,num1和num2进行运算
big_num2 = new BigDecimal(num_txt);
calc(op);
}
result.setText(subZeroAndDot(Double.toString(big_num1.doubleValue()))); //显示结果。结果存入num1
num_txt = subZeroAndDot(Double.toString(big_num1.doubleV alue()));
}
});
bt_equal.setBounds(339, 213, 50, 110);
frame.getContentPane().add(bt_equal);
bt_plus = new JButton("+");
bt_plus.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
opBtnAction("+");
}
});
bt_plus.setBounds(39, 273, 50, 50);
frame.getContentPane().add(bt_plus);
bt_sub = new JButton("-");
bt_sub.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
opBtnAction("-");
}
});
bt_sub.setBounds(39, 213, 50, 50);
frame.getContentPane().add(bt_sub);
bt_mul = new JButton("*");
bt_mul.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) {
opBtnAction("*");
}
});
bt_mul.setBounds(39, 157, 50, 50);
frame.getContentPane().add(bt_mul);
bt_div = new JButton("/");
bt_div.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
opBtnAction("/");
}
});
bt_div.setBounds(39, 97, 50, 50);
frame.getContentPane().add(bt_div);
bt_power = new JButton("pow");
bt_power.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) {
opBtnAction("^");
}
});
bt_power.setBounds(279, 97, 50, 50);
frame.getContentPane().add(bt_power);
bt_sqrt = new JButton("sqrt");
bt_sqrt.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) {
if (opflag == false) { //只对操作数为num1时有效calc("sqrt");
txt = num_txt;
result.setText(txt);
}
}
});
bt_sqrt.setBounds(279, 157, 50, 50);
frame.getContentPane().add(bt_sqrt);
bt_lg = new JButton("lg");
bt_lg.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (opflag == false) { //只对操作数为num1时有效calc("lg");
txt = subZeroAndDot(num_txt);
result.setText(txt);
}
}
});
bt_lg.setBounds(279, 213, 50, 50);
frame.getContentPane().add(bt_lg);
bt_ln = new JButton("ln");
bt_ln.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (opflag == false) { //只对操作数为num1时有效calc("ln");
txt = subZeroAndDot(num_txt);
result.setText(txt);
}
}
});
bt_ln.setBounds(279, 273, 50, 50);
frame.getContentPane().add(bt_ln);
/**
* 功能键 AC:清空和 Del回删两个按键的初始化。
*
* */
bt_ac = new JButton("AC");
bt_ac.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
result.setText(null); //全部运算标志和文本框置为初始状态
txt = null;
numflag = opflag = false;
num1 = num2 = 0;
big_num1 = big_num2 = new BigDecimal(Double.toString(0.0));
num_txt = "";
}
});
bt_ac.setBounds(339, 157, 50, 50);
frame.getContentPane().add(bt_ac);
bt_del = new JButton("Del");
bt_del.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if(num_txt != "" && num_txt.length() > 0) {
num_txt = num_txt.substring(0, num_txt.length() - 1); //通过截取字符串的方式回删一个字符
}
if(txt != null && txt.length() > 0) {
txt = result.getText(); //文本框的回删,且不能删除运算符
if (txt.charAt(txt.length()-1) == '+' || txt.charAt(txt.length()-1) == '-' || txt.charAt(txt.length()-1) == '*'
|| txt.charAt(txt.length()-1) == '/' || txt.charAt(txt.length()-1) == '^' ) {
}else{
txt = txt.substring(0, txt.length() - 1);
}
科学计算器程序Java代码
科学计算器程序Java代码
MC:清除独立内存里的数字 MR:读出独立内存数字 MS:将显示数字保存到独立内存,并取代内存中原有数字 M+:将显示数字向独立内存累加 (独立内存是一个临时寄放数字的存储器,方便计算) CE:纠错键(CLEAR ERROR).输入数字有错,按它可以重新输入 C:表示清零,将计算器恢复到开机状态 功能举例: 源程序如下: import java.awt.BorderLayout;
import javax.swing.JRadioButtonMenuItem; import javax.swing.JTextField; public class Calucator extends JFrame { private JTextField tf; private JPanel panel1, panel2, panel3, panel4; private JMenuBar myBar; private JMenu menu1, menu2, menu3; private JMenuItem editItem1, editItem2, help1, help2, help3; private JRadioButtonMenuItem seeItem1, seeItem2;//单选框 private JCheckBoxMenuItem seeItem3;//复选框 private ButtonGroup bgb; private String back; private boolean IfResult = true, flag = false;
JAVA实现计算器课程设计
JAVA实现计算器课程设计 计算机科学系 计应0701班 指导老师:刘其昌 设计人员:陈秀桃 设计日期:2009年11月10日——2009年12月20日 计算器的设计 目录 第一章绪 论 ..................................................................... .. (2)
1.1 开发环 境 ..................................................................... . (2) 1.2 基本功能介 绍 ..................................................................... ......... 2 第二章系统设 计 ..................................................................... (3) 2.1 系统流程 图 ..................................................................... . (3) 2.2 系统功能框 图 ..................................................................... (3) 2.3 需求分 析 ..................................................................... ................ 4 第三章软件设 计 ..................................................................... (5) 3.1 界面设 计 ..................................................................... . (5) 3.2 代码设 计 .....................................................................
java编写的简单的计算器程序
计算器 项目内容:编写一个Applet,模仿windows附件所带计算器的功能,可以帮助用户完成计算功能,具体如下图所示。 项目要求:使用图形的方式借助窗口、菜单、按钮等标准界面元素和鼠标操作,来帮助用户方便地向计算机系统发出命令,启动操作,并将系统运行的结果同样以图形的方式显示给用户,这样更加直观和生动; 1.Applet容器中组件的添加与设置,包括面板以及菜单的使用; 2.容器中组件的布局管理; 3.Java核心包中数组、数学计算类的使用; 4.异常的处理; 5.事件处理模型中的三类对象的使用: 1.Event-事件,用户对界面操作在java语言上的描述,以类的形式出现,例如键盘操作对应的事件类是KeyEvent。 2.Event Source-事件源,事件发生的场所,通常就是各个组件,例如按钮Button。 3.Event handler-事件处理者,接收事件对象并对其进行处理的对象。 6.程序中事件处理的流程:
1.计算流程的细化 参考代码: import .*;
import .*; import .*; import import import public class Calculator implements ActionListener { #############"); dd(panel); panel1 = new JPanel(); panel2 = new JPanel(); (new BorderLayout()); 键入计算的第一个数字。\n"); ("2. 单击“+”执行加、“-”执行减、“*”执行乘或“/”执行除。\n"); ("3. 键入计算的下一个数字。\n"); ("4. 输入所有剩余的运算符和数字。\n"); ("5. 单击“=”。\n"); aboutCal = new JMenuItem(" 关于计算器(A)"); (this);
java简单计算器源代码
简单计算器代码 package calcultorthree; import java.awt.BorderLayout;//导入边界布局管理器类 import java.awt.GridLayout;//导入网格布局管理器类 import java.awt.TextField;//导入文本区域类 import java.awt.event.ActionEvent;//导入事件类 import java.awt.event.ActionListener;//导入事件监听者类 import javax.swing.JButton;//导入按钮类 import javax.swing.JFrame;//导入窗体 import javax.swing.JPanel;//导入面板 /** *本例实现了简单计算器代码,具备加减乘除和正弦功能,旨在抱砖引玉。熟悉java的同学,可以在此基础上实现更复杂的功能。 * @author Fjsh */ public class CalcultorThree { //新建对象,在构造函数中进行初始化 JFrame frame;//新建窗体对象 JButton buttonzero,buttondot,buttonequal;//新建按钮“0”“.”“=” JButton buttonplus,buttonminus,buttonmultiple,buttondevision, buttonsin,buttontozero;//新建按钮“+”“-”“*”“/”“sin”和归零按钮JButton buttonone,buttontwo,buttonthree,buttonfour,buttonfive,buttonsix, buttonseven,buttoneight,buttonnine;//新建数字按钮“0”“1”“2”“3”“4”“5”“6”“7”“8”“9” JPanel panelwest,panelcenter,paneleast;//新建三个面板 TextField tf;//新建文本区域对象 public CalcultorThree(){ //初始化对象 tf=new TextField(30);//构造空文本字段,字符宽度为30 frame =new JFrame("CalculatorThree");//构造窗体对象,名称为“CalculatorThree”
Java科学计算器程序代码
计算器布局显示: 功能举例: ①13+20=33 ②-7*14=-98:先输入7,再单击-/+将其变成负数,然后依次单击×号、14与= ③7!=5040 ④sin30°=0.5:先输入30,然后按下′″按钮转换成角度值,再按下sin即可显示结果 ⑤sqrt(4)=2:利用鼠标点击4后再点击sqrt按键即可显示结果 ⑥2*π=6.2832 …… 源程序如下: import java.awt.BorderLayout; import java.awt.Color; import java.awt.Dimension; import java.awt.Font; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.text.DecimalFormat; import javax.swing.BorderFactory; import javax.swing.ButtonGroup; import javax.swing.JButton; import javax.swing.JCheckBoxMenuItem; import javax.swing.JFrame; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; import javax.swing.JPanel; import javax.swing.JRadioButtonMenuItem; import javax.swing.JTextField;
用JAVA设计一个科学型计算器
题目:设计一个Windows计算器。 摘要 在当今这个网络的时代,我找了好多java的代码材料。修改后程序是一个图形界面的java计算器,其界面主要采用了awt包,程序实现了: (1)实现简单加、减、乘、除的运算。 (2)实现除了加、减、乘、除按钮外其他按钮功能。 (3)给软件添加一个编辑、查看、帮助的主菜单。 (4)在数据输入方面,提高程序代码的健壮性,增强其对非法输入数据的识别能力。 (5)科学型计算器与标准计算器之间的菜单切换。 关键字:java程序编辑器面向对象计算器 目录 第1章概要设计 (8) 1.标准型计算器界面设计 (8) 第2章程序整体设计说明 (10) 2.1程序中所用到的变量 (10) 2.2程序部分源代码及注释 (11) 3章程序运行效果 (22) 3.程序运行主界面 (22) 3.程序中各按钮运行界面 (24) 3.本章小节 (26) 作业结论 (26) 第1章概要设计 1.1标准型计算器界面设计 1.1.1 JAVA文件的建立 (1)建立一个名称为“java”Java工程, package文件包名称为 :scr;计算器主类:Calculator。 (2)界面的设计:
图1.1标准型计算器界面 图 1.2 图1.3 (3)保持代码简洁 复杂代码写后不易理解,在修改和重写上难度比较大,使工作更加复杂,所以编写代码时应保持代码的简洁易懂。 数字按钮字体和颜色设置 功能按钮字体和颜色设置
(4)功能实现 在整个设计中要保持完整性,能够实现计算器中最基本的功能,如加、减、乘、除等。 1.1.2明确任务 用java编写一个简单的计算器,使其能够实现最基本的功能,如简单的加、减、乘、除;平方根,倒数,余数,三角函数,多数连续运算,科学计数法等功能。 第2章程序整体设计说明 2.2 程序部分源代码及注释 (1)复制菜单的功能创建代码如下: (2)粘贴菜单的功能创建代码如下:
科学计算器代码
Calculate.java /*这是一个计算类,用于普通运算中的各种运算,如2,8,10,16进制的符合运算,复合运算其原理用后缀表达式来实现*/ import java.util.*; import https://www.360docs.net/doc/d97407949.html,ng.Math; class Calculate {//两个内部类来实现数据的存储,如同数据结构中的栈 class operator { char data[]; int top; operator() { data = new char [50]; top = -1; } }; class operator1 { double data[]; int top; operator1() { data = new double [20]; top = -1; } }; public static double jiecheng(double number)//阶乘运算 { int number1 = (int)number; double j=1; for(int i=1;i<=number1;i++) j=j*i; return j; } String trans (char exp[],char postexp[])//后缀表达式的翻译函数 { int i=0,j=0;boolean m=true;//m用来监视表达式是不有非法的运算符连着输入 operator op = new operator(); while(exp[j]!='\0') { switch (exp[j]) { case '(': op.top++; op.data[op.top]=exp[j];
java编写简单计算器源代码
import javax.swing.*; import java.awt.event.*; import java.awt.*; import https://www.360docs.net/doc/d97407949.html,ng.Math; class ring extends JFrame implements ActionListener { //定义成员变量: //JFrame frame;//定义一个窗口类; JTextField text;//定义一个文本框类; JLabel label;//定义一个标签类; JPanel p1,p2,p3,p4,p5,p6;//定义面板类; String s1,s,s2;//定义三个字符串变量; int count=0; JButton a1,a2,a3,a4,a5,a6,b1,b2,b3,b4,b5,b6,c1,c2,c3,c4,c5,c6,d1,d2,d3,d4 ,d5,d6; //ring的构造函数; ring() { this.setTitle("计算器"); // super("计算器"); JMenuBar menubar1=new JMenuBar();//新建菜单条; this.setJMenuBar(menubar1); JMenu menu1=new JMenu("编辑(E)"); JMenu menu2=new JMenu("查看(V)"); JMenu menu3=new JMenu("帮助(H)"); menubar1.add(menu1); menubar1.add(menu2); menubar1.add(menu3); JMenuItem item1=new JMenuItem("复制(c) ctrl+c"); JMenuItem item2=new JMenuItem("粘贴(p) ctrl+v"); JMenuItem item3=new JMenuItem("标准型(T)"); JMenuItem item4=new JMenuItem("科学型(s)"); JMenuItem item5=new JMenuItem("数字分组(I)"); JMenuItem item6=new JMenuItem("帮助主题(H)"); JMenuItem item7=new JMenuItem("关于计算机(A)"); menu1.add(item1); menu1.add(item2); menu2.add(item3); menu2.add(item4); menu2.add(item5); menu3.add(item6);
计算器设计的java课程设计报告
计算器设计的java 课程设计报告
华东交通大学课程设计课程设计题目:计算器设计 课程: Java程序设计 题目:计算器设计 年级:级 专业:信息一班 学号: 姓名: 组员: 指导教师:
课程设计(论文)任务书 基础学院信息与计算科学专业—1班 一、课程设计(论文)题目计算器的设计 二、课程设计(论文)工作自年 6 月23日起至年6月27日止。 三、课程设计(论文) 地点: 计算机中心 四、课程设计(论文)内容要求: 1.本课程设计的目的 (1)使学生掌握系统各功能模块的基本工作原理; (2)掌握Java的基本编程原理和基本的编程方法; (3)使学生学会系统调试; (4)培养学生分析、解决问题的能力; (5)提高学生的软件文档写作能力和团队合作精神。 2.课程设计的任务及要求 1)基本要求: (1)分析系统各功能模块的工作原理; (2)提出系统的设计方案; (3)对所进行编程、调试、修改。 2)创新要求: 在基本要求达到后,可进行创新设计,如:用虚函数,文件流,重载流插入运算符等。
3)课程设计论文编写要求 (1)要按照书稿的规格打印誊写设计论文; (2)论文包括目录、摘要、正文、总结等; (3)毕业论文装订按学校的统一要求完成。 4)答辩与评分标准: (1)达到课程设计的目的与要求,程序的可读性较好,并调试正确,60分; (2)能正确回答老师所提问题,可增加10分; (3)课程设计报告书写规范整齐,可增加10分; (4)心得体会认真总结,可增加10分; (5)程序有创新性,可增加10分; 成绩评定实行优秀、良好、中等、及格和不及格五个等级。不及格者需重做。 5)参考文献: (1)丁振凡.《J ava语言程序设计》清华大学出版社 (2)丁振凡.《J ava语言程序设计实验指导与习题解析》清华大学出版社 (3)http:/ /https://www.360docs.net/doc/d97407949.html, 6)课程设计进度安排 内容天数地点
基于matlab的计算器编程附代码
1.需求分析 本次的实验要求是设计一个计算器,主要功能如下: (1)实现基本数学运算(加减乘除等),而且要能进行混合运算 (2)实现部分函数功能,如求平方根、求倒数等 (3)能实现小数运算 界面与标准计算器界面类似 根据要求以及以前的学习情况,决定使用matlab进行编程。Matlab强大的计算功能以及便捷的GUI设计,可以较为简便的实现所要求的功能。按照要求,数据输入和输出支持小数点,支持四则混合运算,决定使用如下几个数据进行分析:(1+3)*5 Sqrt(4) 1/2 Sin4 用以检验是否可以进行加减乘除四则运算、平方根、倒数、正弦的运算。 2.程序设计 M atlab的程序设计较为简便,用GUI设计出一个计算器的模型,然后系统会自动生成一个框架,在框架中,写入每一个按键对应的程序就可以实现功能。 3.调式分析 编程的过程中遇到的问题不是很多,基本就是找要实现各个功能的子程序,通过上网和去图书馆,加上自己的编写,终于实现了实验要求的功能。但是有一点很重要,matlab不支持中文,所以从路径到文件名必须是全英文的,不然就无法识别。此外,给每个按键命名也是很重要的,不然在生成的程序框架里面,就无法识别各个按键的作用,编写程序的时候也就无法做到一一对应。 4.使用说明 程序的使用比较简单,由于是可视化界面,直接打开matlab,然后建立一个GUI 工程,再打开生成的fig文件,就是一个计算器的界面,直接按照市面上卖的计算器的
方法,按键使用即可。 5.测试结果 计算结果为20 4sqrt=2 Sin4结果为 1/2=0.5 经过计算,这些结果均与实际结果相吻合,计算器的功能实现的较为完好。 6.心得体会 本次试验由于不限制语言,于是计算功能强大,操作简便的matlab变成了首选,matlab的GUI设计,操作是较为简单的,首先建立一个GUI工程,然后用可视化界面,
JAVA编写的计算器源代码
package jsq; import java.awt.Color; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.WindowEvent; import java.awt.event.WindowListener; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JTextField; import javax.swing.UIManager; public class Test implements ActionListener { /** * */ JFrame f = new JFrame(); JTextField tf = new JTextField("0."); JMenuBar bar=new JMenuBar(); JMenu menuEdit=new JMenu("编辑(E)"); JMenu menuView=new JMenu("查看(V)"); JMenu menuHelp=new JMenu("帮助(H)"); JMenuItem menuEditCopy=new JMenuItem("复制(C)"); JMenuItem menuEditPaste=new JMenuItem("粘贴(V)"); JMenuItem menuHelpAbout = new JMenuItem("关于计算器(A)"); JPanel panel0 = new JPanel(); JPanel panel2 = new JPanel(); JPanel panel = new JPanel(); JPanel panel3 = new JPanel(); JPanel panel4 = new JPanel(); JPanel panel5 = new JPanel();
java简单计算器源代码
package calcultorthree; /** *本例实现了简单计算器代码,具备加减乘除和正弦功能,旨在抱砖引玉。熟悉java的同学,可以在此基础上实现更复杂的功能。 * @author Fjsh */ public class CalcultorThree { “=” JButton buttonplus,buttonminus,buttonmultiple,buttondevision, buttonsin,buttontozero;“=”,注册事件监听器,设置1行3列的布局,添加到到西边的面板buttonzero=new JButton("0"); buttondot=new JButton("."); buttonequal=new JButton("="); (h); (h); (h); (new GridLayout(3,1)); (buttonzero); (buttondot); (buttonequal); ; }
if()==buttontozero){//归零操作 (""); } if()==buttonzero){//按键0操作 ()+"0"); flag1=());//将文本区域转换成Double类型,赋给flag1 } } else if()==buttontwo){//按键2操作 ()+"2"); flag1=()); } else if()==buttonthree){//按键3操作 ()+"3"); flag1=()); } else if()==buttonfour){//按键4操作 ()+"4"); flag1=()); } else if()==buttonfive){//按键5操作
Java带计算过程的计算器课程设计报告
保存计算过程的计算器 Java程序设计课程设计报告保存计算过程的计算器 目录 1 概述.............................................. 错误!未定义书签。 1.1 课程设计目的............................... 错误!未定义书签。 1.2 课程设计内容............................... 错误!未定义书签。 2 系统需求分析.......................................... 错误!未定义书签。 2.1 系统目标................................... 错误!未定义书签。 2.2 主体功能................................... 错误!未定义书签。 2.3 开发环境................................... 错误!未定义书签。 3 系统概要设计.......................................... 错误!未定义书签。 3.1 系统的功能模块划分......................... 错误!未定义书签。 3.2 系统流程图................................. 错误!未定义书签。4系统详细设计........................................... 错误!未定义书签。 5 测试.................................................. 错误!未定义书签。 5.1 测试方案................................... 错误!未定义书签。 5.2 测试结果................................... 错误!未定义书签。 6 小结.................................................. 错误!未定义书签。参考文献................................................ 错误!未定义书签。附录................................................ 错误!未定义书签。 附录1 源程序清单...................................... 错误!未定义书签。
java计算器源代码(仿win7)
java计算器源代码(仿win7) import java.awt.*; import javax.swing.*; import java.awt.event.*; class Cal extends JFrame implements ActionListener,MouseListener{ JMenuBar menubar; JMenu menu_check,menu_edit,menu_help; JMenuItem menuitem_science,menuitem_check,menuitem_exit,menuitem_copy, menuitem_paste,menuitem1_copy,menuitem1_paste,menuitem_chelp,menuitem_about; JCheckBoxMenuItem menuitem_standard; JTextField ta1; int x,result2; double op1,op2,opall; private boolean end=false,flag=false,add=false,sub=false,cheng=false,chu=false,flagop2=false; JButton b_mc,b_mr,b_ms,b_mjia,b_mjian,b_tui,b_ce,b_c,b_jj, b_dui,b_7,b_8,b_9,b_chu,b_baifenhao,b_4,b_5,b_6,b_cheng, b_daoshu,b_1,b_2,b_3,b_jian,b_0,b_dian,b_jia,b_dengyu; JPanel p_all,p_button1,p_button2,p_txt,p1,p2,p3,p4,p5; private String str,resultstr;
科学计算器源代码讲课教案
科学计算器源代码
package two; import java.awt.*; import javax.swing.*; import java.awt.event.*; import java.io.*; import java.util.*; public class calculator implements ActionListener { int count = 0; private static int a; JFrame frame = new JFrame("计算器"); JTextArea area = new JTextArea(); JTextField fieldshow = new JTextField("0"); JTextField fieldcalculator = new JTextField(); JPanel leftpanel = new JPanel(); JPanel rightpanel = new JPanel(); JPanel buttonpanel = new JPanel(); JPanel motionpanel = new JPanel(); JButton button1 = new JButton("1"); JButton button2 = new JButton("2"); JButton button3 = new JButton("3"); JButton button4 = new JButton("+"); JButton button5 = new JButton("c"); JButton button6 = new JButton("4"); JButton button7 = new JButton("5"); JButton button8 = new JButton("6"); JButton button9 = new JButton("-"); JButton button10 = new JButton("退格"); JButton button11 = new JButton("7"); JButton button12 = new JButton("8"); JButton button13 = new JButton("9"); JButton button14 = new JButton("*"); JButton button15 = new JButton("sin"); JButton button16 = new JButton("0"); JButton button17 = new JButton("+/-"); JButton button18 = new JButton("."); JButton button19 = new JButton("/"); JButton button20 = new JButton("="); JButton button21 = new JButton("保存");
java课程设计计算器3科学计算器
import javax.swing.*;// 把 javax包里面的swing包里面的所有东西引进来 import java.awt.*;// 导入awt包里的所有java类 import java.awt.event.*;//导入包event import java.text.DecimalFormat;// 处理文本、日期、数字和消息的类和接口 import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; import java.awt.BasicStroke; import java.awt.BorderLayout; import java.awt.Color; import java.awt.Dimension; import java.awt.Font; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.GridLayout; import java.awt.Image; import java.awt.Toolkit; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.geom.Ellipse2D; import java.awt.geom.Line2D; import java.awt.geom.Point2D; public class biaozhunjisuanqi extends JFrame implements ActionListener {// public代表该类公有 //class声明一个类 // biaozhunjisuanqi为类名 // extends 是继承类 //implements代表实现接口 //窗体名称biaozhunjisuanqi继承JFrame类和ActionListener接口,并实现public void actionPerformed(ActionEvent e){}方法 private static final long serialVersionUID = 1L;// serialVersionUID相当于java类的身份证, 默认为1L, serialVersionUID作用是序列化时保持版本的兼容性,即在版本升级时反序列化仍保持对象的唯一性 private JPanel jContentPane = null; // 创建面板对象, null代表为这些变量赋初值为空,即不分配内存空间,变量不指向任何地址。private是访问控制符,代表这些变量的访问级别为私有,私有级别只能在当前类中进行访问, 这些(JPanel 、JTextArea 、JPanel、 JButton )是java中AWT(包)中的类,用能进行桌面级应用程序的开发,就像平时用的word,上面有各种文本框,菜单栏,工具栏按钮等等,这些都是对象 private JPanel jPanel= null; //JPanel 作为一个容器,可以包容一些组件,然后将这个 JPanel
java简单计算器源代码
j a v a简单计算器源代码集团企业公司编码:(LL3698-KKI1269-TM2483-LUI12689-ITT289-
简单计算器代码packagecalcultorthree; /** *本例实现了简单计算器代码,具备加减乘除和正弦功能,旨在抱砖引玉。熟悉java的同学,可以在此基础上实现更复杂的功能。 *@authorFjsh */ publicclassCalcultorThree{ //新建对象,在构造函数中进行初始化 JFrameframe;//新建窗体对象 JButtonbuttonzero,buttondot,buttonequal;//新建按钮“0”“.”“=”JButtonbuttonplus,buttonminus,buttonmultiple,buttondevision, buttonsin,buttontozero;//新建按钮“+”“-”“*”“/”“sin”和归零按钮JButtonbuttonone,buttontwo,buttonthree,buttonfour,buttonfive,buttonsix, buttonseven,buttoneight,buttonnine;//新建数字按钮 “0”“1”“2”“3”“4”“5”“6”“7”“8”“9” JPanelpanelwest,panelcenter,paneleast;//新建三个面板 TextFieldtf;//新建文本区域对象 publicCalcultorThree(){ //初始化对象 tf=newTextField(30);//构造空文本字段,字符宽度为30 frame=newJFrame("CalculatorThree");//构造窗体对象,名称为“CalculatorThree”
科学计算器代码
using System; using System.Collections.Generic; using https://www.360docs.net/doc/d97407949.html,ponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace科学计算器 { public partial class Form1 : Form { protected double iNum1,into; protected char cOperator; protected bool bNumBegins; protected bool bDot; protected double iMem; public Form1() { InitializeComponent(); InitMembers(); } private void InitMembers() { iNum1 = 0.0; cOperator = '='; bNumBegins = true; bDot = false; } private void Numbers_Click(double i) { if (txtOutput.Text == "Error") { txtOutput.Text = "0"; } try { if (bNumBegins) { txtOutput.Text = i.ToString(); bNumBegins = false; } else { txtOutput.Text += i.ToString(); } double iCurrent = double.Parse(txtOutput.Text); } catch { txtOutput.Text = "Error"; InitMembers(); return; }
JAVA编写的计算器源代码
import class Test implements ActionListener { /** * */ JFrame f = new JFrame(); JTextField tf = new JTextField("0."); JMenuBar bar=new JMenuBar(); JMenu menuEdit=new JMenu("编辑(E)"); JMenu menuView=new JMenu("查看(V)"); JMenu menuHelp=new JMenu("帮助(H)"); JMenuItem menuEditCopy=new JMenuItem("复制(C)"); JMenuItem menuEditPaste=new JMenuItem("粘贴(V)"); JMenuItem menuHelpAbout = new JMenuItem("关于计算器(A)"); JPanel panel0 = new JPanel(); JPanel panel2 = new JPanel(); JPanel panel = new JPanel(); JPanel panel3 = new JPanel(); JPanel panel4 = new JPanel(); JPanel panel5 = new JPanel(); JButton btBk = new JButton(" Backspace"); JButton btCe = new JButton("Ce"); JButton btCl = new JButton("C"); JButton bt7 = new JButton("7"); JButton bt8 = new JButton("8"); JButton bt9 = new JButton("9"); JButton btDiv = new JButton("/"); JButton btSqrt = new JButton("sqrt"); JButton bt4 = new JButton("4"); JButton bt5 = new JButton("5"); JButton bt6 = new JButton("6"); JButton btMult = new JButton("*"); JButton btMol = new JButton(" % "); JButton bt1 = new JButton("1"); JButton bt2 = new JButton("2"); JButton bt3 = new JButton("3"); JButton btMinu = new JButton("-"); JButton btCoun = new JButton(" 1/x");
java课程设计 计算器实际与实现
《面向对象程序设计》 课程设计报告 题目: 计算器设计与实现 专业: 班级: 姓名: 指导教师: 成绩: xx 201x 年 x 月xx 日 xxxxxx
目录 1 设计内容及要求 (1) 1.1设计内容 (1) 1.2设计任务及具体要求 (1) 2 概要设计 (1) 2.1 功能需求 (1) 2.2 系统的开发运行环境 (2) 3 设计过程 (2) 3.2系统功能模块 (3) 4 设计结果与分析 (4) 4.1功能模块的划分 (4) 4.2功能模块的实现 (4) 小结 (10) 5 参考文献 (11)
1 设计内容及要求 1.1设计内容 该程序是一个图形界面的简单Java计算器,具有良好的界面,使用人员能快捷简单的进行操作。即时准确地获得需要的计算结果,充分降低了数字计算的难度和节约了时间,对人们的生活有一定的帮助。可以进行简单的四则运算(加、减、乘、除,等) 1.2设计任务及具体要求 计算器的设计与实现,使学生巩固和加深以Java 语言为基础的面向对象编程技术理论知识的理解,提高实际动手编程能力的培养,掌握以Java为核心的应用软件开发方案,达到能独立阅读、编制和调试一定规模的Java程序的水平。在日常生活中经常需要用到计算器,比如科学计算、数字计算、会计业务甚至是日常生活中的一些运算,当运算比较复杂时没有计算器就会显得很麻烦。为了解决日常生活中的困难,特意设计了这个计算器系统。 2 概要设计 2.1 功能需求 在日常生活中人们总是难以避免的要进行一些运算,当运算比较复杂时没有计算器就会显得很麻烦。为了解决日常生活中的困难,特意设计了这个计算器系统。在该系统中不仅可以进行整数的加、减、乘、除等简单运算,也可以进行浮点数的加、减、乘、除等运算。除此之外还可以进行三角函数、指数、对数、平方等运算。人们应用它可以解决日常生活中的一些运算问题,比如做买卖时进行交易的过程中就可以利用该计算器进行数量、价格以及金额的统计计算。学生也可以利用该计算器进行数学运算,解决简单的三角函数运算。