Sunteți pe pagina 1din 33

2010

Elaboracin de una calculadora con conversor de unidades en Netbeans.

Echevarra Guibovich Estefana Gmez Ramrez Lesly


USP Facultad de Ingeniera Industrial Chimbote Julio del 2010

Paso 1: Creamos un nuevo proyecto:

Paso 2: En categora elegimos Java y en proyectos Java Application, luego damos clic en next:

Paso 3: Le ponemos nombre a nuestro proyecto y luego finalizar.

Paso 4: En la pestaa proyecto del lado izquierdo abrimos el men calculadora/Source Package/default Package, damos clic derecho y agregamos un nuevo JFrame Form.

Paso 5: Le asignamos un nombre a la clase y luego en finalizar.

Paso 6: En el cuadro de trabajo agregamos un Panel y lo extendemos en toda el rea de trabajo

Paso 7: Agregamos un campo de texto al rea de trabajo

Paso 8: Para editar el campo de texto agregado le damos clic derecho y luego en properties.

Paso 9: Cambiamos el tamao de la fuente a 18 y ponemos el texto en negrita, luego desmarcamos la casilla editable para no permitir escribir dentro del cuadro y cambiamos el fondo de esta a blanco.

Paso 10: Agregamos los botones, cambindoles el tamao segn convenga.

Paso 11: Seleccionamos el cuadro agregado y lo copiamos (ctrl+c) y luego pegamos varios (ctrl+v) ordenndolos y cambindoles el tamao hasta dar forma a la calculadora

Paso 12: Le damos clic derecho al primer botn y luego en Edit Text, y le damos el nombre que convenga.

Paso 13: Cambiamos el nombre a la variable en cada botn.

Paso 14: Hacer el mismo procedimiento de los pasos 12 y 13 en cada botn

Nombre del botn Text Field 1 2 3 4 5 6 7 8 9 0 c . (-) = sin cos tan x2 ex x-1 xy

Nombre de la variables pantalla uno dos tres cuatro cinco seis siete ocho nueve cero limpiar decimal neg pi igual seno coseno tangent cuadrado exponencial inverso exponentex

log ln CONVERSORES: c-f c-k f-c k-c sr km millas m - pies kg libras lt onzas

raizcuadrada logaritmo lognatural centfar centkel farcent kelcent sexarad kmetrosmillas metrospies kgramoslibras litrosonzas

Paso 15: Damos clic derecho al cuadro de texto y creamos un evento actionPerformed, esto generara un cdigo que se puede ver en la pestaa source, en el cual no agregaremos codificacin ya que slo mostrar los nmeros y resultados, mas no influir en las operaciones de la calculadora.

Paso 16: Creamos un evento de actionPerformed para el botn 1.

Paso 17: Para este botn agregamos la siguiente codificacin: pantalla.setText(pantalla.getText()+uno.getText()); El cdigo en negro muestra en la pantalla lo que est en parntesis, el cdigo de rojo adquiere el valor que se est mostrando en la pantalla, el cdigo en azul agrega el valor 1 a lo que ya se est mostrando en la pantalla. Este cdigo se repite para cada botn que entregue un valor numrico.

Paso 18: Creamos un actionPerformed para el botn C (limpiar), y agregamos el cdigo: pantalla.setText(); Muestra lo que aparece entre parntesis, limpia lo que se est mostrando en la pantalla

Paso 19: El botn (-), negar los valores que se muestran en la pantalla, para esto se tiene que adquirir el valor que se muestra en la pantalla y almacenarlo en una variable llamada negativo, el cual ser multiplicado por -1, para luego volver a mostrarlo en la pantalla: double negativo;

negativo=(Double.parseDouble(String.valueOf(pantalla.getText()))); negativo=negativo*(-1); pantalla.setText(String.valueOf(negativo));

