Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

JAVA PROGRAM THAT NEEDS WRITING Write a program to create a non-scientific calcu

ID: 3843220 • Letter: J

Question

JAVA PROGRAM THAT NEEDS WRITING

Write a program to create a non-scientific calculator (Division/Multiplication, Addition/Subtraction ONLY). The user enters numbers using digit buttons on the screen or keys on the keyboard. Also, watch the entering of multiple decimal points. A typical calculator accepts the first decimal point and ignores the rest. For example, 1.4.3 is read as 1.43. Try dividing by zero on a calculator and see what happens as well. “CE” clears only the last entry since an operator was pushed. “C” clears out the entire memory. Use BorderFactory and setBackGround to make the edges and color more interesting.

Explanation / Answer

Solution:-

The below given Java code implements a simple non-scientific calculator with GUI using swing.

Code -

---------------------------------------------------------------------------------------------------

---------------------------------------------------------------------------------------------------

import javax.swing.*;

import java.awt.event.*;

class Calc implements ActionListener

{

    JFrame f;

    JTextField t;

    JButton b1,b2,b3,b4,b5,b6,b7,b8,b9,b0,bdiv,bmul,bsub,badd,bdec,beq,bdel,bclr;

    static double a=0,b=0,result=0;

    static int operator=0;

    Calc()

    {

        f=new JFrame("Calculator");

        t=new JTextField();

        b1=new JButton("1");

        b2=new JButton("2");

        b3=new JButton("3");

        b4=new JButton("4");

        b5=new JButton("5");

        b6=new JButton("6");

        b7=new JButton("7");

        b8=new JButton("8");

        b9=new JButton("9");

        b0=new JButton("0");

        bdiv=new JButton("/");

        bmul=new JButton("*");

        bsub=new JButton("-");

        badd=new JButton("+");

        bdec=new JButton(".");

        beq=new JButton("=");

        bdel=new JButton("CE");

        bclr=new JButton("C");

        

        t.setBounds(30,40,280,30);

        b7.setBounds(40,100,50,40);

        b8.setBounds(110,100,50,40);

        b9.setBounds(180,100,50,40);

        bdiv.setBounds(250,100,50,40);

        b4.setBounds(40,170,50,40);

        b5.setBounds(110,170,50,40);

        b6.setBounds(180,170,50,40);

        bmul.setBounds(250,170,50,40);

        b1.setBounds(40,240,50,40);

        b2.setBounds(110,240,50,40);

        b3.setBounds(180,240,50,40);

        bsub.setBounds(250,240,50,40);

        bdec.setBounds(40,310,50,40);

        b0.setBounds(110,310,50,40);

        beq.setBounds(180,310,50,40);

        badd.setBounds(250,310,50,40);

        bdel.setBounds(60,380,100,40);

        bclr.setBounds(180,380,100,40);

        

        f.add(t);

        f.add(b7);

        f.add(b8);

        f.add(b9);

        f.add(bdiv);

        f.add(b4);

        f.add(b5);

        f.add(b6);

        f.add(bmul);

        f.add(b1);

        f.add(b2);

        f.add(b3);

        f.add(bsub);

        f.add(bdec);

        f.add(b0);

        f.add(beq);

        f.add(badd);

        f.add(bdel);

        f.add(bclr);

        

        f.setLayout(null);

        f.setVisible(true);

        f.setSize(350,500);

        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        f.setResizable(false);

        

        b1.addActionListener(this);

        b2.addActionListener(this);

        b3.addActionListener(this);

        b4.addActionListener(this);

        b5.addActionListener(this);

        b6.addActionListener(this);

        b7.addActionListener(this);

        b8.addActionListener(this);

        b9.addActionListener(this);

        b0.addActionListener(this);

        badd.addActionListener(this);

        bdiv.addActionListener(this);

        bmul.addActionListener(this);

        bsub.addActionListener(this);

        bdec.addActionListener(this);

        beq.addActionListener(this);

        bdel.addActionListener(this);

        bclr.addActionListener(this);

    }

    public void actionPerformed(ActionEvent e)

    {

        if(e.getSource()==b1)

            t.setText(t.getText().concat("1"));

        if(e.getSource()==b2)

            t.setText(t.getText().concat("2"));

        

        if(e.getSource()==b3)

            t.setText(t.getText().concat("3"));

        

        if(e.getSource()==b4)

            t.setText(t.getText().concat("4"));

        

        if(e.getSource()==b5)

            t.setText(t.getText().concat("5"));

        

        if(e.getSource()==b6)

            t.setText(t.getText().concat("6"));

        

        if(e.getSource()==b7)

            t.setText(t.getText().concat("7"));

        

        if(e.getSource()==b8)

            t.setText(t.getText().concat("8"));

        

        if(e.getSource()==b9)

            t.setText(t.getText().concat("9"));

        

        if(e.getSource()==b0)

            t.setText(t.getText().concat("0"));

        

        if(e.getSource()==bdec)

            t.setText(t.getText().concat("."));

        

        if(e.getSource()==badd)

        {

            a=Double.parseDouble(t.getText());

            operator=1;

            t.setText("");

        }

        

        if(e.getSource()==bsub)

        {

            a=Double.parseDouble(t.getText());

            operator=2;

            t.setText("");

        }

        

        if(e.getSource()==bmul)

        {

            a=Double.parseDouble(t.getText());

            operator=3;

            t.setText("");

        }

        

        if(e.getSource()==bdiv)

        {

            a=Double.parseDouble(t.getText());

            operator=4;

            t.setText("");

        }

        

        if(e.getSource()==beq)

        {

            b=Double.parseDouble(t.getText());

        

            switch(operator)

            {

                case 1: result=a+b;

                    break;

        

                case 2: result=a-b;

                    break;

        

                case 3: result=a*b;

                    break;

        

                case 4: result=a/b;

                    break;

        

                default: result=0;

            }

        

            t.setText(""+result);

        }

        

        if(e.getSource()==bclr)

            t.setText("");

        

        if(e.getSource()==bdel)

        {

            String s=t.getText();

            t.setText("");

            for(int i=0;i<s.length()-1;i++)

            t.setText(t.getText()+s.charAt(i));

        }        

    }

    public static void main(String...s)

    {

        new Calc();

    }

}

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------