0% encontró este documento útil (0 votos)
118 vistas11 páginas

Calculadora Básica en Java Sin Interfaz

El documento describe el desarrollo de una calculadora básica en Java con dos interfaces: una primera versión sin interfaz gráfica que usa cuadros de diálogo, y una segunda versión con una interfaz gráfica de usuario. La segunda versión permite realizar las cuatro operaciones básicas, cuenta con botones numéricos y de operación, memoria, borrado y raíz cuadrada. El código se divide en dos clases, una clase principal y otra clase para la interfaz gráfica.
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como TXT, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
118 vistas11 páginas

Calculadora Básica en Java Sin Interfaz

El documento describe el desarrollo de una calculadora básica en Java con dos interfaces: una primera versión sin interfaz gráfica que usa cuadros de diálogo, y una segunda versión con una interfaz gráfica de usuario. La segunda versión permite realizar las cuatro operaciones básicas, cuenta con botones numéricos y de operación, memoria, borrado y raíz cuadrada. El código se divide en dos clases, una clase principal y otra clase para la interfaz gráfica.
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como TXT, PDF, TXT o lee en línea desde Scribd

Calculadora bsica para novatos sin interfaz :D

Elaborando una calculadora donde ingresaremos dos numero y realizara las


operaciones de sumar,restas ,multiplicar y dividir.

import [Link].*;

