The following is for a simple calculator; a scientific calculator is more complicated. I will assume the user will press keys to have a number appear on the display; to (for example) add this with another number, the user presses "+" followed by the second number, followed by "=".
You would use a visual interface, with the number display, the digits, the equal sign, and a few operations (plus, minus, multiply, divide, ...).
As soon as the user types the second number, the first number will disappear from the screen; therefore, you have to save it into some variable.
Every time a key is pressed, you have to decide whether you should add a digit to the number in the display (if it is a digit, or a period), or whether to do a calculation (if it is +, -, *, /). If it is an operation, do the operation (conditionally, depending on the selected operation), and replace the number displayed by the new value.
This is my sample code using JAVA:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import java.text.*;
import javax.swing.border.*;
class Calc extends JFrame implements ActionListener
{
private static final Font BIGGER_FONT = new Font("Tahoma", Font.BOLD, 13);
private JRadioButton decimalb,binaryb,octalb,hexab,enableb, disableb;
private JTextField _displayField, decimalTF, binaryTF, octalTF, hexaTF;
private JLabel decimalL,binaryL,octalL,hexaL;
private JButton exitb, convertb, clearb, backSpace, b9, b8, b7, b6, b5, b4, b3, b2, b1, b0, b11, b12, b13;
private JButton b14, b15, b16, b17, b18, b19, b20, b21, b22, b23, b24, b25;
private JPanel cbPanel, upperButtonPanel;
private ButtonGroup group, group2;
private boolean pluz = false;
private boolean subs = false;
private boolean multiply = false;
private boolean divide = false;
private boolean _startNumber = true;
private boolean dotCheck = false;
private String firstValue, Secondvalue;
private String _previousOp = "=";
private DecimalFormat df = new DecimalFormat("###,###,###.##");
private CalculatorLogic calLogic = new CalculatorLogic();
public static void main(String[] args) {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (Exception unused) {
;
}
Calc window = new Calc();
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
window.setVisible(true);
}
public Calc()
{
super("Calculator With Number System Converter");
_displayField = new JTextField("", 15);
_displayField.setHorizontalAlignment(JTextField.RIGHT);
_displayField.setFont(BIGGER_FONT);
_displayField.setEditable(false);
_displayField.setBackground(Color.WHITE);
upperButtonPanel = new JPanel();
upperButtonPanel.setLayout(new FlowLayout());
upperButtonPanel.setBackground(Color.lightGray);
upperButtonPanel.setPreferredSize(new Dimension(170, 300));
decimalb = new JRadioButton("Decimal", false);
binaryb = new JRadioButton("Binary", false);
octalb = new JRadioButton("Octal", false);
hexab = new JRadioButton("Hexadecimal", false);
decimalb.setFont(BIGGER_FONT);
binaryb.setFont(BIGGER_FONT);
octalb.setFont(BIGGER_FONT);
hexab.setFont(BIGGER_FONT);
decimalb.addActionListener(this);
binaryb.addActionListener(this);
octalb.addActionListener(this);
hexab.addActionListener(this);
group = new ButtonGroup();
group.add(decimalb);
group.add(binaryb);
group.add(octalb);
group.add(hexab);
upperButtonPanel.add(decimalb);
upperButtonPanel.add(binaryb);
upperButtonPanel.add(octalb);
upperButtonPanel.add(hexab);
upperButtonPanel.setVisible(false);
JPanel panel = new JPanel(new GridLayout(10, 1));
panel.setPreferredSize(new Dimension(300, 300));
panel.setBorder(new BevelBorder(BevelBorder.LOWERED));
decimalTF = new JTextField(20);
binaryTF = new JTextField(20);
octalTF = new JTextField(20);
hexaTF = new JTextField(20);
decimalTF.setEditable(false);
binaryTF.setEditable(false);
octalTF.setEditable(false);
hexaTF.setEditable(false);
decimalTF.setBackground(Color.WHITE);
binaryTF.setBackground(Color.WHITE);
octalTF.setBackground(Color.WHITE);
hexaTF.setBackground(Color.WHITE);
decimalTF.setFont(BIGGER_FONT);
binaryTF.setFont(BIGGER_FONT);
octalTF.setFont(BIGGER_FONT);
hexaTF.setFont(BIGGER_FONT);
decimalTF.setVisible(false);
binaryTF.setVisible(false);
octalTF.setVisible(false);
hexaTF.setVisible(false);
decimalL = new JLabel("Decimal Value");
binaryL = new JLabel("Binary Value");
octalL = new JLabel("Octal Value");
hexaL = new JLabel("Hexadecimal Value");
decimalL.setFont(BIGGER_FONT);
binaryL.setFont(BIGGER_FONT);
octalL.setFont(BIGGER_FONT);
hexaL.setFont(BIGGER_FONT);
decimalL.setVisible(false);
binaryL.setVisible(false);
octalL.setVisible(false);
hexaL.setVisible(false);
panel.add(decimalL);
panel.add(decimalTF);
panel.add(binaryL);
panel.add(binaryTF);
panel.add(octalL);
panel.add(octalTF);
panel.add(hexaL);
panel.add(hexaTF);
upperButtonPanel.add(panel);
add(upperButtonPanel, BorderLayout.NORTH);
JPanel buttonPanel = new JPanel();
buttonPanel.setLayout(new GridLayout(5, 2, 5, 5));
buttonPanel.setBackground(Color.lightGray);
buttonPanel.setBorder(new BevelBorder(BevelBorder.LOWERED));
b9 = new JButton("9");
b8 = new JButton("8");
b7 = new JButton("7");
b6 = new JButton("6");
b5 = new JButton("5");
b4 = new JButton("4");
b3 = new JButton("3");
b2 = new JButton("2");
b1 = new JButton("1");
b0 = new JButton("0");
b11 = new JButton(".");
b12 = new JButton("/");
b13 = new JButton("*");
b14 = new JButton("-");
b15 = new JButton("+");
b16 = new JButton("A");
b17 = new JButton("B");
b18 = new JButton("C");
b19 = new JButton("D");
b20 = new JButton("E");
b21 = new JButton("F");
b22 = new JButton("=");
b23 = new JButton("sqrt");
b24 = new JButton("x\u00B2");
b25 = new JButton("x\u00B3");
b1.setFont(BIGGER_FONT);
b2.setFont(BIGGER_FONT);
b3.setFont(BIGGER_FONT);
b4.setFont(BIGGER_FONT);
b5.setFont(BIGGER_FONT);
b6.setFont(BIGGER_FONT);
b7.setFont(BIGGER_FONT);
b8.setFont(BIGGER_FONT);
b9.setFont(BIGGER_FONT);
b0.setFont(BIGGER_FONT);
b11.setFont(BIGGER_FONT);
b12.setFont(BIGGER_FONT);
b13.setFont(BIGGER_FONT);
b14.setFont(BIGGER_FONT);
b15.setFont(BIGGER_FONT);
b16.setFont(BIGGER_FONT);
b17.setFont(BIGGER_FONT);
b18.setFont(BIGGER_FONT);
b19.setFont(BIGGER_FONT);
b20.setFont(BIGGER_FONT);
b21.setFont(BIGGER_FONT);
b22.setFont(BIGGER_FONT);
b23.setFont(BIGGER_FONT);
b24.setFont(BIGGER_FONT);
b25.setFont(BIGGER_FONT);
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);
b11.addActionListener(this);
b12.addActionListener(this);
b13.addActionListener(this);
b14.addActionListener(this);
b15.addActionListener(this);
b16.addActionListener(this);
b17.addActionListener(this);
b18.addActionListener(this);
b19.addActionListener(this);
b20.addActionListener(this);
b21.addActionListener(this);
b22.addActionListener(this);
b23.addActionListener(this);
b24.addActionListener(this);
b25.addActionListener(this);
b16.setEnabled(false);
b17.setEnabled(false);
b18.setEnabled(false);
b19.setEnabled(false);
b20.setEnabled(false);
b21.setEnabled(false);
buttonPanel.add(b7);
buttonPanel.add(b8);
buttonPanel.add(b9);
buttonPanel.add(b12);
buttonPanel.add(b13);
buttonPanel.add(b15);
buttonPanel.add(b4);
buttonPanel.add(b5);
buttonPanel.add(b6);
buttonPanel.add(b15);
buttonPanel.add(b14);
buttonPanel.add(b11);
buttonPanel.add(b1);
buttonPanel.add(b2);
buttonPanel.add(b3);
buttonPanel.add(b0);
buttonPanel.add(b22);
buttonPanel.add(b16);
buttonPanel.add(b17);
buttonPanel.add(b18);
buttonPanel.add(b11);
buttonPanel.add(b23);
buttonPanel.add(b19);
buttonPanel.add(b20);
buttonPanel.add(b21);
buttonPanel.add(b24);
buttonPanel.add(b25);
add(buttonPanel);
group2 = new ButtonGroup();
disableb = new JRadioButton("Disable Converter", true);
enableb = new JRadioButton("Enable Converter", false);
disableb.setFont(BIGGER_FONT);
enableb.setFont(BIGGER_FONT);
disableb.addActionListener(this);
enableb.addActionListener(this);
group2.add(disableb);
group2.add(enableb);
cbPanel = new JPanel(new GridLayout(3, 3));
cbPanel.setBorder(new BevelBorder(BevelBorder.RAISED));
cbPanel.add(disableb);
cbPanel.add(enableb);
convertb = new JButton("Convert");
clearb = new JButton("Clear");
exitb = new JButton("Exit");
backSpace = new JButton("BackSpace");
convertb.addActionListener(this);
clearb.addActionListener(this);
exitb.addActionListener(this);
backSpace.addActionListener(this);
convertb.setFont(BIGGER_FONT);
clearb.setFont(BIGGER_FONT);
exitb.setFont(BIGGER_FONT);
backSpace.setFont(BIGGER_FONT);
cbPanel.add(convertb);
cbPanel.add(clearb);
cbPanel.add(backSpace);
cbPanel.add(exitb);
convertb.setEnabled(false);
JPanel content2 = new JPanel();
content2.setLayout(new BorderLayout(5, 5));
content2.add(_displayField, BorderLayout.NORTH);
content2.add(buttonPanel , BorderLayout.CENTER);
content2.add(cbPanel, BorderLayout.SOUTH);
add(content2, BorderLayout.SOUTH);
this.setSize(340, 300);
this.setResizable(false);
this.setLocationRelativeTo(null);
}
public void actionPerformed(ActionEvent e)
{
try{
if(decimalb.isSelected())
{
b0.setEnabled(true);
b1.setEnabled(true);
b2.setEnabled(true);
b3.setEnabled(true);
b4.setEnabled(true);
b5.setEnabled(true);
b6.setEnabled(true);
b7.setEnabled(true);
b8.setEnabled(true);
b9.setEnabled(true);
b16.setEnabled(false);
b17.setEnabled(false);
b18.setEnabled(false);
b19.setEnabled(false);
b20.setEnabled(false);
b21.setEnabled(false);
}
else if(binaryb.isSelected())
{
b2.setEnabled(false);
b3.setEnabled(false);
b4.setEnabled(false);
b5.setEnabled(false);
b6.setEnabled(false);
b7.setEnabled(false);
b8.setEnabled(false);
b9.setEnabled(false);
b16.setEnabled(false);
b17.setEnabled(false);
b18.setEnabled(false);
b19.setEnabled(false);
b20.setEnabled(false);
b21.setEnabled(false);
}
else if(octalb.isSelected())
{
b0.setEnabled(true);
b1.setEnabled(true);
b2.setEnabled(true);
b3.setEnabled(true);
b4.setEnabled(true);
b5.setEnabled(true);
b6.setEnabled(true);
b7.setEnabled(true);
b16.setEnabled(false);
b17.setEnabled(false);
b18.setEnabled(false);
b19.setEnabled(false);
b20.setEnabled(false);
b21.setEnabled(false);
b8.setEnabled(false);
b9.setEnabled(false);
}
else if(hexab.isSelected())
{
b0.setEnabled(true);
b1.setEnabled(true);
b2.setEnabled(true);
b3.setEnabled(true);
b4.setEnabled(true);
b5.setEnabled(true);
b6.setEnabled(true);
b7.setEnabled(true);
b8.setEnabled(true);
b9.setEnabled(true);
b16.setEnabled(true);
b17.setEnabled(true);
b18.setEnabled(true);
b19.setEnabled(true);
b20.setEnabled(true);
b21.setEnabled(true);
}
if((e.getActionCommand().equals("Convert")) && decimalb.isSelected())
{
String input, bin="",oct="",hex="";
int rem,rem2,rem3,len;
char x;
input = _displayField.getText().trim();
try{
if(input.equals(""))
throw new Exception("Error");
else
len = input.length();
int num = Integer.parseInt(input);
while(num>0)
{
rem = num%2;
num/=2;
bin = rem + bin;
}
binaryTF.setText(bin);
decimalTF.setText(input);
int num2 = Integer.parseInt(input);
while(num2>0)
{
rem2 = num2%8;
oct = rem2 + oct;
num2/=8;
}
octalTF.setText(oct);
int num3 = Integer.parseInt(input);
while(num3>0)
{
rem3 = num3%16;
if(rem3<10)
hex = rem3 + hex;
else if(rem3 0)
{
JOptionPane.showMessageDialog(null,"Can't divide by zero", "Error Message", JOptionPane.ERROR_MESSAGE);
return 0;
}
else
return (a / b);
}
public double stringToDouble(String a)
{
return Double.parseDouble(a);
}
}
'.java' files contain java source code. One can access these files on windows by using 'notepad'.
Source code comes from the programmer...
The Java compiler translates Java source code to Java byte code.
It is created by the Java compiler, based on the source code (the .java file).
If the software is open source then generally they will provide the code in a separate link. I don't think it is possible to reverse-engineer the code of a program.
yes
'.java' files contain java source code. One can access these files on windows by using 'notepad'.
Source code comes from the programmer...
The Java compiler translates Java source code to Java byte code.
research is going on to develop a source code for median filtering using java
The source code is just the set of statements written in (any included) java language by a programer (in this case our source code is a text file with .java extension). And in other hand a bytecode is the resulting code of compile a .java file, It is not machine code, but it can be interpreted and executed by the jvm.
A compiler converts high-level source code into native machine. In the case of Java, source code is compiled to Java byte code suitable for interpretation by the Java virtual machine which produces the machine code.
It is created by the Java compiler, based on the source code (the .java file).
If someone talks about "Java code," then they're are most likely referring to the source code of a Java program.
If the software is open source then generally they will provide the code in a separate link. I don't think it is possible to reverse-engineer the code of a program.
which Website for free java project to be download with source code Free Download Project in asp.net,Java ,C#.Net ,Php on thisWebsite www.enggroom.com
Get the JDK & Bluej from net and the rest will be done by them. Java byte codes are stored as *.class ; where "*" represents the class name, in your hard disk. You can download BlueJ as well as JDK from the related link.