Grupo Colegio Mexiquense Universitario
Ing. en Sistemas Computacionales
Ing. de Software
Profesor: Ing. S.C. Viane Soltero P!re"
#lumno: $onat%an $onat%an &'pe" (epeda (epeda
Sa)atino *+ semestre
Proecto calculadora
Introducción
,n este proecto se llevar- a ca)o el desarrollo de software de una calculadora con operaciones simples suma/ resta/ multiplicaci'n/ divisi'n0. Para poder reali"ar el softwar software e se aplicaraplicar- la ingenier ingenier1a 1a de softwa software re corresp correspond ondient iente e teniendo teniendo un o)2et o)2etiv ivo o gene general ral espec especifi ifico co// as1 as1 como como la inves investig tigaci aci'n 'n de reque requerim rimien iento tos s funcionales no funcionales/ el modelo que se utili"ar- para el desarrollo del software/ software/ se aplicaran aplicaran los casos de uso identificando identificando la funci'n de cada actor/ as1 como de la aplicaci'n.
Introducción
,n este proecto se llevar- a ca)o el desarrollo de software de una calculadora con operaciones simples suma/ resta/ multiplicaci'n/ divisi'n0. Para poder reali"ar el softwar software e se aplicaraplicar- la ingenier ingenier1a 1a de softwa software re corresp correspond ondient iente e teniendo teniendo un o)2et o)2etiv ivo o gene general ral espec especifi ifico co// as1 as1 como como la inves investig tigaci aci'n 'n de reque requerim rimien iento tos s funcionales no funcionales/ el modelo que se utili"ar- para el desarrollo del software/ software/ se aplicaran aplicaran los casos de uso identificando identificando la funci'n de cada actor/ as1 como de la aplicaci'n.
Objetivo General
3esarrollar una calculadora que sea capa" de reali"ar las operaciones )-sicas como suma/ resta/ multiplicaci'n divisi'n/ el usuario introducir- la cantidad por medio de )otones/ la validaci'n de la calculadora ser- reali"ada en el )ot'n punto donde solo se podr- introducir una 4nica ves el punto.
Objetivos específicos Análisis
5.6&a calculadora identificara el tipo de operaci'n que desea reali"ar el usuario a trav!s de cada )ot'n por operaci'n. *.6Mostrara la operaci'n reali"ada resultado 7.6Solo se podr- utili"ar introducir el punto una sola ocasi'n Diseño
5.6Su dise8o ser- simple cada n4mero operaci'n ser- un )ot'n/ *.69odo n4mero se mostrar- en una ca2a de texto no edita)le. 7.6 Mostrar la operaci'n completa en la parte superior de la calculadora. .6Mostrara el resultado en la ca2a de texto no edita)le Desarrollo
5.6,l software se desarrollar- en el lengua2e 2ava
Modelo
,l modelo que utili"are para el desarrollo de la calculadora ser- el modelo en cascada a que me permite perfeccionar cada fase del software/ a que es un proecto peque8o los requisitos son claros entendi)les el modelo en cascada es el correcto para este proecto.
imagen 1 modelo cascada
Análisis Requisitos
;Un requerimiento es la definici'n de cada entrada salida del software divididos en requerimientos funcionales no funcionales<
Requerimientos funcionales
5.6Sumar * n4meros •
•
•
Se o)tendr- el primer n4mero digitali"ado por el usuario en la ca2a de texto guard-ndolo en una varia)le al presionar el )ot'n =/ se mostrar- el contenido de la varia)le en la parte superior seguida del s1m)olo =/ se limpiar- la ca2a de texto. Se o)tendr- el segundo n4mero digitali"ado por el usuario en la ca2a de texto guard-ndolo en una segunda varia)le reali"ar- la suma guardando el resultado en una tercera varia)le. Mostrar- la operaci'n completa en la parte superior el resultado en la ca2a de texto al presionar el )ot'n >.
*.6?estar * n4meros •
•
•
Se o)tendr- el primer n4mero digitali"ado en la caga de texto guard-ndolo en una varia)le al presionar el )ot'n 6/ se mostrar- el contenido de la varia)le en la parte superior seguida del s1m)olo 6/ se limpiar- la ca2a de texto. Se o)tendr- el segundo n4mero digitali"ado en la ca2a de texto guard-ndolo en una segunda varia)le reali"ar- la resta guardado el resultado en una tercera varia)le. Mostrar- la operaci'n completa en la parte superior el resultado en la ca2a de texto al presionar el )ot'n >.
7.6multiplicar * n4meros •
Se o)tendr- el primer n4mero digitali"ado en la caga de texto guard-ndolo en una varia)le al presionar el )ot'n @/ se mostrar- el contenido de la varia)le en la parte superior seguida del s1m)olo @/ se limpiar- la ca2a de texto.
•
•
Se o)tendr- el segundo n4mero digitali"ado en la ca2a de texto guard-ndolo en una segunda varia)le reali"ar- la resta guardado el resultado en una tercera varia)le. Mostrar- la operaci'n completa en la parte superior el resultado en la ca2a de texto al presionar el )ot'n >.
.63ividir * n4meros •
•
•
Se o)tendr- el primer n4mero digitali"ado en la caga de texto guard-ndolo en una varia)le al presionar el )ot'n A/ se mostrar- el contenido de la varia)le en la parte superior seguida del s1m)olo A/ se limpiar- la ca2a de texto. Se o)tendr- el segundo n4mero digitali"ado en la ca2a de texto guard-ndolo en una segunda varia)le reali"ar- la resta guardado el resultado en una tercera varia)le. Mostrar- la operaci'n completa en la parte superior el resultado en la ca2a de texto al presionar el )ot'n >.
B.6limpiara pantalla • •
Se podr- limpiar pantalla o )orrar todo por completo Se podr- eliminar el ultimo numero digitali"ado
Requisitos no funcionales
5.6Se desarrollar- en el lengua2e 2ava •
,l lengua2e 2ava es la me2or opci'n para este peque8o proecto a que nos permite tra)a2ar con grafica facilit-ndonos muc%o la programaci'n/ indicando instrucciones de acci'n a cada )ot'n.
Diseño de sistema
&a calculadora generara las operaciones )-sicas de acuerdo a las acciones que tome el usuario.
7 1 6 2
5
4 3
imagen 2 interface de calculadora autor: Jonathan López
5.6Ca2a donde se visuali"ar-n los n4meros que el usuario digitalic! el resultado de las operaciones *.69eclado num!rico: al presionar el )ot'n el n4mero correspondiente se mostraren la ca2a de texto. 7.6oton punto: se validar- que solo se pueda mostrar una sola ocasi'n para dividir los enteros de los decimales. .69eclado operaciones: al presionar el )ot'n se captura el n4mero que se encuentra en la ca2a se guarda en una varia)le se muestra en la ca2a superior D0/ as1 como el operador para identificar el tipo de operaci'n a reali"ar se limpia la ca2a B.6ot'n igual: al presionar el )ot'n se captura el n4mero que se encuentra en la ca2a se guarda en una segunda varia)le/ se lee el valor de la varia)le operador
se identifica la operaci'n que se reali"ara/ se muestra el resultado en la ca2a la operaci'n en la ca2a superior E.6otones )orrar: C, limpia por completo am)as ca2as. C solo elimina el 4ltimo n4mero que se digito. D.6Ca2a donde se visuali"ar-n los n4meros despu!s de presionar un )ot'n de operaci'n o se mostrara la operaci'n completa al presionar el )ot'n igual >0.
asos de !sos
imagen 3 caso de uso calculadora autor: Jonathan López
Manual de usuario
,l uso de la calculadora es )-sico su interface es sencilla e intuitiva/ el teclado num!rico esta en manera ascendente
#lustración imagen 0 "eclado $um!rico
Cada )ot'n mandara su valor a la ventana para visuali"arlos
imagen 0 Caja vacía
imagen 0 Caja con nmeros insertados a trav!s del teclado num!rico
#l presionar los )otones de operaci'n/ se limpiar- la ventana el n4mero que se encontra)a %a pasar- en la parte superior con el s1m)olo del operador presionado
imagen 0 "eclado operaciones
imagen 0 Caja de operación muestra primer nmero % operados presionado
#l presionar el )ot'n igual se limpiar-n las ventanas para poder mostrar el resultado en la primera ventana en la parte superior la operaci'n completa
imagen: 0 Cajas limpias
imagen 0 Caja superior muestra operación completa % en la caja principal se muestra el resultado de la operación
,l )ot'n punto solo se podr- colocar una 4nica ocasi'n separando los enteros de los decimales
imagen 0 (otón punto
imagen 0 Caja principal se visualiza la acción del punto
otones limpiar o )orrar
: &impia por completo am)as ventanas : orra ultimo digito en la primera ventana imagen 0 (otones limpiar % 'orrar
imagen 0 &e muestra una operación a la cual se le 'orrara el ltimo nmero ingresado
imagen 0 &e muestra el resultado al presionar el 'otón C
Manual t"cnico
&a calculadora est- desarrollada en lengua2e 2ava/ so)re el I3, F,9,#FS se le dio la siguiente interface
imagen 0 #nterface de Calculadora
&as controles utili"ados son )otones/ ca2a de texto;Mostrar3atos<0 una etiqueta;3atosSegundoPlano<0. &os )otones del teclado numerico se le asigno el numero correspondiente/ as1 como al momento de precionarlo se mostrara en la ca2a de texto/ a traves de un evento.
imagen 0 Código del 'otón 1 del teclado num!rico
,l )oton PUF9 se crea una cadena donde se guardaran los numeros que se encuentren en la ca2a de texto. ,n caso de que la ca2a de texo este )asia se colocara un H. Crearemos un metodo pu)lico para evitar que se coloque mas de un punto/ recorriendo toda la cadena/ si no existe punto lo colocara al final/ pero si existe no colocara nada
imagen 0 Código 'otón punto
&os )otones del teclado de operaciones se les asigno el operador correspondiente a la varia)le operador/ al momento de precionarlo/ guardara el numero que se encuentra en la ca2a de texto;Mostrar3atos<0 en una varia)le llamada numero5/ se limpia la ca2a de texto/ por ultimo se mostrara el contenido de la varia)le numero5 en la etiqueta.
imagen 0 "eclado operaciones
imagen 0 Código 'otón operador m)s *+,
ot'n IGU#&/ ser- donde se realicen las operaciones/ para eso crearemos un m!todo p4)lico con tres par-metros donde le enviaremos el valor de las varia)les numero5/ numero* operador/ dentro del m!todo identificaremos que tipo de operador se est- reci)iendo a partir de este se reali"ar- la operaci'n/ se mostrara el resultado en la ca2a de texto la operaci'n completa en la etiqueta.
imagen 0 Código 'otón igual *-,
otones limpiar/ su funci'n es mandar una cadena )ac1a a la ca2a de texto a la etiqueta
imagen 0 Código 'otón limpiar cajas
ot'n )orrar/ su funci'n es una )orrar el ultimo digito que se encuentra en la ca2a de texto/ lo que %acemos es recuperar lo que se encuentra en la ca2a de texto guardarlo en una cadena/ leer la cadena darle el mismo valor de la cadena65 mandamos a mostrar a la ca2a de texto.
imagen 0 Código 'otón 'orrar ultimo digito
códi#o fuente pacage 2onaJ pu)lic class calculadoraKinal extends 2avax.swing.$Krame L
AAdeclaracion de varia)les para guardar numeros ingresados en la ca2a de texto
String numero5J String operadorJ String numero*J
pu)lic calculadoraKinal0 L
initComponents0J
NSuppressOarningsunc%eced0 AA Qeditor6fold defaultstate>collapsed desc>Generated CodeR private void initComponents0 L
Mostrar3atos > new 2avax.swing.$9extKield0J numD > new 2avax.swing.$utton0J num > new 2avax.swing.$utton0J numT > new 2avax.swing.$utton0J divicion > new 2avax.swing.$utton0J num > new 2avax.swing.$utton0J numB > new 2avax.swing.$utton0J numE > new 2avax.swing.$utton0J numtiplicacion > new 2avax.swing.$utton0J num5 > new 2avax.swing.$utton0J num* > new 2avax.swing.$utton0J num7 > new 2avax.swing.$utton0J resta > new 2avax.swing.$utton0J numH > new 2avax.swing.$utton0J punto > new 2avax.swing.$utton0J suma > new 2avax.swing.$utton0J igual > new 2avax.swing.$utton0J 2utton5 > new 2avax.swing.$utton0J 2utton* > new 2avax.swing.$utton0J
3atosSegundoPlano > new 2avax.swing.$&a)el0J
set3efaultCloseperation2avax.swing.OindowConstants.,I9FC&S,0J setMinimumSi"enew 2ava.awt.3imension*TH/ *7H00J
getContentPane0.set&aoutnull0J
Mostrar3atos.set,dita)lefalse0J
Mostrar3atos.setWori"ontal#lignment2avax.swing.$9extKield.?IGW90J Mostrar3atos.add#ction&istenernew 2ava.awt.event.#ction&istener0 L pu)lic void actionPerformed2ava.awt.event.#ction,vent evt0 L
Mostrar3atos#ctionPerformedevt0J 0J
getContentPane0.addMostrar3atos0J Mostrar3atos.setounds7H/ 7H/ *5E/ 7H0J
numD.set9extD0J numD.add#ction&istenernew 2ava.awt.event.#ction&istener0 L pu)lic void actionPerformed2ava.awt.event.#ction,vent evt0 L
numD#ctionPerformedevt0J 0J
getContentPane0.addnumD0J numD.setounds5H/ DH/ 7T/ *70J
num.set9ext0J num.add#ction&istenernew 2ava.awt.event.#ction&istener0 L pu)lic void actionPerformed2ava.awt.event.#ction,vent evt0 L
num#ctionPerformedevt0J 0J
getContentPane0.addnum0J num.setoundsEH/ DH/ 7T/ *70J
numT.set9extT0J numT.add#ction&istenernew 2ava.awt.event.#ction&istener0 L pu)lic void actionPerformed2ava.awt.event.#ction,vent evt0 L
numT#ctionPerformedevt0J 0J
getContentPane0.addnumT0J numT.setounds55H/ DH/ 7T/ *70J
divicion.set9extA0J divicion.add#ction&istenernew 2ava.awt.event.#ction&istener0 L pu)lic void actionPerformed2ava.awt.event.#ction,vent evt0 L
divicion#ctionPerformedevt0J 0J
getContentPane0.adddivicion0J divicion.setounds5EH/ DH/ 7D/ *70J
num.set9ext0J num.add#ction&istenernew 2ava.awt.event.#ction&istener0 L pu)lic void actionPerformed2ava.awt.event.#ction,vent evt0 L
num#ctionPerformedevt0J 0J
getContentPane0.addnum0J num.setounds5H/ 5HH/ 7T/ *70J
numB.set9extB0J
numB.add#ction&istenernew 2ava.awt.event.#ction&istener0 L pu)lic void actionPerformed2ava.awt.event.#ction,vent evt0 L
numB#ctionPerformedevt0J 0J
getContentPane0.addnumB0J numB.setoundsEH/ 5HH/ 7T/ *70J
numE.set9extE0J numE.add#ction&istenernew 2ava.awt.event.#ction&istener0 L pu)lic void actionPerformed2ava.awt.event.#ction,vent evt0 L
numE#ctionPerformedevt0J 0J
getContentPane0.addnumE0J numE.setounds55H/ 5HH/ 7T/ *70J
numtiplicacion.set9ext@0J numtiplicacion.add#ction&istenernew 2ava.awt.event.#ction&istener0 L pu)lic void actionPerformed2ava.awt.event.#ction,vent evt0 L
numtiplicacion#ctionPerformedevt0J 0J
getContentPane0.addnumtiplicacion0J numtiplicacion.setounds5EH/ 5HH/ 7T/ *70J
num5.set9ext50J num5.add#ction&istenernew 2ava.awt.event.#ction&istener0 L pu)lic void actionPerformed2ava.awt.event.#ction,vent evt0 L
num5#ctionPerformedevt0J
0J
getContentPane0.addnum50J num5.setounds5H/ 57H/ 7T/ *70J
num*.set9ext*0J num*.add#ction&istenernew 2ava.awt.event.#ction&istener0 L pu)lic void actionPerformed2ava.awt.event.#ction,vent evt0 L
num*#ctionPerformedevt0J 0J
getContentPane0.addnum*0J num*.setoundsEH/ 57H/ 7T/ *70J
num7.set9ext70J num7.add#ction&istenernew 2ava.awt.event.#ction&istener0 L pu)lic void actionPerformed2ava.awt.event.#ction,vent evt0 L
num7#ctionPerformedevt0J 0J
getContentPane0.addnum70J num7.setounds55H/ 57H/ 7T/ *70J
resta.set9ext60J resta.add#ction&istenernew 2ava.awt.event.#ction&istener0 L pu)lic void actionPerformed2ava.awt.event.#ction,vent evt0 L
resta#ctionPerformedevt0J 0J
getContentPane0.addresta0J resta.setounds5EH/ 57H/ 7D/ *70J
numH.set9extH0J numH.add#ction&istenernew 2ava.awt.event.#ction&istener0 L pu)lic void actionPerformed2ava.awt.event.#ction,vent evt0 L
numH#ctionPerformedevt0J 0J
getContentPane0.addnumH0J numH.setoundsEH/ 5EH/ 7T/ *70J
punto.set9ext.0J punto.add#ction&istenernew 2ava.awt.event.#ction&istener0 L pu)lic void actionPerformed2ava.awt.event.#ction,vent evt0 L
punto#ctionPerformedevt0J 0J
getContentPane0.addpunto0J punto.setounds*5H/ 5EH/ 7D/ *70J
suma.set9ext=0J suma.add#ction&istenernew 2ava.awt.event.#ction&istener0 L pu)lic void actionPerformed2ava.awt.event.#ction,vent evt0 L
suma#ctionPerformedevt0J 0J
getContentPane0.addsuma0J suma.setounds5EH/ 5EH/ 5/ *70J
igual.set9ext>0J igual.add#ction&istenernew 2ava.awt.event.#ction&istener0 L pu)lic void actionPerformed2ava.awt.event.#ction,vent evt0 L
igual#ctionPerformedevt0J
0J
getContentPane0.addigual0J igual.setounds*5H/ 57H/ H/ *70J
2utton5.set9extC0J 2utton5.add#ction&istenernew 2ava.awt.event.#ction&istener0 L pu)lic void actionPerformed2ava.awt.event.#ction,vent evt0 L
2utton5#ctionPerformedevt0J 0J
getContentPane0.add2utton50J 2utton5.setounds*5H/ 5HH/ H/ *70J
2utton*.set9extC,0J 2utton*.add#ction&istenernew 2ava.awt.event.#ction&istener0 L pu)lic void actionPerformed2ava.awt.event.#ction,vent evt0 L
2utton*#ctionPerformedevt0J 0J
getContentPane0.add2utton*0J 2utton*.setounds*5H/ DH/ B/ *70J
3atosSegundoPlano.setWori"ontal#lignment2avax.swing.SwingConstants.?IGW90J
3atosSegundoPlano.set9ool9ip9ext0J
getContentPane0.add3atosSegundoPlano0J 3atosSegundoPlano.setounds7H/ H/ *5H/ *H0J
pac0J AA QAeditor6foldR
AAdeclaracion de evento al precionar el )oton H
private void numH#ctionPerformed2ava.awt.event.#ction,vent evt0 L Mostrar3atos.set9extMostrar3atos.get9ext0 = H0JAAse envia se muestra el n4mero H AAdeclaracion de evento al precionar el )oton 5 private void num5#ctionPerformed2ava.awt.event.#ction,vent evt0 L Mostrar3atos.set9extMostrar3atos.get9ext0 = 50JAAse envia se muestra el n4mero 5 AAdeclaracion de evento al precionar el )oton * private void num*#ctionPerformed2ava.awt.event.#ction,vent evt0 L Mostrar3atos.set9extMostrar3atos.get9ext0 = *0JAAse envia se muestra el n4mero * AAdeclaracion de evento al precionar el )oton 7 private void num7#ctionPerformed2ava.awt.event.#ction,vent evt0 L Mostrar3atos.set9extMostrar3atos.get9ext0 = 70JAAse envia se muestra el n4mero 7 AAdeclaracion de evento al precionar el )oton private void num#ctionPerformed2ava.awt.event.#ction,vent evt0 L Mostrar3atos.set9extMostrar3atos.get9ext0 = 0JAAse envia se muestra el n4mero AAdeclaracion de evento al precionar el )oton B private void numB#ctionPerformed2ava.awt.event.#ction,vent evt0 L Mostrar3atos.set9extMostrar3atos.get9ext0 = B0JAAse envia se muestra el n4mero B AAdeclaracion de evento al precionar el )oton E private void numE#ctionPerformed2ava.awt.event.#ction,vent evt0 L Mostrar3atos.set9extMostrar3atos.get9ext0 = E0JAAse envia se muestra el n4mero E AAdeclaracion de evento al precionar el )oton D private void numD#ctionPerformed2ava.awt.event.#ction,vent evt0 L Mostrar3atos.set9extMostrar3atos.get9ext0 = D0JAAse envia se muestra el n4mero D
AAdeclaracion de evento al precionar el )oton private void num#ctionPerformed2ava.awt.event.#ction,vent evt0 L Mostrar3atos.set9extMostrar3atos.get9ext0 = 0JAAse envia se muestra el n4mero AAdeclaracion de evento al precionar el )oton T private void numT#ctionPerformed2ava.awt.event.#ction,vent evt0 L Mostrar3atos.set9extMostrar3atos.get9ext0 = T0JAAse envia se muestra el n4mero T AAdeclaracion de evento al precionar el )oton punto private void punto#ctionPerformed2ava.awt.event.#ction,vent evt0 L String cadenaJAAdeclaracion de la varia)le cadena cadena > Mostrar3atos.get9ext0JAAse captura lo que esta dentro de la ca2a de texto if cadena.lengt%0 Q> H0 LAAse lee la cadena si esta vacia entra si no pasara al else if Mostrar3atos.set9extH.0JAAsi no existe numero se colocara un H antes del punto else if XexistepuntoMostrar3atos.get9ext000 LAAse leera si existe un punto Mostrar3atos.set9extMostrar3atos.get9ext0 = .0JAAsi no exite se colocara al final pu)lic static )oolean existepuntoString cadena0 LAAmetodo si existe punto )oolean resultadoJAAvarai)le resultado resultado > falseJAAse iniciali"a la varia)le en falso for int i > HJ i Q cadena.lengt%0J i==0 LAAsi existe un punto no entrara al if if cadena.su)stringi/ i = 50.equals.00 LAAsi no existe un punto lo ingresara resultado > trueJ
)reaJ return resultadoJ
AAmetodo )oton suma private void suma#ctionPerformed2ava.awt.event.#ction,vent evt0 L
if XMostrar3atos.get9ext0.equals00 LAAse captura lo que esta en la ca2a de texto numero5 > Mostrar3atos.get9ext0JAAse guarda en la varia)le numero5 operador > =JAAse guarda el valor = en la varia)le operador Mostrar3atos.set9ext0JAAmandamos una cadena vacia para limpiar la ca2a de texto String n5JAAdeclaracion de varia)le n5 n5 > numero5JAAguardamos el contenido de la varia)le numero5 en n5 3atosSegundoPlano.set9extn5 = =0JAAmostramos el valor de la varia)le n5 el operador AAmetodo )oton igual private void igual#ctionPerformed2ava.awt.event.#ction,vent evt0 L String resultadoJAAdeclaracion de varia)le resultado numero* > Mostrar3atos.get9ext0JAAse captuta lo que se encuentra en la ca2a if Xnumero*.equals00 LAAse verifica si la cadena esta )asia resultado > calculonumero5/ numero*/ operador0JAAse envian los valores de las varia)les al metodo calculo se asigna el valor resultante a la varia)le resultado Mostrar3atos.set9extresultado0JAAse manda el valor de la varia)le resultado a la ca2a de texto String n5/ n*/ opJAAdeclaracion de varia)les tipo string n5 > numero5JAAasignamos el valor de numero5 a n5 n* > numero*JAAasignamos el valor de numero* a n* op > operadorJAAasignamos el valor de operador a op 3atosSegundoPlano.set9extn5 = op = n*0JAAse envian los valores de las varia)les a la etiqueta
pu)lic static String calculoString numero5/ String numero*/ String operador0 LAA metodo calculo 3ou)le resultado > H.HJAAse crea varia)le tipo dou)le se iniciali"a en H String respuestaJAAse crea la varia)le respuesta if operador.equals600 LAAse identifica el valor del operador si es el signo 6 entrara a restar los valores de las varia)les n5 n*
resultado > 3ou)le.parse3ou)lenumero50 6 3ou)le.parse3ou)lenumero*0JAAse restan los valores de las varia)les n56n* if operador.equals=00 LAAse identifica el operador = resultado > 3ou)le.parse3ou)lenumero50 = 3ou)le.parse3ou)lenumero*0JAAse suman los valores de las varia)les n5=n* if operador.equals@00 LAAse identifica el operador @ resultado > 3ou)le.parse3ou)lenumero50 @ 3ou)le.parse3ou)lenumero*0JAAse multiplican los valores de las varia)les n5@n* if operador.equalsA00 LAAse identifica el operador A resultado > 3ou)le.parse3ou)lenumero50 A 3ou)le.parse3ou)lenumero*0JAAse dividen los valores de las varia)les n5An* respuesta > resultado.toString0JAAse guarda el valor de la vari)le resultado en la varia)le respuesta return respuestaJAAse retorna el valor de la varia)le respuesta AA)oton )orrar private void 2utton5#ctionPerformed2ava.awt.event.#ction,vent evt0 L String cadenaJAAse crea la varia)le cadena cadena > Mostrar3atos.get9ext0JAAse captura el contenido de la ca2a se guarda en la varia)le cadena if cadena.lengt%0 R H0 LAAse identifica que la cadena no este vacia cadena > cadena.su)stringH/ cadena.lengt%0 6 50JAAse guarda el valor de la cadena menos el ultimo elemento en la misma varia)le cadena Mostrar3atos.set9extcadena0JAAse envian los valores de la cadena a la ca2a de texto AA)otones limpiar ca2a etiqueta private void 2utton*#ctionPerformed2ava.awt.event.#ction,vent evt0 L Mostrar3atos.set9ext0JAAse envia cadena vacia a la ca2a
3atosSegundoPlano.set9ext0JAAse envia cadena vacia a la etiqueta AA )oton resta private void resta#ctionPerformed2ava.awt.event.#ction,vent evt0 L if XMostrar3atos.get9ext0.equals00 L numero5 > Mostrar3atos.get9ext0J operador > 6J
Mostrar3atos.set9ext0J String n5J n5 > numero5J 3atosSegundoPlano.set9extn5 = 60J
private void numtiplicacion#ctionPerformed2ava.awt.event.#ction,vent evt0 L if XMostrar3atos.get9ext0.equals00 L numero5 > Mostrar3atos.get9ext0J operador > @J
Mostrar3atos.set9ext0J String n5J n5 > numero5J 3atosSegundoPlano.set9extn5 = @0J
private void divicion#ctionPerformed2ava.awt.event.#ction,vent evt0 L if XMostrar3atos.get9ext0.equals00 L numero5 > Mostrar3atos.get9ext0J operador > AJ
Mostrar3atos.set9ext0J String n5J
n5 > numero5J 3atosSegundoPlano.set9extn5 = A0J
private void Mostrar3atos#ctionPerformed2ava.awt.event.#ction,vent evt0 L AA 93 add our %andling code %ere:
A@@ @ Nparam args t%e command line arguments @A pu)lic static void mainString argsYZ0 L A@ Set t%e Fim)us loo and feel @A AAQeditor6fold defaultstate>collapsed desc> &oo and feel setting code optional0 R A@ If Fim)us introduced in $ava S, E0 is not availa)le/ sta wit% t%e default loo and feel. @ Kor details see %ttp:AAdownload.oracle.comA2avaseAtutorialAuiswingAlooandfeelAplaf.%tml @A tr L for 2avax.swing.UIManager.&oo#ndKeelInfo 2avax.swing.UIManager.getInstalled&oo#ndKeels00 L
info
:
if Fim)us.equalsinfo.getFame000 L
2avax.swing.UIManager.set&oo#ndKeelinfo.getClassFame00J
)reaJ catc% ClassFotKound,xception ex0 L
2ava.util.logging.&ogger.get&oggercalculadoraKinal.class.getFame00.log2ava.util.logging.&e vel.S,V,?,/ null/ ex0J catc% Instantiation,xception ex0 L 2ava.util.logging.&ogger.get&oggercalculadoraKinal.class.getFame00.log2ava.util.logging.&e vel.S,V,?,/ null/ ex0J
catc% Illegal#ccess,xception ex0 L 2ava.util.logging.&ogger.get&oggercalculadoraKinal.class.getFame00.log2ava.util.logging.&e vel.S,V,?,/ null/ ex0J catc% 2avax.swing.Unsupported&oo#ndKeel,xception ex0 L 2ava.util.logging.&ogger.get&oggercalculadoraKinal.class.getFame00.log2ava.util.logging.&e vel.S,V,?,/ null/ ex0J
AAQAeditor6foldR
A@ Create and displa t%e form @A 2ava.awt.,vent[ueue.invoe&aternew ?unna)le0 L pu)lic void run0 L new calculadoraKinal0.setVisi)letrue0J 0J
AA Varia)les declaration 6 do not modif private 2avax.swing.$&a)el 3atosSegundoPlanoJ private 2avax.swing.$9extKield Mostrar3atosJ private 2avax.swing.$utton divicionJ private 2avax.swing.$utton igualJ private 2avax.swing.$utton 2utton5J private 2avax.swing.$utton 2utton*J private 2avax.swing.$utton numHJ private 2avax.swing.$utton num5J private 2avax.swing.$utton num*J private 2avax.swing.$utton num7J private 2avax.swing.$utton numJ private 2avax.swing.$utton numBJ private 2avax.swing.$utton numEJ
private 2avax.swing.$utton numDJ private 2avax.swing.$utton numJ private 2avax.swing.$utton numTJ private 2avax.swing.$utton numtiplicacionJ private 2avax.swing.$utton puntoJ private 2avax.swing.$utton restaJ private 2avax.swing.$utton sumaJ AA ,nd of varia)les declaration
$alidación
&a aplicaci'n que se desarrollo es la correcta al igual que su funcionalidad a que al mane2ar una interface/ su uso es intuitivo para el usuario.