public class Menu {

public static void main(String []agrs)


{
int op=0;
double n1,n2,s,m,d,r;
do{
op=[Link]([Link]("nCalculadoran"+
"************n"+
"[1] SUMARn"+
"[2] RESTARn"+
"[3] MULTIPLICARn"+
"[4] DIVIDIRn"+
"[5] SALIRn"+
"Ingresa una opcion:"));

switch(op)
{
case 1:
n1=[Link]([Link]("Ingrese
numero 1"));
n2=[Link]([Link]("Ingrese
numero 2"));
s=n1+n2;
[Link](null,"La suma es:"+s);
break;
case 2:
n1=[Link]([Link]("Ingrese
numero 1"));
n2=[Link]([Link]("Ingrese
numero 2"));
r=n1-n2;
[Link](null,"La resta es:"+r);
break;
case 3:
n1=[Link]([Link]("Ingrese
numero 1"));
n2=[Link]([Link]("Ingrese
numero 2"));
m=n1*n2;
[Link](null,"La multiplicacion es:"+m);
break;
case 4:
n1=[Link]([Link]("Ingrese
numero 1"));
n2=[Link]([Link]("Ingrese
numero 2"));
d=n1/n2;
[Link](null,"La division es:"+d);
break;

}
}while(op!=5);
}

Calculadora con Interfaz en Java


Anteriormente he compartido un ejemplo de una calculadora bsica usando los cuadros
de dialogo en java, la cual es un poco tediosa al momento de realizar las
operaciones, pero en post mostrare algo mas grafico, usando lo que se ha explicado
en las anteriores entradas: Crear ventanas, Botones, Formularios bsicos, JPaneles
y arreglos de botones.

El proyecto esta dividido en dos partes, una el cual contiene el mtodo principal,
y la otra clase contiene la interfaz, eventos y operaciones realizadas por el
ejercicio practico. El programilla realiza las cuatro operaciones bsicas de las
matemticas (suma, resta, multiplicacin y divisin), ademas cuenta con el uso de
memorias, borrado total (pantalla y memoria) raz cuadrada, y manejo de decimales.
Bueno ya sabiendo que realiza el ejercicio, continuare mostrando el cdigo para la
aplicacin.

- CLASE MAIN

import [Link];
import [Link];
import [Link];
import [Link];

public class CalculadoraGUI {

public static void main(String[] args) {


String ax = [Link]("[Link]"); //variable que toma el nombre
del sistema operativo que se tenga instalado

if([Link]("Windows 7") || [Link]("Windows")){//si es un sistema


windows se aplica el skin que tiene java para windows
try {

[Link]("[Link]");
interfaz w = new interfaz();
// TODO code application logic here
} catch (ClassNotFoundException ex) {
[Link]([Link]()).log([Link], null,
ex);
} catch (InstantiationException ex) {
[Link]([Link]()).log([Link], null,
ex);
} catch (IllegalAccessException ex) {
[Link]([Link]()).log([Link], null,
ex);
} catch (UnsupportedLookAndFeelException ex) {
[Link]([Link]()).log([Link], null,
ex);
}
}
if([Link]("Linux")){//si es un sistema linux se aplica el skin que tiene
java para linux
try {

[Link]("[Link]");
interfaz w = new interfaz();
// TODO code application logic here
} catch (ClassNotFoundException ex) {
[Link]([Link]()).log([Link], null,
ex);
} catch (InstantiationException ex) {
[Link]([Link]()).log([Link], null,
ex);
} catch (IllegalAccessException ex) {
[Link]([Link]()).log([Link], null,
ex);
} catch (UnsupportedLookAndFeelException ex) {
[Link]([Link]()).log([Link], null,
ex);
}
}
}
}
- CLASE INTERFAZ

import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];

public class interfaz implements ActionListener{

JTextField jt1, jt2;


Panel pN, pb1, pb3;
JPanel pS, pb2;
JButton mc, mr, ms, mMas, mMenos, numeros[], operaciones[];
String oper[]={"R", "C", "+", "/", "-" ,"*", "="}, ax="";
float n1, n2, nr, M;//variables para las operaciones
int tipOp; //para controlar el tipo de operacion que se realiza
boolean t=false;//control sobre escribir un nuevo numero despues de alguna
operacion cambia a true cuando se ha realizado una operacion

public interfaz(){

JFrame jfMain = new JFrame("Calculator");


[Link](new BorderLayout(4, 4));

norte();
sur();

[Link](pN, [Link]);
[Link](pS, [Link]);

[Link](100, 80);
[Link](false);
[Link](true);
[Link](300, 380);
[Link](JFrame.EXIT_ON_CLOSE);
}

public void norte(){

pN = new Panel(null);

jt1 = new JTextField("");


jt2 = new JTextField("0");

[Link]([Link]);
[Link]([Link]);

//Quitar bordes a los campos de texto


[Link]([Link]([Link]));
[Link]([Link]([Link]));

//desabilitando los campos de texto


[Link](false);
[Link](false);

[Link]([Link]);
[Link]([Link]);

[Link](jt1); [Link](jt2);

[Link](35, 10, 200, 15);


[Link](35, 25, 200, 30);

[Link](270, 47);
[Link](true);

public void sur(){

pS = new JPanel(new BorderLayout(6, 50));


[Link](new BorderLayout(4, 4));

botMem();
botNum();
botOpe();

[Link](pb1, [Link]);
[Link](pb2, [Link]);
[Link](pb3, [Link]);

[Link](270, 330);
}

public void botMem(){

pb1 = new Panel(null);

mc = new JButton("MC"); mr = new JButton("MR");


ms = new JButton("MS"); mMas = new JButton("M+");
mMenos = new JButton("M-");
[Link](new Font("Arial", [Link], 11));
[Link](new Font("Arial", [Link], 11));
[Link](new Font("Arial", [Link], 11));
[Link](new Font("Arial", [Link], 11));
[Link](new Font("Arial", [Link], 11));

[Link](new Insets(1, 1, 1, 1)); [Link](new Insets(1, 1, 1, 1));


[Link](new Insets(1, 1, 1, 1)); [Link](new Insets(1, 1, 1,
1));
[Link](new Insets(1, 1, 1, 1));

[Link](35, 0, 33, 33); [Link](78, 0, 33, 33); [Link](121,


0, 33, 33);
[Link](164, 0, 33, 33); [Link](207, 0, 33, 33);

[Link](mc); [Link](mr); [Link](ms); [Link](mMas); [Link](mMenos);

[Link](this); [Link](this);
[Link](this);
[Link](this); [Link](this);

[Link](270, 45);
[Link](true);
}

public void botNum(){

pb2 = new JPanel(null);

int nx3=121, nx2=121, nx1=121, n3y=0, n2y=43, n1y=86;


numeros = new JButton[11];

//*****************************************
//bloque para crear los botones, aadirlos y asignar numeros
for (int i=0; i<=10; i++){

if(i<=9){
numeros[i] = new JButton(""+i);
[Link](numeros[i]);
numeros[i].setMargin(new Insets(1, 1, 1, 1));
numeros[i].addActionListener(this);
}
else{
numeros[i] = new JButton(".");
[Link](numeros[i]);
numeros[i].setMargin(new Insets(1, 1, 1, 1));
numeros[i].addActionListener(this);
}
}

//******************************************
//bloque para posicionar botones
for(int i=10; i>=0; i--){

if(i==10){
numeros[i].setBounds(121, 129, 35, 35);
}
else{
if(i<=9 && i>=7){
numeros[i].setBounds(nx3, n3y, 35, 35);
nx3-=43;
}
else if(i<=6 && i>=4){
n3y+=43;
numeros[i].setBounds(nx2, n2y, 35, 35);
nx2-=43;
}
else if(i<=3 && i>=1){
n3y+=43;
numeros[i].setBounds(nx1, n1y, 35, 35);
nx1-=43;
}
else if(i==0){
numeros[i].setBounds(35, 129, 78, 35);
}
}
}

[Link](170, 150);
[Link](true);
}

public void botOpe(){

pb3 = new Panel(null);

int c=0, x=0, y=0;

operaciones = new JButton[7];

for(int i=0; i<=6; i++){


if(c<=1){

operaciones[i] = new JButton(oper[i]);


[Link](operaciones[i]);

operaciones[i].setBounds(x, y, 30, 35);

operaciones[i].setMargin(new Insets(1, 1, 1, 1));


operaciones[i].addActionListener(this);
x+=33;
c++;
}
else{
if(i==6){
x=0; y+=43;
operaciones[i] = new JButton(oper[i]);
[Link](operaciones[i]);

operaciones[i].setBounds(x, y, 65, 35);

operaciones[i].setMargin(new Insets(1, 1, 1, 1));


operaciones[i].addActionListener(this);
x+=33;
c++;
}
else{
c=0;
x=0; y+=43;
operaciones[i] = new JButton(oper[i]);
[Link](operaciones[i]);

operaciones[i].setBounds(x, y, 30, 35);

operaciones[i].setMargin(new Insets(1, 1, 1, 1));


operaciones[i].addActionListener(this);
x+=33;
c++;
}
}

[Link](true);
[Link](120, 200);
}

public boolean isN(String ax){

try{
int n = [Link](ax);
return true;
}catch(NumberFormatException e){
return false;
}

@Override
public void actionPerformed(ActionEvent e) {

String op="";

if(isN([Link]())){ //cuando se oprimen numeros

if([Link]().equals("")){
ax += [Link]();
[Link](ax);
}
else{
if(tipOp==0){
if(t){
ax="";

[Link]([Link]());
ax += [Link]();
[Link](ax);
t = false;
}
else{
ax="";
ax += [Link]()+[Link]();
[Link](ax);
}
}else{
ax="";
ax += [Link]()+[Link]();
[Link](ax);
}
}
}
else{//cuando se oprime el resto de botones

if([Link]().equals("R") ){
[Link]("");
Float a = [Link]([Link]());
[Link](""+[Link](a));
}
if([Link]().equals("C") ){ //para reiniciar valores y
limpiar pantalla
tipOp=0; n1 = 0; n2 =0; nr=0; [Link](""); [Link]("0");
ax="";
}
if([Link]().equals("MC")){//para limpiar la memoria de la
calculadora
[Link]([Link]);
[Link](""); [Link]("0");
M=0;
}
if([Link]().equals("MR")){//para mostrar valor almacenado
en la memoria
[Link]("");
[Link]([Link](M));
}if([Link]().equals("MS")){//guardar un valor en la memoria
[Link]([Link]);
M = [Link]([Link]());
}
if([Link]().equals("M+")){//sumar valor de la pantalla con
el valor de la memoria
M += [Link]([Link]());
}
if([Link]().equals("M-")){//restar valor de la pantalla con
el valor de la memoria
M -= [Link]([Link]());
}
if([Link]().equals(".")){//usar el punto para los decimales
ax="";
if(numeros[10].isEnabled()){
numeros[10].setEnabled(false);
ax = [Link]() +".";
[Link](ax);
}
}
if([Link]().equals("+") ){//boton suma
numeros[10].setEnabled(true);
ax="";
if(tipOp==1){

}else if(tipOp==0 ){//validacion para no chocar con otras


operaciones
if([Link]().equals("") ){
n1 = [Link]([Link]());

ax += [Link]()+[Link]();
[Link](ax+" + ");
[Link]("");
tipOp = 1;
}
else {
if(!t){//validacion para nueva operacion
n1 = [Link]([Link]());

ax += [Link]();
[Link](ax+" + ");
[Link]("");
tipOp = 1;
}
else{//usar otras operaciones con la suma
n1 = [Link]([Link]());

ax += [Link]();
[Link](ax+" + ");
[Link]("");
tipOp = 1;
}
}
}
}
if([Link]().equals("-") ){//cuando se decide restar
numeros[10].setEnabled(true);
ax="";
if(tipOp==2){

}else if(tipOp==0){//validacion para no chocar con otras


operaciones
if([Link]().equals("")){
n1 = [Link]([Link]());

ax += [Link]()+ [Link]();
[Link](ax+" - ");
[Link]("");
tipOp = 2;
}
else{
if(!t){//validacion para nueva operacion
n1 = [Link]([Link]());

ax += [Link]();
[Link](ax+" - ");
[Link]("");
tipOp = 2;
}
else{//usar otras operaciones con la suma
n1 = [Link]([Link]());

ax += [Link]();
[Link](ax+" - ");
[Link]("");
tipOp = 2;
}
}
}
}
if([Link]().equals("*") ){//cuando se decide
multiplicar
numeros[10].setEnabled(true);
ax="";
if(tipOp==3){

}else if(tipOp==0){//validacion para no chocar con otras


operaciones
if([Link]().equals("")){
n1 = [Link]([Link]());

ax += [Link]()+[Link]();
[Link](ax+" * ");
[Link]("");
tipOp = 3;
}
else{
if(!t){//validacion para nueva operacion
n1 = [Link]([Link]());

ax += [Link]();
[Link](ax+" * ");
[Link]("");
tipOp = 3;
}
else{//usar otras operaciones con la suma
n1 = [Link]([Link]());

ax += [Link]();
[Link](ax+" * ");
[Link]("");
tipOp = 3;
}
}
}
}
if([Link]().equals("/") ){//cuando se decide dividir
numeros[10].setEnabled(true);
ax="";
if(tipOp==4){

}else if(tipOp==0){//validacion para no chocar con otras


operaciones
if([Link]().equals("")){
n1 = [Link]([Link]());

ax += [Link]()+[Link]();
[Link](ax+" / ");
[Link]("");
tipOp = 4;
}
else{
if(!t){//validacion para nueva operacion
n1 = [Link]([Link]());

ax += [Link]();
[Link](ax+" / ");
[Link]("");
tipOp = 4;
}
else{//usar otras operaciones con la suma
n1 = [Link]([Link]());

ax += [Link]();
[Link](ax+" / ");
[Link]("");
tipOp = 4;
}
}
}
}
if([Link]().equals("=") && ![Link]().equals("")){
t = true;
if(tipOp==1){//operacion para la suma
tipOp = 0;
ax="";
ax+=[Link]() + [Link]();
[Link](ax);
n2 = [Link]([Link]());
nr=n1+n2;
[Link]([Link](nr));
}
else if(tipOp==2){ //operacion para la resta
tipOp = 0;
ax="";
ax+=[Link]()+[Link]();
[Link](ax);
n2 = [Link]([Link]());
nr=n1-n2;
[Link]([Link](nr));
}
if(tipOp==3){ //operacion para la multiplicacion
tipOp = 0;
ax="";
ax+=[Link]()+[Link]();
[Link](ax);
n2 = [Link]([Link]());
nr=n1*n2;
[Link]([Link](nr));
}
if(tipOp==4){ //operacion para la multiplicacion
if([Link]([Link]())!=0){
tipOp = 0;
ax="";
ax+=[Link]()+[Link]();
[Link](ax);
n2 = [Link]([Link]());
nr=n1/n2;
[Link]([Link](nr));
}
else
[Link](null, "No se puede
realizar divison por 0");
}
}
}
}
}

También podría gustarte