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

北邮JAVA第三次作业科学计算器(附源代码)
北邮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 功能需求 在日常生活中人们总是难以避免的要进行一些运算,当运算比较复杂时没有计算器就会显得很麻烦。为了解决日常生活中的困难,特意设计了这个计算器系统。在该系统中不仅可以进行整数的加、减、乘、除等简单运算,也可以进行浮点数的加、减、乘、除等运算。除此之外还可以进行三角函数、指数、对数、平方等运算。人们应用它可以解决日常生活中的一些运算问题,比如做买卖时进行交易的过程中就可以利用该计算器进行数量、价格以及金额的统计计算。学生也可以利用该计算器进行数学运算,解决简单的三角函数运算。

相关文档
最新文档