SlideShare une entreprise Scribd logo
1  sur  10
Ordenando en un Arreglo de Objetos
La ordenación en un arreglo de Objetos es algo que ayuda mucho en el manejo de la
información. Existen varios algoritmos de ordenación que se pueden utilizar, dependiendo de
las necesidades.
El más sencillo que manejaremos aquí es el de Burbuja.
En este algoritmo se utiliza un ciclo anidado en el que la primera variable i, empieza desde el
valor 0 ( el primer elemento del arreglo) y llega hasta el penúltimo elemento (n-1) que sería,
y la segunda variable j, empieza desde un numero mas que la i y se va aumentando hasta
llegar a ser igual a n (el ultimo elemento).
En cada iteración se compara el valor a ordenar (dentro del objeto) de la posición i con
respecto a la posición j, de tal manera que en la primer barrida (ciclo de i) toma el elemento
mas pequeño y lo deja en ultima posición, en la segunda barrida, toma el siguiente más
pequeño de los que quedaron y lo deja en la penúltima posición y así sucesivamente.
Observemos el algoritmo y después el ejemplo:
for (int i=0; i < n-1; i++ ) {
for (int j=i+1; j<n; j++) {
if (valor[i] > valor[j]) {
temp = valor[i];
valor[i] = valor[j];
valor[j] = temp;
}
}
}
Ejemplo.
Si tenemos el arreglo conformado por los números
120 15 135 12 8 0
Se compara 120 y 15 y se voltean
15 120 135 12 8 0
Se compara 15 y 135 y no hay cambio
15 120 135 12 8 0
Se compara 15 y 12 y se voltean
12 120 135 15 8 0
III. Desarrollo de aplicaciones con manejo
de datos en la memoria
Se compara 12 y 8 y se voltean
8 120 135 15 12 0
Se compara 8 y 0 y se voltean
0 120 135 15 12 8
En esta primera vuelta el 0 queda como primer elemento. Ahora i vale 1 y se continúa con el
ciclo de adentro, comparando desde la posición 1 en el arreglo hasta la última:
0 120 135 15 12 8
Se comparan 120 y 135 y se quedan igual
0 120 135 15 12 8
Se comparan 120 y 15 y se voltean
0 15 135 120 12 8
Se comparan 15 y 12 y se voltean
0 12 135 120 15 8
Se comparan 12 y 8 y se voltean
0 8 135 120 15 12
En esta segunda vuelta el 8 queda en la segunda posición y ahora continuamos con la tercera
vuelta:
0 8 135 120 15 12
0 8 120 135 15 12
0 8 15 135 120 12
0 8 12 135 120 15
En la tercera vuelta el 12 queda en la tercera posición, continuamos:
0 8 12 135 120 15
0 8 12 120 135 15
0 8 12 15 135 120
En la cuarta vuelta el 15 queda en la posición 4, continuamos:
0 8 12 15 135 120
0 8 12 15 120 135
En la quinta y ultima vuelta se compararon el 120 y el 135 y se cambian y ya queda
automáticamente el arreglo ordenado.
Veamos la clase Cuenta y la aplicación con el algoritmo pero expuesto en el arreglo de
objetos.
Clase Cuenta
public class Cuenta {
private String nombre; // nombre del cliente
private int numero; // numero de la cuenta
private double saldo; // saldo de la cuenta
// método para construir una cuenta vacía
public Cuenta() {
nombre = “”;
numero = 0;
saldo = 0.0d;
}
// método para construir una cuenta con valores
public Cuenta(int numero, String nombre, double saldo) {
this.nombre = nombre;
this.numero = numero;
this.saldo = saldo;
}
// método que te dá el nombre de la cuenta
public String obtenNombre() {
return nombre;
}
// método que te dá el número de la cuenta
public int obtenNumero() {
return numero;
}
// método que te dá el saldo de una cuenta
public double obtenSaldo() {
return saldo;
}
// método que sirve para cambiar el valor del nombre
public void cambiaNombre(String nombre) {
this.nombre = nombre;
}
// método que sirve para cambiar el valor del saldo
public void cambiaNumero(int numero) {
this.numero = numero;
}
// método que sirve para cambiar el valor del saldo
public void cambiaSaldo(double saldo) {
this.saldo = saldo;
}
// método para depositar
public void deposita(double cantidad) {
cambiaSaldo(obtenSaldo() + cantidad);
}
// método para retirar
public boolean retira(double cantidad) {
if (cantidad <= obtenSaldo()) {
cambiaSaldo(obtenSaldo() - cantidad);
return true;
}
return false;
}
}
Clase de la Aplicación
import java.io.*;
public class AplicacionArrObjeto2 {
private static Cuenta arreglo[];
// para pedir los valores de teclado de el arreglo de cuentas ya creada
public static void pide_arreglo() throws IOException{
BufferedReader in =
new BufferedReader(new InputStreamReader(System.in));
int n;
int numero;
String nombre;
double saldo;
System.out.println("¿Cuantos objetos deseas crear?");
n = Integer.parseInt(in.readLine());
// creamos el arreglo de cuentas
arreglo = new Cuenta[n];
// pedimos cada valor para crear un objeto cuenta
for (int i=0; i<n; i++) {
System.out.print("Da el numero de la cuenta " + (i+1)+ " : ");
numero = Integer.parseInt(in.readLine());
System.out.print("Da el nombre de la cuenta " + (i+1)+ " : ");
nombre = in.readLine();
System.out.print("Da el saldo de la cuenta " + (i+1)+ " : ");
saldo = Double.parseDouble(in.readLine());
// se crea el objeto de la clase Cuenta como elemento del arreglo
arreglo [i] = new Cuenta(numero, nombre, saldo);
}
}
// para desplegar los datos del arreglo de cuentas
public static void despliega_arreglo() {
System.out.println("Numero Nombre Saldo");
for (Cuenta objeto : arreglo) {
System.out.println(" " + objeto.obtenNumero() + " " +
objeto.obtenNombre() + " " + objeto.obtenSaldo());
}
}
// obteniendo la suma de los saldos de todas las cuentas
public static double suma() {
double total = 0.0d;
for (Cuenta objeto : arreglo) {
total += objeto.obtenSaldo();
}
return total;
}
// para calcular el promedio de la matriz cualquiera que sea
public static double promedio() {
double total = 0.0d;
for (Cuenta objeto : arreglo) {
total += objeto.obtenSaldo();
}
return total/arreglo.length;
}
// pedir un saldo y desplegar que tienen un saldo mayor o igual
public static void despliega_saldos() throws IOException{
BufferedReader in =
new BufferedReader(new InputStreamReader(System.in));
System.out.println("¿Arriba de cual saldo?");
double saldo = Double.parseDouble(in.readLine());
// buscamos en cada objeto Cuenta del arreglo
for (Cuenta objeto : arreglo) {
if (objeto.obtenSaldo() >= saldo) {
System.out.println(" Nombre " + objeto.obtenNombre() +
" Cuenta " + objeto.obtenNumero() +
" Saldo " + objeto.obtenSaldo());
}
}
}
// ordenamos el arreglo en base al numero de cuenta
public static void ordena() throws IOException{
for (int i=0; i < arreglo.length-1; i++ ) {
for (int j=i+1; j<arreglo.length; j++) {
if (arreglo[i].obtenNumero() > arreglo[j].obtenNumero()) {
Cuenta temp = arreglo[i];
arreglo[i] = arreglo[j];
arreglo[j] = temp;
}
}
}
}
public static void main(String[] args) throws IOException {
char opcion;
BufferedReader in =
new BufferedReader(new InputStreamReader(System.in));
arreglo = null;
opcion = ' ';
while (opcion != '7') {
System.out.println(" Menu de Cuentas");
System.out.println();
System.out.println("1. Pedir datos para crear Cuentas");
System.out.println("2. Desplegar todas las cuentas");
System.out.println("3. Desplegar Suma de los saldos");
System.out.println("4. Desplegar Promedio de los saldos");
System.out.println("5. Desplegar Cuentas arriba de un Saldo");
System.out.println("6. Desplegar Cuentas arriba de un Saldo");
System.out.println("7. Fin");
System.out.println("¿Opcion deseada (1-7) ?");
opcion = in.readLine().charAt(0);
switch (opcion) {
case ('1') :
System.out.println("Pidiendo datos arreglo Cuentas");
pide_arreglo();
System.out.println(" " + arreglo.length);
break;
case ('2') :
System.out.println("Desplegando arreglo de Cuentas");
despliega_arreglo();
break;
case ('3') :
System.out.println("Suma de los saldos = " + suma());
break;
case ('4') :
System.out.println("Promedio de los saldos = " + promedio());
break;
case ('5') :
System.out.println("Desplegando Cuentas arriba de saldo");
despliega_saldos();
break;
case ('6') :
System.out.println("Ordenando Cuentas por numero");
ordena();
break;
case ('7') :
System.out.println("Hasta Luego!");
break;
default:
System.out.println("Opcion debe ser de 1 a 5");
break;
};
}
}
}
Entre lo que despliega esta aplicación tenemos
Opción 1.-
Opción 2.-
Opción 3.-
Opción 4.-
Opción 5.-
Opción 6.-
Para corroborar que se ordeno usamos la opción 2 de nuevo
Y finalmente opción 7

