Вы находитесь на странице: 1из 16

public class Menudos { public static void main(String args[]) { boolean ban; int op; float x,y,z; String

aux; do { ban=false; do { op=Integer.parseInt(JOptionPane.showInputDialog(null,"Menu\n1.Suma\n2.-Resta\n3.-Multiplicacion\n4.-Division\n5.-Fin\nDame una Opcion")); if((op>=1)&&(op<=5)) ban=true; else System.out.println("Error"); } while(ban==false); switch(op) { case 1: { System.out.println("Suma dos Numeros"); aux=JOptionPane.showInputDialog("Dame el primer numero"); x=Float.parseFloat(aux); aux=JOptionPane.showInputDialog("Dame el segundo numero"); y=Float.parseFloat(aux); z=x+y; System.out.println("Resultado "+z); break; } case 2: { System.out.println("Resta dos Numeros");

aux=JOptionPane.showInputDialog("Dame el primer numero"); x=Float.parseFloat(aux); aux=JOptionPane.showInputDialog("Dame el segundo numero"); y=Float.parseFloat(aux); z=x-y; System.out.println("Resultado "+z); break; } case 3: { System.out.println("Multiplica dos Numeros"); aux=JOptionPane.showInputDialog("Dame el primer numero"); x=Float.parseFloat(aux); aux=JOptionPane.showInputDialog("Dame el segundo numero"); y=Float.parseFloat(aux); z=x*y; System.out.println("Resultado "+z); break;

} case 4: { System.out.println("Divide dos Numeros"); aux=JOptionPane.showInputDialog("Dame el primer numero"); x=Float.parseFloat(aux); aux=JOptionPane.showInputDialog("Dame el segundo numero"); y=Float.parseFloat(aux); z=x/y; System.out.println("Resultado "+z); break; } } }while(op!=5);

} }

OTRA CALCULADORA CON INTERFAZ GRAFICA abstract public class Sistema { protected int numeroA; protected int numeroB; protected int resultado; protected char operacion; protected int base; public Sistema() { this.numeroA = this.numeroB = this.resultado this.operacion }

0; 0; = 0; = ' ';

public void setNumeroA(int n){ this.numeroA = n; } public void setNumeroB(int n){ this.numeroB = n; } public void setResultado(int n){ this.resultado = n; } public void setOperacion(char o){ this.operacion = o; } public int getNumeroA(){ return this.numeroA; } public int getNumeroB(){

return this.numeroB; } public int getResultado(){ return this.resultado; } public char getOperacion(){ return this.operacion; } public void suma(){ this.resultado = this.numeroA } public void resta(){ this.resultado = this.numeroA } public void multiplicacion(){ this.resultado = this.numeroA } public void division(){ this.resultado = this.numeroA }

+ this.numeroB;

- this.numeroB;

* this.numeroB;

/ this.numeroB;

public void establecerNumeroA(String a){ int n = Integer.parseInt(a,base); this.setNumeroA(n); } public void establecerNumeroB(String b){ int n = Integer.parseInt(b,base); this.setNumeroB(n); } public String retornarNumeroA(){ String cad=""; switch(base){ case 2: cad = Integer.toBinaryString(numeroA); break; case 8: cad = Integer.toOctalString(numeroA); break; case 10: cad = String.valueOf(numeroA);

break; case 16: cad = Integer.toHexString(numeroA); break; } return cad; } public String retornarNumeroB(){ String cad=""; switch(base){ case 2: cad = Integer.toBinaryString(numeroB); break; case 8: cad = Integer.toOctalString(numeroB); break; case 10: cad = String.valueOf(numeroB); break; case 16: cad = Integer.toHexString(numeroB); break; } return cad; } public String retornarResultado(){ String cad=""; switch(base){ case 2: cad = Integer.toBinaryString(resultado); break; case 8: cad = Integer.toOctalString(resultado); break; case 10: cad = String.valueOf(resultado); break; case 16: cad = Integer.toHexString(resultado); break; } return cad;

} }

Ahora como queda la clase "Binario" que hereda de "Sistema" public class Binario extends Sistema{ public Binario() { this.base=2; } }

Ahora como queda la clase "Octal" que hereda de "Sistema" public class Octal extends Sistema{ public Octal() { this.base=8; } }

Ahora como queda la clase "Decimal" que hereda de "Sistema" public class Decimal extends Sistema{ public Decimal() { this.base=10; } }

Ahora como queda la clase "Hexadecimal" que hereda de "Sistema" public class Hexadecimal extends Sistema{ public Hexadecimal() { this.base=16; } }

Ahora como queda la clase "Conversion"