Paso 20: Para el smbolo . llamado decimal, se tiene que tomar en cuenta que solo se debe presionar una sola vez para cada valor, para asegurarnos de que as sea usaremos una condicional que nos permita mostrar una sola vez el smbolo . Haciendo uso de una variable llamada decimalClick que almacenar si hemos hecho click al botn decimal. Int decimalClick;

if(decimalClick==0) { pantalla.setText(pantalla.getText() + decimal.setText()); decimalClick=1; } Se condiciona que no se haya dado click al botn decimal, si esto es as se mostrar el punto en la pantalla, y luego ponemos en 1 el valor de decimalClick para que no se vuelva a mostrar si se da click de nuevo al botn decimal.

Paso 21: Los botones de suma,resta, multiplicar y dividir tienen que efectuar el almacenamiento del valor que se muestre en la pantalla en una variable llamada valor1 y limpiar la pantalla para que sea ingresada la segunda variable con la que se efectuar la operacin y resetear el botn decimal para poder usarla en la segunda variable, al mismo tiempo se tiene que crear una variable que detecte si se ha hecho click a uno de estos botones para efectuar posteriormente la operacin. double valor1; int int int int sumaClick; restaClick; multiplicarClick; dividirClick;

valor1=(Double.parseDouble(String.valueOf(pantalla.getText()))); pantalla.setText(""); decimalClick=0; sumaClick=1; Este cdigo se repetir para los botones resta, multiplicar y dividir, cambiando slo la ltima lnea segn sea el caso.

Paso 22: Cuando presionamos el botn =, tenemos que almacenar lo que se est mostrando en la pantalla en una variable llamada valor2, y luego efectuar las operaciones necesarias segn el botn de clculo presionado anteriormente, almacenando este valor calculado en una variable llamada total para luego mostrarla en pantalla, reseteando en cada caso los valores almacenados en las variables valor1, valor2 y decimalClick, tambin debemos hacer la deteccin del click en el botn igual. double valor2; double total; int igualClick;

valor2=(Double.parseDouble(String.valueOf(pantalla.getText())));{ if(sumaClick==1) {total=valor1+valor2; pantalla.setText(String.valueOf(total)); valor1=0; valor2=0; sumaClick=0; } if(restaClick==1) {total=valor1-valor2; pantalla.setText(String.valueOf(total)); valor1=0; valor2=0; restaClick=0; } if(multiplicarClick==1) {total=valor1*valor2; pantalla.setText(String.valueOf(total)); valor1=0; valor2=0; multiplicarClick=0;}

if(dividirClick==1) {total=valor1/valor2; pantalla.setText(String.valueOf(total)); valor1=0; valor2=0; dividirClick=0; } decimalClick=0; igualClick=1;}

Paso 23: Cada vez que efectuamos una operacin al presionar el botn igual, debemos asegurarnos de que cuando volvamos a ingresar un nuevo valor, el resultado que se mostr en la pantalla de la operacin anterior sea borrado

para ingresar un valor nuevo, para esto haremos uso de una condicional en el igualClick en cada botn numrico y en el botn decimal: pantalla.setText(pantalla.getText()+uno.getText()); if(igualClick==1) {pantalla.setText(""); pantalla.setText(pantalla.getText()+uno.getText()); igualClick=0; } Este cdigo se repetir para cada botn numrico y en el botn decimal de la calculadora, variando solo el nombre de la variable del botn.

Paso 24: En el botn nos mostrara el valor 3.141592, tambin se detectar si se presion este botn, para esto usamos la siguiente codificacin:

int piClick;

pantalla.setText(String.valueOf(Math.PI)); piClick=1; decimalClick=0;

Paso 25: Para las operaciones trigonomtricas (seno, coseno y tangente) usaremos solo la variable valor1, el ingreso de este valor ser en grados sexagesimales por lo que mediante cdigo lo convertiremos en radianes y luego efectuaremos la operacin: valor1=(Double.parseDouble(String.valueOf(pantalla.getText()))); valor1=valor1*Math.PI/180; total=Math.sin(valor1); pantalla.setText(String.valueOf(total)); valor1=0; senoClick=1; decimalClick=0; Slo se cambiara el comando Math.sin por Math.cos y Math.tan segn sea el caso, asi como las variables para detectar los clicks.