Contenu connexe

Tendances

Aplicación de arreglos bidimensionales
Aplicación de arreglos bidimensionalesAplicación de arreglos bidimensionales
Aplicación de arreglos bidimensionales
marigelcontreras
 
Actividad 2 programacion orientada a objetos jaren gonzalez
Actividad 2 programacion orientada a objetos  jaren gonzalezActividad 2 programacion orientada a objetos  jaren gonzalez
Actividad 2 programacion orientada a objetos jaren gonzalez
Cristian J Malambo M
 
Clase 9- programacion
Clase 9- programacionClase 9- programacion
Clase 9- programacion
diego MC
 
Arreglos
ArreglosArreglos
Arreglos
lichic
 
3 desarollo manejo datos capitulo 2 -01 arreglos dos dimensiones (2)
3 desarollo manejo datos capitulo 2 -01 arreglos dos dimensiones (2)3 desarollo manejo datos capitulo 2 -01 arreglos dos dimensiones (2)
3 desarollo manejo datos capitulo 2 -01 arreglos dos dimensiones (2)
luis freddy
 
Arreglos en pseudocodigo 01
Arreglos en pseudocodigo 01Arreglos en pseudocodigo 01
Arreglos en pseudocodigo 01
Emerson Garay
 

Tendances (20)

