Java简单计算器(程序设计报告)

哈尔滨哈商业大学

JAVA课 程 设 计

       课程名称:Java程序设计

课题名称:简单计算器

姓   名: 宋双龙 

学   号: 200850940281

班    级:08级软件工程教育

20##年10月20日


一、实验目的:

使用Eclipse软件制作简单计算器,实现加减乘除等基本功能。

二、实验源码:

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

publicclass Calculator {

    publicstaticvoid main(String[] args) {

        EventQueue.invokeLater(new Runnable()

        {

            publicvoid run()

            {

                CalculatorFrame frame = new CalculatorFrame();

                frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

                frame.setVisible(true);

            }

        });

    }

}

classCalculatorFrameextends JFrame

{

    public CalculatorFrame()

    {

        setTitle("Calculator");

        CalculatorPanal panel = new CalculatorPanal();

        add(panel);

        pack();

    }

}

classCalculatorPanalextendsJPanel

{

    public CalculatorPanal()

    {

        setLayout(new BorderLayout());

        result =0;

        lastCommand = "=";

        start = true;

       

        display = new JButton("0");

        display.setEnabled(false);

        add(display,BorderLayout.NORTH);

        ActionListener insert= new InsertAction();

        ActionListener command=new CommantAction();

        panel = newJPanel();

        panel.setLayout(new GridLayout(4,4));

        addButton("7",insert);

        addButton("8",insert);

        addButton("9",insert);

        addButton("/",command);

        addButton("4",insert);

        addButton("5",insert);

        addButton("6",insert);

        addButton("*",command);

        addButton("1",insert);

        addButton("2",insert);

        addButton("3",insert);

        addButton("-",command);

        addButton("0",insert);

        addButton(".",insert);

        addButton("=",command);

        addButton("+",command);

        add(panel,BorderLayout.CENTER);

    }

privatevoid addButton(String label,ActionListener listener)

{

    JButton button = new JButton(label);

    button.addActionListener(listener);

    panel.add(button);

}

privateclass InsertAction implements ActionListener

{

    publicvoid actionPerformed(ActionEvent event)

    {

        String input = event.getActionCommand();

        if(start)

        {

            display.setText("");

            start= false;

        }

        display.setText(display.getText()+input);

    }

}

privateclass CommantAction implements ActionListener

{

    publicvoid actionPerformed(ActionEvent event)

    {

        String command = event.getActionCommand();

        if(start)

        {

            if(command.equals("-"))

            {

            display.setText(command);

            start= false;

            }

            else lastCommand = command;

        }

        else

        {

            calculate(Double.parseDouble(display.getText()));

            lastCommand =command;

            start =true;

        }

    }

}

publicvoid calculate(double x)

{

    if(lastCommand.equals("+")) result +=x;

    elseif(lastCommand.equals("-")) result -=x;

    elseif(lastCommand.equals("*")) result *=x;

    elseif(lastCommand.equals("/")) result /=x;

    elseif(lastCommand.equals("=")) result =x;

    display.setText(""+result);

}

private JButton display;

private JPanel panel;

privatedouble result;

private String lastCommand;

privateboolean start;

}

三、实验结果:

 

第二篇:Java程序设计“简单计算器”

Java程序设计“简单计算器”

一、程序代码

import java.awt.*;

import java.awt.event.*; import javax.swing.*;

public class Calculator{

private static JTextField tf; private static String x[]=new String[2],op; private static double result=0; private static String[] s={"0","1","2","3","4","5","6","7","8","9",".","+","-","*","/","="}; private static String[] sb={"backspace","clear"}; private static boolean lock; public static void clearXOp(){ x[0]=new String(); } public static void clear(){ clearXOp(); result=0; tf.setText("0"); } public static void delete(int i){ int k=x[i].length()-1; StringBuffer sbr=new StringBuffer(x[i]); } sbr.deleteCharAt(k); x[i]=new String(sbr); if(x[i].equals(s[10]))x[i]=new String(); x[1]=new String(); op=new String(); lock=true; public static void cancel(){ int i=1; if(op.equals(""))i=0; if(x[i].equals("")){ tf.setText("0"); return; } delete(i); if(!x[i].equals(""))

} } tf.setText(x[i]); else tf.setText("0"); public static void comput(){ double a,b; if(x[0].equals("")) a=result; else a=Double.parseDouble(x[0]); b=Double.parseDouble(x[1]); if(op.equals(s[11])) result=a+b; else if(op.equals(s[12])) result=a-b; else if(op.equals(s[13])) result=a*b; else if(op.equals(s[14])) else result=a; x[0]=new String(""+result);x[1]=new String(); result=a/b; public static void putResult(){ comput(); } public static void getX(int i,int j){ if(x[j].lastIndexOf(s[10])!=-1&&s[i].equals(s[10]))return; if(x[j].equals(s[0])&&!s[i].equals(s[10])){ } else if(x[j].equals("")&&s[i].equals(s[10])) x[j]=s[0]+s[10]; else x[j]=new String(s[i]); int k=x[0].length(); if(x[0].substring(k-2,k).equals(".0")){ StringBuffer str=new StringBuffer(x[0]); str.delete(k-2,k); x[0]=new String(str); } tf.setText(x[0]);

x[j]+=s[i]; tf.setText(x[j]); } public static void main(String[] args){ JFrame f=new JFrame("计算器"); Container c=f.getContentPane(); c.setLayout(new BorderLayout()); Font ft = new Font("隶书",Font.PLAIN,20); clearXOp(); JPanel p1,p2; p1=new JPanel(new GridLayout(2,0)); tf=new JTextField(); tf.setFont(ft); tf.setHorizontalAlignment(JTextField.RIGHT); tf.setText("0"); tf.setEditable(false); p1.add(tf); JButton bc[]=new JButton[sb.length]; JPanel p11=new JPanel(new FlowLayout()); for (int i=0;i<sb.length;i++){ bc[i]=new JButton(sb[i]); bc[i].setActionCommand(sb[i]); } bc[i].addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ String str=e.getActionCommand(); if(lock&&str.equals(sb[0])&&!op.equals(tf.getText())) cancel(); else if(str.equals(sb[1])) clear(); } }); p11.add(bc[i]); p1.add(p11);

JButton[] b=new JButton[s.length]; for(int i=0;i<s.length;i++){

b[i]=new JButton(s[i]); b[i].setActionCommand(s[i]); b[i].addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){

String str=e.getActionCommand(); for(int i=0;i<11;i++){ if(lock){ if(str.equals(s[i])){ if(op.equals(""))getX(i,0); } } } else getX(i,1); for(int i=11;i<s.length-1;i++){ if(lock){ if(str.equals(s[i])){ if(op.equals("")){ op=s[i]; } tf.setText(op); else if(!x[1].equals("")){ if(op.equals(s[14])&&Double.parseDouble(x[1])==0) }); b[i].setFont(ft); } } } lock=false; else{ comput(); op=s[i]; } tf.setText(op); } } if(lock&&str.equals(s[15])){ } if(x[1].equals(""))x[1]="0"; if(op.equals(s[14])&&Double.parseDouble(x[1])==0) lock=false; else{ } putResult(); clearXOp(); } p2=new JPanel(new GridLayout(4,4,6,6)); for(int i=0;i<s.length;i++){

p2.add(b[i]); } c.add(p1,BorderLayout.NORTH); c.add(p2,BorderLayout.CENTER); f.setBounds(200,200,300,330); f.setVisible(true); f.setResizable(false); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); }

}

二、程序截图

Java程序设计简单计算器

相关推荐