Paso 26: Para las siguientes cuatro operaciones tambin se usarn tan solo la variable valor 1, estas son: Raz Cuadrada (RaizCuadrada), logaritmo (logaritmo), logaritmo natural (lognatural), y psilon a la x (exponencial), se detectaran los clicks en cada una de ellas y el nico cambio en las codificaciones sern la operacin matemtica y los clicks que estn de color rojo: valor1=(Double.parseDouble(String.valueOf(pantalla.getText()))); total=Math.sqrt(valor1); pantalla.setText(String.valueOf(total)); valor1=0; raizCuadradaClick=1; decimalClick=0; logaritmo (Math.log), lognatural (Math.log1p), exponencial (Math.exp)

Paso 27: Los botones de x2 y x-1 tienes parecida codificacin, solo cambia la operacin y los nombres de las variables que detectan los clicks. valor1=(Double.parseDouble(String.valueOf(pantalla.getText()))); total=valor1*valor1; pantalla.setText(String.valueOf(total)); valor1=0; cuadradoClick=1; decimalClick=0; valor1=(Double.parseDouble(String.valueOf(pantalla.getText()))); total=1/valor1; pantalla.setText(String.valueOf(total)); valor1=0; inversoClick=1; decimalClick=0;

Paso 28: Para el botn xy usaremos las 2 variables valor1 y valor2, por lo que se usara el botn = para obtener el resultado final, tambin se detectara el Click. valor1=(Double.parseDouble(String.valueOf(pantalla.getText()))); pantalla.setText(""); exponenteXClick=1; decimalClick=0;

Paso 29: Para los botones restantes que usarn para convertir unidades la codificacin es similar, para todos se crearn variables que detecten los Clicks, por lo que lo nico que variar en la codificacin ser lo que se muestra en rojo: valor1=(Double.parseDouble(String.valueOf(pantalla.getText()))); total=((valor1*9/5)+32); pantalla.setText(String.valueOf(total)); valor1=0; centfarClick=1; decimalClick=0; De centgrados a Fahrenheit: F=(C*9/5)+32 De Fahrenheit a centgrados: C=(F-32)*5/9 De centgrados a Kelvin: K=C+273 De kelvin a centgrados: C=K-273

De sexagesimales a radianes: R=S*/180 De kilmetros a millas: Mi=Km*0.62 De metros a pies:

Pies=m*3.28 De kilogramos a libras: Li=Kg*2.21 De litros a onzas: Oz=Lt*33.82

Paso 30: La codificacin hecha en el paso 23 se tiene que repetir para las operaciones que solo usan una sola variable, para lo cual se agregar a la

codificacin del paso 23 todos los clicks detectados de los botones que operan con una sola variable: pantalla.setText(pantalla.getText()+uno.getText()); if(igualClick==1 | senoClick==1 | cosenoClick==1 | tangenteClick==1 | raizCuadradaClick==1 |logaritmoClick==1 |lognaturalClick==1 | cuadradoClick==1 | inversoClick==1 | exponencialClick==1 | centfarClick==1 | centkelClick==1 | farcentClick==1 | kelcentClick==1 | sexaradClick==1 | kmetrosmillasClick==1 | metrospiesClick==1 | kgramoslibrasClick==1 | litrosonzasClick==1) {pantalla.setText(""); pantalla.setText(pantalla.getText()+uno.getText()); igualClick=0; senoClick=0; cosenoClick=0; tangenteClick=0; raizCuadradaClick=0; logaritmoClick=0; lognaturalClick=0; cuadradoClick=0; inversoClick=0; exponencialClick=0; centfarClick=0; centkelClick=0; farcentClick=0; kelcentClick=0; sexaradClick=0; kmetrosmillasClick=0; metrospiesClick=0; kgramoslibrasClick=0; litrosonzasClick=0; }

S-ar putea să vă placă și