Elementos de un arreglo
Elementos de un arregloElementos de un arreglo
Elementos de un arreglo
 
Arreglos unidimensionales
Arreglos unidimensionalesArreglos unidimensionales
Arreglos unidimensionales
 
Arreglos aleatorios visual Basic 6.0
Arreglos aleatorios visual Basic 6.0Arreglos aleatorios visual Basic 6.0
Arreglos aleatorios visual Basic 6.0
 
Arreglos unidimensionales
Arreglos unidimensionalesArreglos unidimensionales
Arreglos unidimensionales
 
Arreglos, Procedimientos y Funciones
Arreglos, Procedimientos y FuncionesArreglos, Procedimientos y Funciones
Arreglos, Procedimientos y Funciones
 
7.arreglos en java
7.arreglos en  java7.arreglos en  java
7.arreglos en java
 
Aplicación de arreglos bidimensionales
Aplicación de arreglos bidimensionalesAplicación de arreglos bidimensionales
Aplicación de arreglos bidimensionales
 
7.arreglos y vectores en c++
7.arreglos y vectores en c++7.arreglos y vectores en c++
7.arreglos y vectores en c++
 
Matrices pseint
Matrices   pseintMatrices   pseint
Matrices pseint
 
Bucles compuestos ejercicios en código java
Bucles compuestos ejercicios en código javaBucles compuestos ejercicios en código java
Bucles compuestos ejercicios en código java
 
Actividad 2 programacion orientada a objetos jaren gonzalez
Actividad 2 programacion orientada a objetos  jaren gonzalezActividad 2 programacion orientada a objetos  jaren gonzalez
Actividad 2 programacion orientada a objetos jaren gonzalez
 
Arreglos
ArreglosArreglos
Arreglos
 
Arreglos c++
Arreglos c++Arreglos c++
Arreglos c++
 
Recuperacion programas
Recuperacion programasRecuperacion programas
Recuperacion programas
 
Clase 9- programacion
Clase 9- programacionClase 9- programacion
Clase 9- programacion
 
Arreglos
ArreglosArreglos
Arreglos
 
3 desarollo manejo datos capitulo 2 -01 arreglos dos dimensiones (2)
3 desarollo manejo datos capitulo 2 -01 arreglos dos dimensiones (2)3 desarollo manejo datos capitulo 2 -01 arreglos dos dimensiones (2)
3 desarollo manejo datos capitulo 2 -01 arreglos dos dimensiones (2)
 
