Autor Tema: PROGRAMACIÓN en java metodo de seleccion y busqueda de datos en un arbol binario  (Leído 5911 veces)

GERARDO RODRIGUEZ VELEZ

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 3
    • Ver Perfil
hola amigos tengo una super duda con este programa, tengo lista la clase person pero la clase seleccionsort la hice pero sé que está mal el profe no ayuda mucho por favor ayuda quisiera salvar el semestre:
 

1.   Desarrolle una clase ejecutable con el nombre de SeleccionSort.

2.   Declare el arreglo list como una variable privada del tipo Person en la clase SeleccionSort (prívate static Person[] list), se declara static para que pueda ser compartida por todos los objetos de la clase.

3.   Utilice la clase JOptionPane para realizar la entrada y salida de datos.

4.   Antes de crear el objeto lista desordenada list de personas, el main pregunta cuántos elementos tendrá esta lista y captura el número de elementos.

5.   Con el número de elementos (n) que contendrá la lista desordenada   el main crea un arreglo list, de objetos Person (utilizada en la práctica 9) (list=new Person[n] ; ).

6.   Una vez creado el arreglo, se llena con objetos de la clase Person que se van creando repetidamente e intoduciendo en el arreglo (p=new Person(numC,nomC,dirC,telC); list[ i ]=p;), como puede ver en las dos instrucciones anteriores p debe ser declarada de tipo Person y al crear el objeto p con la operación new, se inicializa con los datos del cliente, por tanto sólo requiere un constructor en la clase Person que inicialice estos campos. Luego, el objeto p se asigna al arreglo list.

7.   Escriba en la clase ejecutable dos métodos, el primero llamado selección() que ordena alfabéticamente la lista utilizando el campo nombre del objeto de la clase Person para tal fin. El segundo método se denomina imprimeList(), imprime todos los campos de los objetos Person en la lista ya ordenada previamente, cada objeto Person en la lista se imprime en una línea empezando por el campo nombre, luego numero de cliente, dirección y teléfono. Estos dos método pueden manipulan directamente el arreglo list dado que es una variable de la clase y por tanto, no requieren recibirlo como un parámetro.

8.   La salida del programa debe ser el listado de clientes ordenado alfabéticamente.

Código: [Seleccionar]
/**
 * @(#)SeleccionSort.java
 *
 *
 * @author
 * @version 1.00 2014/12/4
 */

import javax.swing.*;
import javax.swing.JOptionPane;

public class SeleccionSort {


    //private static Person[] list;*/
     
        public SeleccionSort() {
    }
   
        public static void main(String[] args) {

char array[];
int ultimo;
int lon;
String muestra;
String tamaño;
String leer;
int selec;
   
tamaño= JOptionPane.showInputDialog(null,"Indique el tamaño de la lista: ","Tamaño",JOptionPane.QUESTION_MESSAGE);
lon=Integer.parseInt(tamaño);
            array = new char[lon];
            ultimo=-1;



String[] clientes=new String[tamaño];

System.out.println("llenando arreglo");

for(int i=0;i<numeros.length;i++){
leer = JOptionPane.showInputDialog(null,"Digite el carácter que desea Insertar : ","Insertar car+ícter",JOptionPane.QUESTION_MESSAGE);;
clientes[i]=leer;
}

     public void selección()
{
System.out.println("ordenando por seleccion");

for(int i=0;i<clientes.length-1;i++){
int minimo=i;
for(int j=i+1;j<clientes.length;j++){
if(clientes[j]<clientes[minimo]){
minimo=j;
}
}
temp=clientes[i];
clientes[i]=clientes[minimo];
clientes[minimo]=temp;



}
}
     public void mostrarLista()
{
muestra="";
for(int y=0;y<=ultimo;y++)
           {
                muestra+=" "+clientes[y];
           }
          JOptionPane.showMessageDialog(null,"Lista ordenada alfabeticamente:\n"+muestra,"Mostrar lista",JOptionPane.INFORMATION_MESSAGE);
}


   }
   
}

y la clase person

Código: [Seleccionar]
/**
 * @(#)Person.java
 *
 *
 * @author
 * @version 1.00 2014/12/8
 */


public class Person {

  private String nombre;
  private int numcliente;
  private String direccion;
  private int telefono;
   
 public Person (String n, int nc, String d, int t)
 {
    this.nombre = n;
    this.numcliente = nc;
    this.direccion = d;
    this.telefono = t;
    }
   
 public Person ()
{
    this.nombre = "";
    this.numcliente = 0;
    this.direccion ="";
    this.telefono = 0;
   }
   
}
« Última modificación: 09 de Diciembre 2014, 23:14 por Alex Rodríguez »

Alex Rodríguez

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2050
    • Ver Perfil
Hola, he empezado a revisar el código y parece que tienes diferentes errores. Cuando declaras String tamaño salta un error cuando tratas de hacer String[] clientes=new String[tamaño]; porque tamaño no es un número, sino una cadena de caracteres.

Esto se puede solucionar haciendo algo como esto:

Integer tamañoNumero = Integer.valueOf(tamaño);

String[] clientes=new String[tamañoNumero];

De esa forma creas un arreglo de Strings usando el tamaño capturado mediante el JOptionPane.

Sin embargo después viene este código:

for(int i=0;i<numeros.length;i++){
leer = JOptionPane.showInputDialog(null,"Digite el carácter que desea Insertar : ","Insertar car+ícter",JOptionPane.QUESTION_MESSAGE);;
clientes[ i ]=leer;
}
}

Donde salta un error debido a que la variable numeros no está declarada. Además clientes[ i ] = leer; no entiendo qué es lo que significa ¿Qué es lo que quieres hacer en este bucle? Tienes que ir construyendo el código y probándolo poco a poco, si no es muy difícil depurarlo.

Saludos


GERARDO RODRIGUEZ VELEZ

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 3
    • Ver Perfil
ME PODRIAS AYUDAR HA AHCERLA BIEN BIEN POR FAVOR TE LO AGRADECERIO MUCHISIMO Y SI HAY ALGUNA FORMA DE PAGARTE IGUAL SOLO DIME DE VERDAD ME URGE LA ESTA PRACTICA

Alex Rodríguez

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2050
    • Ver Perfil
Ya se ha comentado en otros hilos, pero desde los foros sólo podemos ayudar, orientar... nos resultaría imposible desarrollar los códigos completos para todas las consultas. Saludos.

GERARDO RODRIGUEZ VELEZ

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 3
    • Ver Perfil
entendido muchas gracias  ;)

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".