java设计一个简单的计算器类
需求分析 设计一个简单的计算器类(类型),要求:
(1) 从键盘读入算式。
(2) 可以进行加、减、乘、除运算。
(3) 运算要有优先级。
(4) 用户可以按任何的运算符出现顺序进行输入。
(5) 不限定用户输入的计算式的长度。
(6) 有排错功能,当用户输入错误的算式时提示用户。
输入形式: 按下计算器面板中的控件,在textfield中显示。
输出形式: 输出运算的结果,如有错误,报告错误。
3.2 概要设计
本题的主要思路:首先创建一个面板,用于存放计算器上的按钮,然后对这些按钮添加监听器,监听按钮按下时所要发生的动作。并在textfield上显示。
3.3 详细设计与编码
见上传源程序
3.4 调试分析
本题中,由于时间匆忙,没有实现计算器运算符的优先级,因为这需要用到栈的基本思想。其实设计优先级也比较简单,对栈进行运算符的弹入和弹出就行了。
3.5 用户使用与说明
用户根据需要点击面板上的按钮,实现计算器的基本操作。
3.6 测试数据
输入4*5+3-7 改变了要求(3+4*5-7);
输入1/0:
3.7 设计心得
通过这个实验,让我对Java的Swing组件有了一定的认识。比如如何在面板上添加按钮组件、如何为每个组件添加监听器。如何在textfield中显示等等。
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
class Calculator {
public static void main(String[] args){
System.out.print("/*************************************************\n\n"+
"File name: 软件设计课程设计提高题23(提高题23.java)\n\n"+
"Author: 计06-1 郭献铮 Date: 08.12.13\n\n"+
"Description: 设计一个简单的计算器类(类型);\n\n"+
"Function List: // 主要函数列表,每条记录应包括函数名及功能简要说明\n\n"+
"1.main()函数 完成各种提示与主操作输入输出\n\n"+
"这个计算器无法解决运算符的优先级,因为我还没有想到比较好的办法来解决。\n\n"+
"*****************************************************/\n\n");
CalculatorFrame frame=new CalculatorFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
class CalculatorFrame extends JFrame{
CalculatorFrame(){
setTitle("计算器 O(∩_∩)O 郭献铮制作");
Dimension screenSize=Toolkit.getDefaultToolkit().getScreenSize();
setSize(screenSize.width/4,screenSize.height/4);
setLocation(screenSize.width/8*3,screenSize.height/8*3);
CalculatorPanel panel=new CalculatorPanel();
add(panel);
}原文请找腾讯752018766辣,文-论'文.网http://www.751com.cn/
}
class CalculatorPanel extends JPanel{
CalculatorPanel(){
setLayout(new BorderLayout());
result=0; //设置初始变量的值
lastCommand="=";
start=true;
panel=new JPanel();1829