Arreglos en pseudocodigo 01
Arreglos en pseudocodigo 01Arreglos en pseudocodigo 01
Arreglos en pseudocodigo 01
 
Arreglos
ArreglosArreglos
Arreglos
 
Arreglos
ArreglosArreglos
Arreglos
 

En vedette

3 desarollo manejo datos capitulo 2 -02 operaciones arreglos dos dime
3 desarollo manejo datos capitulo 2 -02 operaciones arreglos dos dime3 desarollo manejo datos capitulo 2 -02 operaciones arreglos dos dime
3 desarollo manejo datos capitulo 2 -02 operaciones arreglos dos dime
luis freddy
 
3 desarollo manejo datos capitulo 3 -02 busqueda arreglo objetos
3 desarollo manejo datos capitulo 3 -02 busqueda arreglo objetos3 desarollo manejo datos capitulo 3 -02 busqueda arreglo objetos
3 desarollo manejo datos capitulo 3 -02 busqueda arreglo objetos
luis freddy
 
3 desarollo manejo datos capitulo 4 -01 introduccion colecciones
3 desarollo manejo datos capitulo 4 -01 introduccion colecciones3 desarollo manejo datos capitulo 4 -01 introduccion colecciones
3 desarollo manejo datos capitulo 4 -01 introduccion colecciones
luis freddy
 
3 desarollo manejo datos capitulo 2 -03 aplicaciones arreglos dos dime
3 desarollo manejo datos capitulo 2 -03 aplicaciones arreglos dos dime3 desarollo manejo datos capitulo 2 -03 aplicaciones arreglos dos dime
3 desarollo manejo datos capitulo 2 -03 aplicaciones arreglos dos dime
luis freddy
 

En vedette (7)

3 desarollo manejo datos capitulo 2 -02 operaciones arreglos dos dime
3 desarollo manejo datos capitulo 2 -02 operaciones arreglos dos dime3 desarollo manejo datos capitulo 2 -02 operaciones arreglos dos dime
3 desarollo manejo datos capitulo 2 -02 operaciones arreglos dos dime
 
3 desarollo manejo datos capitulo 3 -02 busqueda arreglo objetos
3 desarollo manejo datos capitulo 3 -02 busqueda arreglo objetos3 desarollo manejo datos capitulo 3 -02 busqueda arreglo objetos
3 desarollo manejo datos capitulo 3 -02 busqueda arreglo objetos
 
Semaforo555
Semaforo555Semaforo555
Semaforo555
 
Java 1
Java 1Java 1
Java 1
 
3 desarollo manejo datos capitulo 4 -01 introduccion colecciones
3 desarollo manejo datos capitulo 4 -01 introduccion colecciones3 desarollo manejo datos capitulo 4 -01 introduccion colecciones
3 desarollo manejo datos capitulo 4 -01 introduccion colecciones
 
3 desarollo manejo datos capitulo 2 -03 aplicaciones arreglos dos dime
3 desarollo manejo datos capitulo 2 -03 aplicaciones arreglos dos dime3 desarollo manejo datos capitulo 2 -03 aplicaciones arreglos dos dime
3 desarollo manejo datos capitulo 2 -03 aplicaciones arreglos dos dime
 
Semaforo
SemaforoSemaforo
Semaforo
 

Similaire à 3 desarollo manejo datos capitulo 3 -03 aplicaciones arreglo objetos

3 desarollo manejo datos capitulo 4 -02 aplicaciones colecciones
3 desarollo manejo datos capitulo 4 -02 aplicaciones colecciones3 desarollo manejo datos capitulo 4 -02 aplicaciones colecciones
3 desarollo manejo datos capitulo 4 -02 aplicaciones colecciones
luis freddy
 
3 desarollo manejo datos capitulo 1 -01 arreglos de dimension (6)
3 desarollo manejo datos capitulo 1 -01 arreglos de dimension (6)3 desarollo manejo datos capitulo 1 -01 arreglos de dimension (6)
3 desarollo manejo datos capitulo 1 -01 arreglos de dimension (6)
luis freddy
 
