Vous êtes sur la page 1sur 8

EDGAR M. JAMANCA ANTONIO ING.

QUIMICA

Estructura de Datos

ESTRUCTURAS CONDICIONALES EJEMPLO DE APLICACIN: Disee el siguiente formulario utilizando los controles correspondientes.
Indicaciones: Se solicita el ingreso del nombre del producto, precio y cantidad. Muestre el producto, importe de compra, descuento e importe final. Importe Inicial Descuento <0 50] 5% <50 100] 10% <100 200] 20% BOTON Nuevo

SOLUCION:
BOTON Mostrar
private void btnMostrarActionPerformed(java.awt.event.ActionEvent evt) {

private void btnNuevoActionPerformed(java.awt.event.ActionEvent evt) {

//Declarar variables segn el tipo de dato a almacenar String prod=this.txtProd.getText(); double prec=Double.parseDouble(this.txtPrec.getText()); int cant=Integer.parseInt(this.txtCant.getText()); //Calcular el importe inicial de la venta double imp_ini=prec * cant; //Se calcula descuento segn importe de compra double d=0; BOTON Cerrar if (imp_ini>0 && imp_ini<=50) { private void btnCerrarActionPerformed (java.awt.event.ActionEvent evt) d=0.05 * imp_ini; { System.exit(0); } } else { if (imp_ini>50 && imp_ini<=100) { EJERCICIO PROPUESTO d=0.10 * imp_ini; } else { d=0.20 * imp_ini; } } //Calcular el importe final a pagar double IF=imp_ini - d; //Mostrar resultados obtenidos this.lblProd.setText(prod); this.lblImpInic.setText(imp_ini+""); this.lblDscto.setText(d+""); Ingrese el nombre del empleado, sueldo bsico y la this.lblImpFinal.setText(IF+""); cantidad de aos que labora en la empresa. Se calcula su }

//Asigna una cadena vaca a cada control indicado this.txtProd.setText(""); this.txtPrec.setText(""); this.txtCant.setText(""); this.lblProd.setText(""); this.lblImpInic.setText(""); this.lblDscto.setText(""); this.lblImpFinal.setText(""); //Ubica el cursor en la primera caja de texto this.txtProd.requestFocus(); }

bonificacin en base al tiempo de servicio: menos de 5 aos 5%, entre 5 y 10 aos 8%, ms de 10 aos el 10%. Estos porcentajes se calculan en base al sueldo bsico.

EDGAR M. JAMANCA ANTONIO ING. QUIMICA

Estructura de Datos

ESTRUCTURAS CONDICIONALES: CONTROLES JRADIOBUTTON JCHECKBOX JRADIOBUTTON (Botn de Opcin): Este control se utiliza cuando se debe escoger una sola opcin de varias posibles. Evento Principal: ActionPerformed, se ejecuta cuando se selecciona un determinado radio. Mtodo Principal: isSelected, devuelve true si esta seleccionado, caso contrario devuelve false. Nota: Para poder seleccionar slo uno de los radios, tienen que estar agrupados, entonces debemos utilizar el control ButtonGroup (Grupo de Botones). JCHECKBOX (Casilla de Activacin): Este control permite activar varias alternativas de las propuestas. Evento Principal: ActionPerformed, se ejecuta cuando se activa una determinada casilla. Mtodo Principal: isSelected, devuelve true si esta activado, caso contrario devuelve false. EJEMPLO DE APLICACIN.
BOTON Calcular
private void btnCalcularActionPerformed(java.awt.event.ActionEvent evt) { //Declarar variables segn el tipo de dato a almacenar String Pro=this.txtProd.getText(); double Pre=Double.parseDouble(this.txtPrecio.getText()); int Can=Integer.parseInt(this.txtCantidad.getText()); //Calcular el importe inicial de la venta double ImpIni=Pre*Can; //Calcular Descuento Segun Procedencia double DctoProc; if (this.rbnNacinal.isSelected()) { DctoProc=ImpIni*0.10; } else { DctoProc=ImpIni*0.05; } //Calcular Descuento Adicional double DctoAdic; if (this.ckbDctoAdic.isSelected()) { DctoAdic=ImpIni*0.05; } else { DctoAdic=0.00; } //Calculamos el Total a Pagar double TP=ImpIni-DctoProc-DctoAdic; //Mostramos resulatados Obtenidos this.lblProd.setText(Pro);

SOLUCION:
BOTON Nuevo
//Asigna una cadena vaca a cada control indicado this.txtProd.setText(""); this.txtPrecio.setText(""); this.txtCantidad.setText(""); this.lblProd.setText(""); this.lblImportInic.setText(""); this.lbldsctoxProc.setText(""); this.lbldsctoAdic.setText(""); this.lblTotalPag.setText(""); //Ubica el cursor en la primera caja de texto this.txtProd.requestFocus(); //Muestra seleccionado del Primer Jradiobutton this.rbnNacinal.setSelected(true); //Desactivamos el jCheckbox this.ckbDctoAdic.setSelected(false); }

this.lblImportInic.setText(ImpIni+""); this.lbldsctoxProc.setText(DctoProc+""); this.lbldsctoAdic.setText(DctoAdic+""); this.lblTotalPag.setText(TP+"");

} BOTON Cerrar
private void BtnCerrarActionPerformed(java.awt.event.ActionEvent evt) { System.exit(0); }

EJEMPLO DE APLICACIN (EVENTO ActionPerformed)

EDGAR M. JAMANCA ANTONIO ING. QUIMICA

Estructura de Datos

El evento actionperformed, se ejecuta cuando se selecciona un determinado botn de opcin. En esta aplicacin se ingresa el nombre del alumno y al seleccionar el turno de estudios se muestra el alumno registrado junto al pago por matricula segn turno seleccionado.

SOLUCION :
JRADIOBUTTON maana
private void rbtMaanaActionPerformed (java.awt.event.ActionEvent evt) { String A=this.txtAlumno.getText(); this.lblCostMatric.setText("160"); this.lblAlumno.setText(A); }

JRADIOBUTTON Noche
private void rbttardeActionPerformed (java.awt.event.ActionEventevt) { String A=this.txtAlumno.getText(); this.lblCostMatric.setText("120"); this.lblAlumno.setText(A); }

JRADIOBUTTON Tarde
private void rbttardeActionPerformed (java.awt.event.ActionEventevt) { String A=this.txtAlumno.getText(); this.lblCostMatric.setText("140"); this.lblAlumno.setText(A); }

EJERCICIO PROPUESTO

ESTRUCTURAS REPETITIVAS
Este tipo de estructuras consisten en ejecutar un bloque de cdigo un determinado nmero de veces, a cada una de stas repeticiones se le denomina bucle o ciclo.

EDGAR M. JAMANCA ANTONIO ING. QUIMICA

Estructura de Datos

CONTADOR: Tiene la funcin de contar un determinado suceso en cada ciclo de la estructura. Generalmente, la variable contador es de tipo entero, su valor inicial es 0 y su valor se incrementa en 1 por cada bucle que se ejecuta. ACUMULADOR: Tiene la funcin de sumar una determinada variable en cada ciclo de la estructura. Generalmente, tiene valor inicial 0 y el tipo de dato depende de la variable a acumular. ESTRUCTURA FOR: Sintaxis for(int variable=valor inicial; valor final; incremento/decremento){ //instruccin(es) } ESTRUCTURA WHILE: Sintaxis: ESTRUCTURA DO-WHILE: Sitaxis While(condicin){ do{ //instruccin(es) //instruccin(es) } }while(condicin);

EJEMPLO DE APLICACIN:

Utilizando Estructura FOR

private void btnEvaluarActionPerformed(java.awt.event.ActionEvent evt) { // Captura el nmero ingresado int num=Integer.parseInt(this.txtNumero.getText()); int cd=0;//contador de divisores //Estructura repetiva for for (int i = 1; i <= num; i++) { if(num%i==0) cd=cd+1; } //verifica si solo tiene 2 divisores if (cd==2) { Nmero Primo, se le denomina a aquel this.lblResultado.setText("EL "+num+" ES UN NUMERO PRIMO"); nmero entero que slo tiene 2 divisores: la } else { unidad y el mismo nmero. this.lblResultado.setText("EL "+num+" NO ES UN NUMERO PRIMO"); } }

Utilizando Estructura WHILE


private void btnEvaluarActionPerformed(java.awt.event.ActionEvent evt) { // Captura el nmero ingresado int num=Integer.parseInt(this.txtNumero.getText()); int cd=0,i=1; //Estructura repetiva while while(i<=num) { if(num%i==0){ cd=cd+1;} i++;//incrementa el contador en 1 } //verifica si solo tiene 2 divisores if (cd==2) { this.lblResultado.setText("EL "+num+" ES UN NUMERO PRIMO"); } else { this.lblResultado.setText("EL "+num+" NO ES UN NUMERO PRIMO"); } }

Utilizando Estructura DO-WHILE


private void btnEvaluarActionPerformed(java.awt.event.ActionEvent evt) { // Captura el nmero ingresado int num=Integer.parseInt(this.txtNumero.getText()); int cd=0,i=1; //Estructura repetiva do while do { if(num%i==0){ cd=cd+1;} i++;//incrementa el contador en 1 }while(i<=num); //verifica si solo tiene 2 divisores if (cd==2) { this.lblResultado.setText("EL "+num+" ES UN NUMERO PRIMO"); } else { this.lblResultado.setText("EL "+num+" NO ES UN NUMERO PRIMO"); } }

EDGAR M. JAMANCA ANTONIO ING. QUIMICA

Estructura de Datos

CONTROL JLIST
Se utiliza para mostrar un listado de datos, permitiendo seleccionar uno o ms de los mismos para realizar algn tipo de operacin. Clase DefaultListModel: Esta clase se debe importar para crear una instancia (objeto) de la misma y luego asociarlo al control jlist del formulario. Importacin de la clase: import javax.swing.DefaultListModel; Creacin de una Instancia: DefaultListModel obj=new DefaultListModel(); Nota: La importacin de la clase se realiza despus del nombre del paquete. El objeto (obj) puede tener cualquier nombre. Se debe crear una instancia por cada control jList utilizado en el formulario. Principales Mtodos de una Instancia (objeto): Contains: Verifica si un elemento se encuentra registrado en una determinada instancia addElement: Adiciona un elemento a una instancia. remove: Elimina un elemento de una instancia. getElementAt: Captura el elemento de una instancia correspondiente al ndice seleccionado en una lista. getSize: Captura la cantidad de elementos que contiene una instancia. Principales Eventos y Mtodos del control jList: Evento ValueChanged: Este evento se ejecuta cuando se selecciona un determinado elemento de una lista. Mtodo getSelectedIndex: Captura el ndice correspondiente al elemento seleccionado en una lista. Mtodo setModel: Asigna una instancia (objeto) a un control jList. APLICACIN EJEMPLO: Siga las instrucciones del docente para importar las libreras y clases correspondientes, as como para crear la instancia a utilizar en este formulario.

Boton Registrar
private void btnRegistrarActionPerformed(java.awt.event.ActionEvent evt) { //Captura nombre del curso digitado String curso=this.txtCurso.getText(); //Verifica campo de texto vacio if (curso.equals("")) { JOptionPane.showMessageDialog(this,"IngreseCurso", "Atencin!!!",JOptionPane.INFORMATION_MESSAGE); this.txtCurso.requestFocus(); } else { if (this.objCursos.contains(curso)) { JOptionPane.showMessageDialog(this,curso.toUpperCase()+" ya se encuentra El control jList tiene asignado por defecto registrado","Atencin!!!",JOptionPane.INFORMATION_MESSAGE); Items del 1 al 5, hay que eliminar stos tems this.txtCurso.setText(""); antes de codificar. Ubique la propiedad this.txtCurso.requestFocus(); model y suprima el listado de tems. } else { //Agrega dato al objeto creado Botn Cerrar this.objCursos.addElement(curso); private void //Asigna el objeto al control jlist brnCerrarActionPerformed(java.awt.event.ActionEvent this.lstCursos.setModel(objCursos); evt) { //Captura el tamao del objeto(cantidad de elementos) int rpta=JOptionPane.showConfirmDialog(this,"Estas int cant=this.objCursos.getSize(); Seguro?","Salir",JOptionPane.YES_NO_OPTION); //Muestra cantidad en la etiqueta if(rpta==0) this.lblTotal.setText(cant+""); System.exit(0); //Limpia y ubica el cursor en la caja de texto } this.txtCurso.setText(""); this.txtCurso.requestFocus(); } } }

EDGAR M. JAMANCA ANTONIO ING. QUIMICA

Estructura de Datos

Botn Eliminar
private void btnEliminarActionPerformed(java.awt.event.ActionEvent evt) { //Captura tamao del modelo int cant=this.objCursos.getSize(); //Captura ndice del elemento seleccionado int i=this.lstCursos.getSelectedIndex(); //Verifica si la lista esta vacia if (cant==0) { JOptionPane.showMessageDialog(this,"No Existen Elementos","Atencin!!!",JOptionPane.INFORMATION_MESSAGE); this.txtCurso.requestFocus(); } else { if (i<0) {//verifica si no seleccion elemento JOptionPane.showMessageDialog(this,"Seleccione Elemento","Atencin!!!",JOptionPane.INFORMATION_MESSAGE); this.txtCurso.requestFocus(); } else { //Elimina elemento correspondiente al ndice this.objCursos.remove(i); //Captura y asigna cantidad de elementos this.lblTotal.setText(this.objCursos.getSize()+""); } } }

APLICACIN PROPUESTA I

APLICACIN PROPUESTA II

EDGAR M. JAMANCA ANTONIO ING. QUIMICA

Estructura de Datos

ARREGLOS UNIDIMENSIONALES METODOS DE ORDENAMIENTO Un arreglo es una estructura que tiene la caracterstica de almacenar un conjunto de datos del mismo tipo. A los datos almacenados en un arreglo se puede acceder haciendo uso del ndice o posicin (valor entero que inicia en 0 y termina en una unidad menor al tamao del arreglo). El tamao de un arreglo indica la cantidad de elementos que contiene el arreglo. Utilice el mtodo length. Declaracin de un Arreglo: TipoDato NombreArreglo[]=new TipoDato[Tamao] APLICACIN EJEMPLO 1
Este mtodo consiste en acomodar el arreglo moviendo el mayor hasta la ltima posicin comenzando desde la posicin cero del arreglo hasta haber acomodado el nmero ms grande en la ltima posicin, una vez acomodado el ms grande, prosigue a encontrar y acomodar el siguiente ms grande comparando de nuevo los nmeros desde el inicio del arreglo, y as sigue hasta ordenar todo los elementos del arreglo.

Objetos utilizados: DefaultListModel objLista1=new DefaultListModel(); DefaultListModel objLista2=new DefaultListModel();

private void btnAgregarActionPerformed(java.awt.event.ActionEvent evt) { double num=Double.parseDouble(this.txtNum.getText()); this.objLista1.addElement(num); this.lstLista1.setModel(objLista1); this.txtNum.setText(""); this.txtNum.requestFocus(); } ORDEN ASCENDENTE private void rbtAscActionPerformed(java.awt.event.ActionEvent evt) { this.objLista2.clear();//Limpia el control lstLista2 int cant=this.objLista1.getSize(); //Declaramos arreglo de "cant" elementos double A[]=new double[cant]; //Agrega al arreglo cada elemento del objeto objLista1 for (int i = 0; i < A.length; i++) { A[i]=Double.parseDouble(this.objLista1.getElementAt(i).toString());} //Declara variable auxiliar double aux; //Utilizamos mtodo de ordenamiento Burbuja for (int i = 0; i < A.length; i++) { for (int j = i+1; j < A.length; j++) { if(A[i]>A[j]){ aux=A[i]; A[i]=A[j]; A[j]=aux; } } } //Agrega los elementos ordenados al objeto objLista2 for (int i = 0; i < A.length; i++) { this.objLista2.addElement(A[i]); } this.lstLista2.setModel(objLista2); }

ORDEN DESCENDENTE private void rbtDescActionPerformed(java.awt.event.ActionEven t evt) { this.objLista2.clear();//Limpia el control lstLista2 int cant=this.objLista1.getSize(); //Declaramos arreglo de "cant" elementos double A[]=new double[cant];
//Agrega al arreglo cada elemento del objeto objLista1

for (int i = 0; i < A.length; i++) { A[i]=Double.parseDouble(this.objLista1.getElement At(i).toString());} //Declara variable auxiliar double aux; //Utilizamos mtodo de ordenamiento Burbuja for (int i = 0; i < A.length; i++) { for (int j = i+1; j < A.length; j++) { if(A[i]>A[j]){ aux=A[i]; A[i]=A[j]; A[j]=aux; } } }
//Agrega los elementos ordenados al objeto objLista2

for (int i = 0; i < A.length; i++) { this.objLista2.addElement(A[i]); } this.lstLista2.setModel(objLista2); }

EDGAR M. JAMANCA ANTONIO ING. QUIMICA


APLICACIN EJEMPLO 2

Estructura de Datos

Objetos utilizados: DefaultListModel objnom=new DefaultListModel(); DefaultListModel objaux=new DefaultListModel(); BOTON AGREGAR: private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { String nombre=this.jTextField1.getText(); if (nombre.equals("")) { JOptionPane.showMessageDialog(this,"Digite Nombre", "Atencion",JOptionPane.INFORMATION_MESSAGE); this.jTextField1.requestFocus(); } else { if (this.objnom.contains(nombre)) { JOptionPane.showMessageDialog(this,"Nombre se encuentra registrado","Atencion", JOptionPane.INFORMATION_MESSAGE); this.jTextField1.setText("");this.jTextField1.requestFocus(); BOTON QUITAR } else { private void jButton2ActionPerformed(java.awt.event.ActionEvent this.objnom.addElement(nombre); evt) { this.jList1.setModel(objnom); int i=this.jList1.getSelectedIndex(); this.jLabel3.setText(this.objnom.getSize()+""); int cant=this.objnom.getSize(); this.jTextField1.setText(""); if (cant==0) { this.jTextField1.requestFocus();} } } JOptionPane.showMessageDialog(this,"Registro en Blanco","Atencion",JOptionPane.INFORMATION_MESSAGE); BOTON ORDENAR this.jTextField1.requestFocus(); private void jButton4ActionPerformed(java.awt.event.ActionEvent } else { evt) { if (i<0) { this.objaux.clear(); JOptionPane.showMessageDialog(this,"Seleccione //agregar a un arreglo los elementos de una lisa Nombre","Atencion",JOptionPane.INFORMATION_MESSAGE); int cant=this.objnom.getSize(); } else { String nombres[]=new String [cant]; this.objnom.remove(i); for (int i=0;i<cant;i++){ this.jLabel3.setText(this.objnom.getSize()+""); } } } nombres[i]=this.objnom.getElementAt(i).toString(); } if(this.jRadioButton1.isSelected()){//orden ascendente for(int i=0;i<cant;i++){ for(int j=i+1;j<cant;j++){ if(nombres[i].compareTo(nombres[j])>0){//compara dos cadenas String name=nombres[i]; nombres[i]=nombres[j]; nombres[j]=name; } } }else{ //orden descendente for(int i=0;i<cant;i++){ for(int j=i+1;j<cant;j++){ if(nombres[i].compareTo(nombres[j])<0){//compara dos cadenas String name=nombres[i]; nombres[i]=nombres[j]; nombres[j]=name; } } } } //agrega a objaux el contenido del arreglo for(int i=0;i<cant;i++){ this.objaux.addElement(nombres[i]); } //asignamos el objaux a la lista Ordenar por: Nombre, Promedio this.jList2.setModel(objaux); Considere validaciones en los diferentes controles del this.jLabel5.setText(this.objaux.getSize()+""); formulario. }

Vous aimerez peut-être aussi