Autor Tema: código Java programa aplicación clientes compras añadir eliminar posición Vector  (Leído 1812 veces)

Reoplick

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 7
    • Ver Perfil
Hola, necesitaría ayuda para resolver este ejercicio.

Ejercicio

Hacer un programa por consola Java que permita gestionar las compras hechas por unos clientes mediante el uso de la clase ArrayList o clase Vector. El programa debe permitir almacenar los nombres de los clientes de un almacén y el valor de las compras hechos por los mismos, dicha información la deben almacenar en dos ArrayList o Vector.
Mediante un menú de opciones realizar lo siguiente:

1.   Registrar los clientes y sus compras.
2.   Mostrar el listado de los clientes y las compras hechas.
3.   Buscar un cliente dado su nombre y mostrar el valor de la compra hecha.
4.   Eliminar un cliente dado su nombre.

« Última modificación: 18 de Abril 2022, 21:45 por Ogramar »

Kabuto

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 989
    • Ver Perfil
Re: Como haría ése ejercicio, no tengo idea de inicializar lo.
« Respuesta #1 en: 18 de Marzo 2022, 13:00 »
Hola.
Necesitas dos ArrayList, uno para clase String donde guardar los nombres de clientes. Otro para clase Integer (o Double) donde guardan las compras.

Los clientes y sus compras quedan relacionados según la posición que ocupan en los ArrayList.

Es decir, si un cliente ocupa la posición número 4 en su ArrayList de String, pues sus compras estarán en la posición 4 del ArrayList de Integer.
Teniendo en cuenta esta relación, podemos cumplir las funcionalidades que se nos piden.


Mira, este podría ser el "esqueleto" del programa.
- Los dos ArrayList y un Scanner para recibir datos por consola.
- Un menú de opciones donde, con un switch, analizamos qué ha elegido el usuario y llamaremos al método que se ocupará de cumplir esa función
- Y los cuatro métodos para dichas funcionalidades.

Código: [Seleccionar]
import java.util.ArrayList;
import java.util.Scanner;

public class RegistroCompras {

private static ArrayList<String> clientes = new ArrayList<String>();
private static ArrayList<Integer> compras = new ArrayList<Integer>();
private static Scanner teclado = new Scanner(System.in);

public static void main(String[] args) {

int opcion = 0;

do {
System.out.println("\n\n\t\tREGISTRO DE COMPRAS");
System.out.println("\t\t-------- -- -------\n");
System.out.println("[1] - Registrar cliente y su compra");
System.out.println("[2] - Listar clientes y sus compras");
System.out.println("[3] - Consultar la compra de un cliente");
System.out.println("[4] - Eliminar un cliente");
System.out.println("[9] - FIN DE PROGRAMA");
System.out.print("Opcion: ");
opcion = Integer.parseInt(teclado.nextLine());

switch(opcion) {
case 1:
registrarCliente();
break;
case 2:
mostrarListado();
break;
case 3:
buscarCliente();
break;
case 4:
eliminarCliente();
break;
case 9:
System.out.println("\n\t\tFIN DE PROGRAMA");
break;
default:
System.out.println("Opcion equivocada");
}
}while(opcion != 9);


}

private static void registrarCliente( ) {

}

private static void mostrarListado() {

}

private static void buscarCliente() {

}

private static void eliminarCliente() {

}

}

Falta el código de los métodos, que es lo que realmente importa.

Bien, vamos a escribir el primer método, que es muy sencillo, es pedir un nombre y un valor de compra, y guardarlos en los correspondientes ArrayList:
Código: [Seleccionar]
private static void registrarCliente( ) {
System.out.print("\nNombre Cliente: ");
clientes.add(teclado.nextLine());
System.out.print("Valor de compra: ");
compras.add(Integer.parseInt(teclado.nextLine()));
}
Listo, solo se necesitan esas 4 líneas. No tiene ningún misterio.

Vamos a ver otro método más interesante, el de buscar un cliente y mostrar su compra.
Aquí si que tenemos que poner en práctica la forma de relacionar un dato con el otro.
Pediremos el nombre de un cliente, lo buscaremos en el ArrayList para conocer que posición ocupa.
Sabiendo esa posición, podremos encontrar el valor de su compra en el otro ArrayList:
Código: [Seleccionar]
private static void buscarCliente() {
if (clientes.isEmpty())
System.out.println("\nNo hay clientes registrados");
else {
System.out.print("\nNombre Cliente: ");
int posicion = clientes.indexOf(teclado.nextLine());
if (posicion == -1)
System.out.println("No hay cliente con ese nombre");
else
System.out.println("Valor de compra: " + compras.get(posicion));
}
}
Como ves, tampoco se requiere un código complicado.
La clave es obtener la posición del cliente, esto nos los da el propio ArrayList invocando a su método indexOf().
Si el nombre que damos para buscar no existe, nos retorna el valor -1.
Si existe, entonces si obtendremos la posición que nos sirve para encontrar la compra que le corresponde a dicho cliente.

Intenta tú completar los otros dos métodos que faltan.
Si te atascas o algo no entiendes, pregunta por aquí.

Un saludo.
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".