public class Conversion { public Integer fromHexadecimal(String cad){ return Integer.parseInt(cad,16); } public Integer fromOctal(String cad){ return Integer.parseInt(cad,8); } public Integer fromBinario(String cad){ return Integer.parseInt(cad,2); } public String toHexadecimal(int i){ return Integer.toHexString(i); } public String toOctal(int i){ return Integer.toOctalString(i); } public String toBinario(int i){ return Integer.toBinaryString(i); } public String combertirSistema(int actual,int nuevo, String cad){ String res = ""; int num=0; if(cad.length()>0){ switch(actual){ case 2: num = fromBinario(cad); break; case 8: num = fromOctal(cad); break; case 10: num = Integer.parseInt(cad,10); break; case 16:

num = fromHexadecimal(cad); break; } switch(nuevo){ case 2: res = toBinario(num); break; case 8: res = toOctal(num); break; case 10: res = Integer.toString(num); break; case 16: res = toHexadecimal(num); break; } } return res; } }

Y ahora como queda la clase "AppCalculadora" que sera la que pone todo junto en una interfaz grfica que representa la calculadora import java.awt.*; import java.awt.event.*; import javax.swing.*; import co.edu.udistrital.prycalculadora.logica.*; public class AppCalculadora implements ActionListener{ private private private private private private int s; Sistema JFrame frame; ButtonGroup btgSistema; JButton[] btnBotones; JRadioButton[] jrbSistemas; JTextField txtResultado; Container cpane; d;

Conversion c; public AppCalculadora() { initComponents(); } private void initComponents(){ s=10; d = new Decimal(); c = new Conversion(); frame = new JFrame("Calculadora de Cuatro Sistemas") ; btgSistema = new ButtonGroup(); btnBotones = new JButton[24]; jrbSistemas = new JRadioButton[4] ; txtResultado = new JTextField(0); int cont=0; btnBotones[cont++]=new btnBotones[cont++]=new btnBotones[cont++]=new btnBotones[cont++]=new btnBotones[cont++]=new btnBotones[cont++]=new btnBotones[cont++]=new btnBotones[cont++]=new btnBotones[cont++]=new btnBotones[cont++]=new btnBotones[cont++]=new btnBotones[cont++]=new btnBotones[cont++]=new btnBotones[cont++]=new btnBotones[cont++]=new btnBotones[cont++]=new btnBotones[cont++]=new btnBotones[cont++]=new btnBotones[cont++]=new btnBotones[cont++]=new btnBotones[cont++]=new btnBotones[cont++]=new btnBotones[cont++]=new btnBotones[cont++]=new cont=0;

JButton("D"); JButton("E"); JButton("F"); JButton("/"); JButton("A"); JButton("B"); JButton("C"); JButton("*"); JButton("7"); JButton("8"); JButton("9"); JButton("-"); JButton("4"); JButton("5"); JButton("6"); JButton("+"); JButton("1"); JButton("2"); JButton("3"); JButton("="); JButton("0"); JButton("Acerca de ... "); JButton("Cl"); JButton("CE");

jrbSistemas[cont++]=new jrbSistemas[cont++]=new jrbSistemas[cont++]=new jrbSistemas[cont++]=new

JRadioButton("BIN"); JRadioButton("OCT"); JRadioButton("DEC"); JRadioButton("HEX");

for(int i=0;i<jrbSistemas.length;i++){ btgSistema.add(jrbSistemas[i]); } cpane = frame.getContentPane(); cpane.setLayout(null); txtResultado.setBounds(10,10,260,30); txtResultado.setEditable(false); txtResultado.setBackground(Color.white); txtResultado.setHorizontalAlignment(JTextField.RIGHT); cpane.add(txtResultado); int x=10; int y=45; for(int i=0;i<jrbSistemas.length;i++){ x=i*70+10; jrbSistemas[i].setBounds(x,y,60,20); jrbSistemas[i].addActionListener(this); cpane.add(jrbSistemas[i]); } x=10; y=35; for(int i=0;i<btnBotones.length;i++){ if(i%4==0){ x=10; y+=35; }else{ x+=70; } if(i!=20 && i!=21){ btnBotones[i].setBounds(x,y,50,30); }else{ if(i==20) btnBotones[i].setBounds(x,y,120,30); if(i==21) btnBotones[i].setBounds(10,y+35,260,30);

btnBotones[i].addActionListener(this); cpane.add(btnBotones[i]); } jrbSistemas[2].setSelected(true); elegirSistema(10); frame.pack(); frame.setSize(290,350); frame.setResizable(false); frame.setVisible(true); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } private void elegirSistema(int sistema){ for(int i=0;i<btnBotones.length;i++){ if(!btnBotones[i].getText().equals("+")&& !btnBotones[i].getText().equals("-")&& !btnBotones[i].getText().equals("*")&& !btnBotones[i].getText().equals("/")&& !btnBotones[i].getText().equals("=")){ btnBotones[i].setEnabled(false); } } switch(sistema){ case 2: for(int i=0;i<btnBotones.length;i++){ if(!btnBotones[i].getText().equals("A")&& !btnBotones[i].getText().equals("B")&& !btnBotones[i].getText().equals("C")&& !btnBotones[i].getText().equals("D")&& !btnBotones[i].getText().equals("E")&& !btnBotones[i].getText().equals("F")&&

!btnBotones[i].getText().equals("9")&& !btnBotones[i].getText().equals("8")&& !btnBotones[i].getText().equals("7")&& !btnBotones[i].getText().equals("6")&& !btnBotones[i].getText().equals("5")&& !btnBotones[i].getText().equals("4")&& !btnBotones[i].getText().equals("3")&& !btnBotones[i].getText().equals("2")){ btnBotones[i].setEnabled(true); } } break; case 8: for(int i=0;i<btnBotones.length;i++){ if(!btnBotones[i].getText().equals("A")&& !btnBotones[i].getText().equals("B")&& !btnBotones[i].getText().equals("C")&& !btnBotones[i].getText().equals("D")&& !btnBotones[i].getText().equals("E")&& !btnBotones[i].getText().equals("F")&& !btnBotones[i].getText().equals("9")&& !btnBotones[i].getText().equals("8")){ btnBotones[i].setEnabled(true); } } break; case 10: for(int i=0;i<btnBotones.length;i++){

if(!btnBotones[i].getText().equals("A")&& !btnBotones[i].getText().equals("B")&& !btnBotones[i].getText().equals("C")&& !btnBotones[i].getText().equals("D")&& !btnBotones[i].getText().equals("E")&& !btnBotones[i].getText().equals("F")){ btnBotones[i].setEnabled(true); } } break; case 16: for(int i=0;i<btnBotones.length;i++){ btnBotones[i].setEnabled(true); } break; } txtResultado.setText(c.combertirSistema(s, sistema, txtResultado.getText())); s=sistema; } /** * @param args the command line arguments */ public static void main(String[] args) { AppCalculadora c = new AppCalculadora(); } public void actionPerformed(ActionEvent e){ if(e.getActionCommand().equals("Cl")||e.getActionCommand().eq uals("CE")){ txtResultado.setText(""); } if(e.getActionCommand().equals("BIN")){ elegirSistema(2); d = new Binario(); }

if(e.getActionCommand().equals("OCT")){ elegirSistema(8); d = new Octal(); } if(e.getActionCommand().equals("DEC")){ elegirSistema(10); d = new Decimal(); } if(e.getActionCommand().equals("HEX")){ elegirSistema(16); d = new Hexadecimal(); } if(!e.getActionCommand().equals("+")&& !e.getActionCommand().equals("-")&& !e.getActionCommand().equals("*")&& !e.getActionCommand().equals("/")&& !e.getActionCommand().equals("=")&& !e.getActionCommand().equals("Acerca de ... ")&& !e.getActionCommand().equals("Cl")&& !e.getActionCommand().equals("CE")&& !e.getActionCommand().equals("BIN")&& !e.getActionCommand().equals("OCT")&& !e.getActionCommand().equals("DEC")&& !e.getActionCommand().equals("HEX")){ txtResultado.setText(txtResultado.getText()+e.getActionComman d()); } if(e.getActionCommand().equals("+")|| e.getActionCommand().equals("-")|| e.getActionCommand().equals("*")|| e.getActionCommand().equals("/")){ d.setOperacion(e.getActionCommand().charAt(0)); switch(s){ case 2: d.establecerNumeroA(txtResultado.getText()); break; case 8: d.setNumeroA(c.fromOctal(txtResultado.getText()));

break; case 10: d.setNumeroA(Integer.parseInt(txtResultado.getText())); break; case 16: d.setNumeroA(c.fromHexadecimal(txtResultado.getText())); break; } txtResultado.setText(""); } if(e.getActionCommand().equals("=")){ switch(s){ case 2: d.setNumeroB(c.fromBinario(txtResultado.getText())); break; case 8: d.setNumeroB(c.fromOctal(txtResultado.getText())); break; case 10: d.setNumeroB(Integer.parseInt(txtResultado.getText())); break; case 16: d.setNumeroB(c.fromHexadecimal(txtResultado.getText())); break; } switch(d.getOperacion()){ case '+': d.suma(); break; case '-': d.resta(); break; case '*': d.multiplicacion(); break; case '/':

d.division(); break; } switch(s){ case 2: txtResultado.setText(c.toBinario(d.getResultado())); break; case 8: txtResultado.setText(c.toOctal(d.getResultado())); break; case 10: txtResultado.setText(String.valueOf(d.getResultado())); break; case 16: txtResultado.setText(c.toHexadecimal(d.getResultado())); break; } } if(e.getActionCommand().equals("Acerca de ... ")){ JOptionPane.showMessageDialog(null, "Calculadora de ejemplo"); } }

Вам также может понравиться