3 desarollo manejo datos capitulo 1 -03 aplicaciones con arreglos (2)
3 desarollo manejo datos capitulo 1 -03 aplicaciones con arreglos (2)3 desarollo manejo datos capitulo 1 -03 aplicaciones con arreglos (2)
3 desarollo manejo datos capitulo 1 -03 aplicaciones con arreglos (2)
luis freddy
 
3 desarollo manejo datos capitulo 2 -01 arreglos dos dimensiones (5)
3 desarollo manejo datos capitulo 2 -01 arreglos dos dimensiones (5)3 desarollo manejo datos capitulo 2 -01 arreglos dos dimensiones (5)
3 desarollo manejo datos capitulo 2 -01 arreglos dos dimensiones (5)
luis freddy
 
Arreglos En Una Dimension
Arreglos En Una DimensionArreglos En Una Dimension
Arreglos En Una Dimension
yperalta
 
Diagramas de flujo1
Diagramas de flujo1Diagramas de flujo1
Diagramas de flujo1
arecerv
 

Similaire à 3 desarollo manejo datos capitulo 3 -03 aplicaciones arreglo objetos (20)

Ordenar arreglos en java
Ordenar arreglos en javaOrdenar arreglos en java
Ordenar arreglos en java
 
3 desarollo manejo datos capitulo 4 -02 aplicaciones colecciones
3 desarollo manejo datos capitulo 4 -02 aplicaciones colecciones3 desarollo manejo datos capitulo 4 -02 aplicaciones colecciones
3 desarollo manejo datos capitulo 4 -02 aplicaciones colecciones
 
Introduccion Java
Introduccion JavaIntroduccion Java
Introduccion Java
 
Algoritmos divide y vencerás
Algoritmos divide y vencerásAlgoritmos divide y vencerás
Algoritmos divide y vencerás
 
3 desarollo manejo datos capitulo 1 -01 arreglos de dimension (6)
3 desarollo manejo datos capitulo 1 -01 arreglos de dimension (6)3 desarollo manejo datos capitulo 1 -01 arreglos de dimension (6)
3 desarollo manejo datos capitulo 1 -01 arreglos de dimension (6)
 
Arreglos 1D, 2D, 3D.
Arreglos 1D, 2D, 3D.Arreglos 1D, 2D, 3D.
Arreglos 1D, 2D, 3D.
 
3 desarollo manejo datos capitulo 1 -03 aplicaciones con arreglos (2)
3 desarollo manejo datos capitulo 1 -03 aplicaciones con arreglos (2)3 desarollo manejo datos capitulo 1 -03 aplicaciones con arreglos (2)
3 desarollo manejo datos capitulo 1 -03 aplicaciones con arreglos (2)
 
Java ejercicio basico
Java ejercicio basicoJava ejercicio basico
Java ejercicio basico
 
3 desarollo manejo datos capitulo 2 -01 arreglos dos dimensiones (5)
3 desarollo manejo datos capitulo 2 -01 arreglos dos dimensiones (5)3 desarollo manejo datos capitulo 2 -01 arreglos dos dimensiones (5)
3 desarollo manejo datos capitulo 2 -01 arreglos dos dimensiones (5)
 
Arreglos En Una Dimension
Arreglos En Una DimensionArreglos En Una Dimension
Arreglos En Una Dimension
 
Algoritmos computacionales y programación: 4
Algoritmos computacionales y programación: 4Algoritmos computacionales y programación: 4
Algoritmos computacionales y programación: 4
 
Diagramas de Secuencia.
Diagramas de Secuencia.Diagramas de Secuencia.
Diagramas de Secuencia.
 
Arreglos
ArreglosArreglos
Arreglos
 
Dfd
DfdDfd
Dfd
 
MANUAL 6
MANUAL 6MANUAL 6
MANUAL 6
 
Diagramas de flujo
Diagramas de flujo Diagramas de flujo
Diagramas de flujo
 
Diagramas de flujo1
Diagramas de flujo1Diagramas de flujo1
Diagramas de flujo1
 
Diagramas de flujo
Diagramas de flujoDiagramas de flujo
Diagramas de flujo
 
Manual de DFD_3
Manual de DFD_3Manual de DFD_3
Manual de DFD_3
 
Manual de dfd
Manual de dfd Manual de dfd
Manual de dfd
 

