Autor Tema: programa java búsqueda por cédula de identidad nombres locales planteamiento  (Leído 4466 veces)

Stiv

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 3
    • Ver Perfil
Buenos días, soy nuevo en este foro, lo que pasa es que tengo una duda, tengo que hacer un código en java donde necesito mostrar unos datos que son: un documento de identidad(el cual está guardado en un vector), un nombre (el cual está guardado en una matriz tipo String) y un numero de locales (el cual está en una matriz tipo int) entonces tengo que hacer que cuando por ejemplo, un usuario busque la cedula de él le salga el nombre y también el número de locales.. Me pueden ayudar por favor.. la pregunta sería, como hago para relacionar eso, o sea´que si el documento está en la posición 0, me traiga el nombre que hay en la posición 0-0 y el número de locales en la posición 0-0.. y así sucesivamente.. muchas gracias.
« Última modificación: 20 de Julio 2018, 17:26 por Ogramar »

Kabuto

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 988
    • Ver Perfil
Re:Ayuda..
« Respuesta #1 en: 15 de Noviembre 2017, 12:26 »
Hola Stiv,

me asalta una duda... ¿por qué el nombre está en una matriz?

No tiene sentido. Lo tendría si una cedula de identidad estuviera asociada a varios nombres de personas, pero eso no es posible.

Una cédula --> una persona ---> varios locales

Una cédula estará asociada a una ÚNICA persona. Y esta persona si puede tener VARIOS locales asociados. Así que la información de los números de locales si tiene sentido que esté almacenado en una matriz, pero no los nombres de personas.
Suponiendo que "número de locales" se refiera al número identificador de distintos locales, en este caso son datos múltiples asociados a una única persona, por eso tiene sentido que esté en una matriz:
Juan tiene el local L25, y el local L67, y también el local L99.

Si en cambio ese dato se refiere a la "cantidad de locales" que tiene dicha persona, entonces NO tiene sentido que esté guardado en una matriz, ya que se trataría de un dato único, y bastaría con un simple vector
Juan tiene 3 locales

A no ser que yo haya malinterpretado algo, de momento vamos a suponer que tenemos dos vectores y una matriz.
Muchas veces, para decidir que lógica seguir en un programa, ayuda mucho hacer un dibujo (con papel y lápiz) de los datos con los que hay que trabajar.
Aquí en el foro no podemos dibujar, pero podemos intentar hacer una representación.

Vamos a representar los vectores, poniendo en azul el dato almacenado y en rojo la posicion que ocupa dentro del vector

Vector Cédulas Identidad
  • (0) 0010
  • (1) 0020
  • (2) 0030
Vector Nombres
  • (0) Juan Garcia
  • (1) Maria Santos
  • (2) Lucas Ramirez
Y lo mismo con la matriz

Matriz Locales
  • (0)(0) L01, (0)(1) L03, (0)(2) L04
  • (1)(0) L12, (1)(1) L13, (1)(2) L14
  • (2)(0) L45, (2)(1) L47, (2)(2) L49

Ya tenemos la información representada.
Ahora vamos a suponer que Maria Santos quiere visualizar sus datos en pantalla.
Para ello, le introduce al programa su número de cédula que es el 0020

Lo que el programa tiene que hacer ahora es recoger ese número de cédula y recorrer el vector de Cédulas Identidad para comparar cada cédula almacenada, con la cédula que el usuario le ha indicado.
Si encuentra una cédula que coincida, deberá guardar en una variable el numero de posicion donde haya encontrado la coincidencia.

Es decir, para la cédula 0020, el programa encontrará una coincidencia en la posición (1) del vector.
Pues este número de posicion se ha de guardar en una variable, por ejemplo en nPos

Ahora, con nPos, quien recordamos ahora alberga el valor (1), ya podemos acceder al resto de datos de Maria Santos

nPos nos dará el nombre correcto del vector Nombres
(1) Maria Santos

Y también nos dará los locales de la matriz Locales, solo que en este caso necesitaremos otro bucle.
Si entendemos la matriz como si fuera una tabla, nPos nos estaría indicando la fila y necesitariamos un bucle para recorrer las columnas y así obtener los tres locales que Maria tiene asociados.

(1)(0) L12, (1)(1) L13, (1)(2) L14

Bien, pues esa es la lógica que hay que seguir.
Tu código ha de:
- Pedir número cédula al usuario.
- Ver si la cédula introducida existe en el vector de Cédulas.
- Si existe, guardar en una variable la posición donde se ha encontrado la cédula.
- Con esa posicion, mostrar el resto de datos, nombre y locales, ya que ocupan la misma posicion en sus respectivos vectores y matriz.
- En el caso de la matriz Locales, se necesitará un bucle para recorrer la fila de datos que encontraremos en esa posición.


Intenta escribir un código que cumpla esto. Haz lo que puedas, si no te sale, publica aquí lo que hayas escrito y entre todos te ayudamos a completarlo.

Un saludo.
« Última modificación: 15 de Noviembre 2017, 12:34 por Kabuto »
NO respondo dudas por mensaje privado
Publicando vuestras dudas en el foro público conseguimos:
- Que más gente aporte respuestas mejores o complementarias.
- Que otras personas puedan aprender de vuestras dudas.

Mejor en PÚBLICO que en privado. 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".