3 desarollo manejo datos capitulo 3 -03 aplicaciones arreglo objetos

  • 1. Ordenando en un Arreglo de Objetos La ordenación en un arreglo de Objetos es algo que ayuda mucho en el manejo de la información. Existen varios algoritmos de ordenación que se pueden utilizar, dependiendo de las necesidades. El más sencillo que manejaremos aquí es el de Burbuja. En este algoritmo se utiliza un ciclo anidado en el que la primera variable i, empieza desde el valor 0 ( el primer elemento del arreglo) y llega hasta el penúltimo elemento (n-1) que sería, y la segunda variable j, empieza desde un numero mas que la i y se va aumentando hasta llegar a ser igual a n (el ultimo elemento). En cada iteración se compara el valor a ordenar (dentro del objeto) de la posición i con respecto a la posición j, de tal manera que en la primer barrida (ciclo de i) toma el elemento mas pequeño y lo deja en ultima posición, en la segunda barrida, toma el siguiente más pequeño de los que quedaron y lo deja en la penúltima posición y así sucesivamente. Observemos el algoritmo y después el ejemplo: for (int i=0; i < n-1; i++ ) { for (int j=i+1; j<n; j++) { if (valor[i] > valor[j]) { temp = valor[i]; valor[i] = valor[j]; valor[j] = temp; } } } Ejemplo. Si tenemos el arreglo conformado por los números 120 15 135 12 8 0 Se compara 120 y 15 y se voltean 15 120 135 12 8 0 Se compara 15 y 135 y no hay cambio 15 120 135 12 8 0 Se compara 15 y 12 y se voltean 12 120 135 15 8 0 III. Desarrollo de aplicaciones con manejo de datos en la memoria
  • 2. Se compara 12 y 8 y se voltean 8 120 135 15 12 0 Se compara 8 y 0 y se voltean 0 120 135 15 12 8 En esta primera vuelta el 0 queda como primer elemento. Ahora i vale 1 y se continúa con el ciclo de adentro, comparando desde la posición 1 en el arreglo hasta la última: 0 120 135 15 12 8 Se comparan 120 y 135 y se quedan igual 0 120 135 15 12 8 Se comparan 120 y 15 y se voltean 0 15 135 120 12 8 Se comparan 15 y 12 y se voltean 0 12 135 120 15 8 Se comparan 12 y 8 y se voltean 0 8 135 120 15 12 En esta segunda vuelta el 8 queda en la segunda posición y ahora continuamos con la tercera vuelta: 0 8 135 120 15 12 0 8 120 135 15 12 0 8 15 135 120 12 0 8 12 135 120 15 En la tercera vuelta el 12 queda en la tercera posición, continuamos: 0 8 12 135 120 15 0 8 12 120 135 15 0 8 12 15 135 120 En la cuarta vuelta el 15 queda en la posición 4, continuamos: 0 8 12 15 135 120 0 8 12 15 120 135 En la quinta y ultima vuelta se compararon el 120 y el 135 y se cambian y ya queda automáticamente el arreglo ordenado.
  • 3. Veamos la clase Cuenta y la aplicación con el algoritmo pero expuesto en el arreglo de objetos. Clase Cuenta public class Cuenta { private String nombre; // nombre del cliente private int numero; // numero de la cuenta private double saldo; // saldo de la cuenta // método para construir una cuenta vacía public Cuenta() { nombre = “”; numero = 0; saldo = 0.0d; } // método para construir una cuenta con valores public Cuenta(int numero, String nombre, double saldo) { this.nombre = nombre; this.numero = numero; this.saldo = saldo; } // método que te dá el nombre de la cuenta public String obtenNombre() { return nombre; } // método que te dá el número de la cuenta public int obtenNumero() { return numero; } // método que te dá el saldo de una cuenta public double obtenSaldo() { return saldo; } // método que sirve para cambiar el valor del nombre public void cambiaNombre(String nombre) { this.nombre = nombre; } // método que sirve para cambiar el valor del saldo public void cambiaNumero(int numero) { this.numero = numero; } // método que sirve para cambiar el valor del saldo public void cambiaSaldo(double saldo) {
  • 4. this.saldo = saldo; } // método para depositar public void deposita(double cantidad) { cambiaSaldo(obtenSaldo() + cantidad); } // método para retirar public boolean retira(double cantidad) { if (cantidad <= obtenSaldo()) { cambiaSaldo(obtenSaldo() - cantidad); return true; } return false; } } Clase de la Aplicación import java.io.*; public class AplicacionArrObjeto2 { private static Cuenta arreglo[]; // para pedir los valores de teclado de el arreglo de cuentas ya creada public static void pide_arreglo() throws IOException{ BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); int n; int numero; String nombre; double saldo; System.out.println("¿Cuantos objetos deseas crear?"); n = Integer.parseInt(in.readLine()); // creamos el arreglo de cuentas arreglo = new Cuenta[n]; // pedimos cada valor para crear un objeto cuenta for (int i=0; i<n; i++) { System.out.print("Da el numero de la cuenta " + (i+1)+ " : "); numero = Integer.parseInt(in.readLine()); System.out.print("Da el nombre de la cuenta " + (i+1)+ " : "); nombre = in.readLine(); System.out.print("Da el saldo de la cuenta " + (i+1)+ " : "); saldo = Double.parseDouble(in.readLine()); // se crea el objeto de la clase Cuenta como elemento del arreglo arreglo [i] = new Cuenta(numero, nombre, saldo); }
  • 5. } // para desplegar los datos del arreglo de cuentas public static void despliega_arreglo() { System.out.println("Numero Nombre Saldo"); for (Cuenta objeto : arreglo) { System.out.println(" " + objeto.obtenNumero() + " " + objeto.obtenNombre() + " " + objeto.obtenSaldo()); } } // obteniendo la suma de los saldos de todas las cuentas public static double suma() { double total = 0.0d; for (Cuenta objeto : arreglo) { total += objeto.obtenSaldo(); } return total; } // para calcular el promedio de la matriz cualquiera que sea public static double promedio() { double total = 0.0d; for (Cuenta objeto : arreglo) { total += objeto.obtenSaldo(); } return total/arreglo.length; } // pedir un saldo y desplegar que tienen un saldo mayor o igual public static void despliega_saldos() throws IOException{ BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); System.out.println("¿Arriba de cual saldo?"); double saldo = Double.parseDouble(in.readLine()); // buscamos en cada objeto Cuenta del arreglo for (Cuenta objeto : arreglo) { if (objeto.obtenSaldo() >= saldo) { System.out.println(" Nombre " + objeto.obtenNombre() + " Cuenta " + objeto.obtenNumero() + " Saldo " + objeto.obtenSaldo()); } } } // ordenamos el arreglo en base al numero de cuenta public static void ordena() throws IOException{
  • 6. for (int i=0; i < arreglo.length-1; i++ ) { for (int j=i+1; j<arreglo.length; j++) { if (arreglo[i].obtenNumero() > arreglo[j].obtenNumero()) { Cuenta temp = arreglo[i]; arreglo[i] = arreglo[j]; arreglo[j] = temp; } } } } public static void main(String[] args) throws IOException { char opcion; BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); arreglo = null; opcion = ' '; while (opcion != '7') { System.out.println(" Menu de Cuentas"); System.out.println(); System.out.println("1. Pedir datos para crear Cuentas"); System.out.println("2. Desplegar todas las cuentas"); System.out.println("3. Desplegar Suma de los saldos"); System.out.println("4. Desplegar Promedio de los saldos"); System.out.println("5. Desplegar Cuentas arriba de un Saldo"); System.out.println("6. Desplegar Cuentas arriba de un Saldo"); System.out.println("7. Fin"); System.out.println("¿Opcion deseada (1-7) ?"); opcion = in.readLine().charAt(0); switch (opcion) { case ('1') : System.out.println("Pidiendo datos arreglo Cuentas"); pide_arreglo(); System.out.println(" " + arreglo.length); break; case ('2') : System.out.println("Desplegando arreglo de Cuentas"); despliega_arreglo(); break; case ('3') : System.out.println("Suma de los saldos = " + suma()); break; case ('4') : System.out.println("Promedio de los saldos = " + promedio()); break; case ('5') : System.out.println("Desplegando Cuentas arriba de saldo"); despliega_saldos(); break; case ('6') :
  • 7. System.out.println("Ordenando Cuentas por numero"); ordena(); break; case ('7') : System.out.println("Hasta Luego!"); break; default: System.out.println("Opcion debe ser de 1 a 5"); break; }; } } } Entre lo que despliega esta aplicación tenemos Opción 1.- Opción 2.-
  • 9. Opción 6.- Para corroborar que se ordeno usamos la opción 2 de nuevo