Ejercicio de programación - ArrayList, do while, switch
Desarrollar un programa que permita gestionar los productos que se almacenan en un local. El programa debe registrar el código del producto, nombre de los productos, el stock actual y el monto de compra del mismo. Se debe reportar lo siguiente:
Código del Programa
package gestionproductos;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class GestionProductos {
public static void main(String[] args) {
List<String> codigoProd = new ArrayList<>();
List<String> nombreProd = new ArrayList<>();
List<Integer> stockActual = new ArrayList<>();
List<Double> montoCompra = new ArrayList<>();
Scanner scanner = new Scanner(System.in);
char resp;
int cantProd = 0, opt;
do {
cantProd++;
System.out.println("Datos del Producto N° " + cantProd);
System.out.print("Código del Producto N° " + cantProd + ": ");
codigoProd.add(scanner.next());
System.out.print("Nombre del Producto N° " + cantProd + ": ");
nombreProd.add(scanner.next());
System.out.print("Stock del Producto N° " + cantProd + ": ");
stockActual.add(scanner.nextInt());
System.out.print("Monto de Compra del Producto N° "
+ cantProd + ": ");
montoCompra.add(Double.parseDouble(scanner.next()));
do {
System.out.print("Desea registrar más productos?[S-N]: ");
resp = scanner.next().toUpperCase().charAt(0);
} while (resp != 'N' && resp != 'S');
} while (resp != 'N');
do {
System.out.println("Reportes");
System.out.println("--------");
System.out.println("1. Mostrar todos los productos");
System.out.println("2. Ordenar los productos por nombre");
System.out.println("3. Buscar un producto dado su código");
System.out.println("4. Monto total de inversión de todos los "
+ "productos");
System.out.println("5. Listado de productos con un stock menor a "
+ "una cantidad ingresada por el usuario");
System.out.println("6. Productos cuyo precio de compra es mayor a"
+ " 1500");
do {
System.out.print("Elija una opcion [1-6]: ");
opt = scanner.nextInt();
} while (opt < 1 && opt > 6);
switch (opt) {
case 1:
System.out.println("Listado de productos");
for (int i = 0; i < cantProd; i++) {
System.out.println("Codigo " + (i + 1) + ": "
+ codigoProd.get(i).toString());
System.out.println("Nombre " + (i + 1) + ": "
+ nombreProd.get(i).toString());
System.out.println("Stock " + (i + 1) + ": "
+ stockActual.get(i).toString());
System.out.println("Monto de compra " + (i + 1)
+ ": " + montoCompra.get(i).toString());
}
break;
case 2:
System.out.println("Listado de productos ordenados por"
+ " nombre");
String bufferCodigo;
String bufferNombre;
int bufferStock;
double bufferMonto;
//ordenamos usando el método de la burbuja
for (int i = 0; i < nombreProd.size(); i++) {
for (int j = 0; j < i; j++) {
if (nombreProd.get(i).compareTo(nombreProd.get(j)) < 0) {
//---moviendo códigos
bufferCodigo = codigoProd.get(j);
codigoProd.set(j, codigoProd.get(i));
codigoProd.set(i, bufferCodigo);
//---moviendo nombres
bufferNombre = nombreProd.get(j);
nombreProd.set(j, nombreProd.get(i));
nombreProd.set(i, bufferNombre);
//---moviendo stocks
bufferStock = stockActual.get(j);
stockActual.set(j, stockActual.get(i));
stockActual.set(i, bufferStock);
//---moviendo montos
bufferMonto = montoCompra.get(j);
montoCompra.set(j, montoCompra.get(i));
montoCompra.set(i, bufferMonto);
}
}
}
//lista de productos
for (int i = 0; i < cantProd; i++) {
System.out.println("Codigo " + (i + 1) + ": "
+ codigoProd.get(i).toString());
System.out.println("Nombre " + (i + 1) + ": "
+ nombreProd.get(i).toString());
System.out.println("Stock " + (i + 1) + ": "
+ stockActual.get(i).toString());
System.out.println("Monto de compra " + (i + 1)
+ ": " + montoCompra.get(i).toString());
}
break;
case 3:
System.out.println("Buscar un producto dado su código");
System.out.print("Ingrese código: ");
String cod = scanner.next();
int indice = codigoProd.indexOf(cod);
if (indice != -1) {
System.out.println("Datos del Producto");
System.out.println("Codigo: "
+ codigoProd.get(indice).toString());
System.out.println("Nombre: "
+ nombreProd.get(indice).toString());
System.out.println("Stock: "
+ stockActual.get(indice).toString());
System.out.println("Monto de compra: "
+ montoCompra.get(indice).toString());
} else {
System.out.println("Código no encontrado");
}
break;
case 4:
double montoTotal = 0;
for (int i = 0; i < montoCompra.size(); i++) {
montoTotal += montoCompra.get(i).doubleValue();
}
System.out.println("Monto Total de Inversión: " + montoTotal);
break;
case 5:
System.out.println("Listado de productos con un stock menor "
+ "a una cantidad ingresada por el usuario");
int cant;
System.out.print("Ingrese cantidad: ");
cant = scanner.nextInt();
for (int i = 0; i < stockActual.size(); i++) {
if (stockActual.get(i).intValue() < cant) {
System.out.println("Codigo " + (i + 1) + ": "
+ codigoProd.get(i).toString());
System.out.println("Nombre " + (i + 1) + ": "
+ nombreProd.get(i).toString());
System.out.println("Stock " + (i + 1) + ": "
+ stockActual.get(i).toString());
System.out.println("Monto de compra " + (i + 1)
+ ": " + montoCompra.get(i).toString());
}
}
break;
case 6:
System.out.print("Listado de productos cuyo precio "
+ "es mayor a 1500");
for (int i = 0; i < montoCompra.size(); i++) {
if (montoCompra.get(i).intValue() > 1500) {
System.out.println("Codigo " + (i + 1) + ": "
+ codigoProd.get(i).toString());
System.out.println("Nombre " + (i + 1) + ": "
+ nombreProd.get(i).toString());
System.out.println("Stock " + (i + 1) + ": "
+ stockActual.get(i).toString());
System.out.println("Monto de compra " + (i + 1)
+ ": " + montoCompra.get(i).toString());
}
}
}
do {
System.out.print("Desea mostrar otro reporte?[S-N]: ");
resp = scanner.next().toUpperCase().charAt(0);
} while (resp != 'N' && resp != 'S');
} while (resp != 'N');
}
}
- Mostrar todos los productos con respectivos datos (nombre, stock y precio de compra).
- Ordenar los productos por nombres.
- Buscar un producto dado su código.
- El monto total de inversión de todos los productos.
- Listado de productos con un stock menor a una cantidad ingresada por el usuario.
- Productos cuyo precio de compra es mayor a 1500.
Código del Programa
package gestionproductos;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class GestionProductos {
public static void main(String[] args) {
List<String> codigoProd = new ArrayList<>();
List<String> nombreProd = new ArrayList<>();
List<Integer> stockActual = new ArrayList<>();
List<Double> montoCompra = new ArrayList<>();
Scanner scanner = new Scanner(System.in);
char resp;
int cantProd = 0, opt;
do {
cantProd++;
System.out.println("Datos del Producto N° " + cantProd);
System.out.print("Código del Producto N° " + cantProd + ": ");
codigoProd.add(scanner.next());
System.out.print("Nombre del Producto N° " + cantProd + ": ");
nombreProd.add(scanner.next());
System.out.print("Stock del Producto N° " + cantProd + ": ");
stockActual.add(scanner.nextInt());
System.out.print("Monto de Compra del Producto N° "
+ cantProd + ": ");
montoCompra.add(Double.parseDouble(scanner.next()));
do {
System.out.print("Desea registrar más productos?[S-N]: ");
resp = scanner.next().toUpperCase().charAt(0);
} while (resp != 'N' && resp != 'S');
} while (resp != 'N');
do {
System.out.println("Reportes");
System.out.println("--------");
System.out.println("1. Mostrar todos los productos");
System.out.println("2. Ordenar los productos por nombre");
System.out.println("3. Buscar un producto dado su código");
System.out.println("4. Monto total de inversión de todos los "
+ "productos");
System.out.println("5. Listado de productos con un stock menor a "
+ "una cantidad ingresada por el usuario");
System.out.println("6. Productos cuyo precio de compra es mayor a"
+ " 1500");
do {
System.out.print("Elija una opcion [1-6]: ");
opt = scanner.nextInt();
} while (opt < 1 && opt > 6);
switch (opt) {
case 1:
System.out.println("Listado de productos");
for (int i = 0; i < cantProd; i++) {
System.out.println("Codigo " + (i + 1) + ": "
+ codigoProd.get(i).toString());
System.out.println("Nombre " + (i + 1) + ": "
+ nombreProd.get(i).toString());
System.out.println("Stock " + (i + 1) + ": "
+ stockActual.get(i).toString());
System.out.println("Monto de compra " + (i + 1)
+ ": " + montoCompra.get(i).toString());
}
break;
case 2:
System.out.println("Listado de productos ordenados por"
+ " nombre");
String bufferCodigo;
String bufferNombre;
int bufferStock;
double bufferMonto;
//ordenamos usando el método de la burbuja
for (int i = 0; i < nombreProd.size(); i++) {
for (int j = 0; j < i; j++) {
if (nombreProd.get(i).compareTo(nombreProd.get(j)) < 0) {
//---moviendo códigos
bufferCodigo = codigoProd.get(j);
codigoProd.set(j, codigoProd.get(i));
codigoProd.set(i, bufferCodigo);
//---moviendo nombres
bufferNombre = nombreProd.get(j);
nombreProd.set(j, nombreProd.get(i));
nombreProd.set(i, bufferNombre);
//---moviendo stocks
bufferStock = stockActual.get(j);
stockActual.set(j, stockActual.get(i));
stockActual.set(i, bufferStock);
//---moviendo montos
bufferMonto = montoCompra.get(j);
montoCompra.set(j, montoCompra.get(i));
montoCompra.set(i, bufferMonto);
}
}
}
//lista de productos
for (int i = 0; i < cantProd; i++) {
System.out.println("Codigo " + (i + 1) + ": "
+ codigoProd.get(i).toString());
System.out.println("Nombre " + (i + 1) + ": "
+ nombreProd.get(i).toString());
System.out.println("Stock " + (i + 1) + ": "
+ stockActual.get(i).toString());
System.out.println("Monto de compra " + (i + 1)
+ ": " + montoCompra.get(i).toString());
}
break;
case 3:
System.out.println("Buscar un producto dado su código");
System.out.print("Ingrese código: ");
String cod = scanner.next();
int indice = codigoProd.indexOf(cod);
if (indice != -1) {
System.out.println("Datos del Producto");
System.out.println("Codigo: "
+ codigoProd.get(indice).toString());
System.out.println("Nombre: "
+ nombreProd.get(indice).toString());
System.out.println("Stock: "
+ stockActual.get(indice).toString());
System.out.println("Monto de compra: "
+ montoCompra.get(indice).toString());
} else {
System.out.println("Código no encontrado");
}
break;
case 4:
double montoTotal = 0;
for (int i = 0; i < montoCompra.size(); i++) {
montoTotal += montoCompra.get(i).doubleValue();
}
System.out.println("Monto Total de Inversión: " + montoTotal);
break;
case 5:
System.out.println("Listado de productos con un stock menor "
+ "a una cantidad ingresada por el usuario");
int cant;
System.out.print("Ingrese cantidad: ");
cant = scanner.nextInt();
for (int i = 0; i < stockActual.size(); i++) {
if (stockActual.get(i).intValue() < cant) {
System.out.println("Codigo " + (i + 1) + ": "
+ codigoProd.get(i).toString());
System.out.println("Nombre " + (i + 1) + ": "
+ nombreProd.get(i).toString());
System.out.println("Stock " + (i + 1) + ": "
+ stockActual.get(i).toString());
System.out.println("Monto de compra " + (i + 1)
+ ": " + montoCompra.get(i).toString());
}
}
break;
case 6:
System.out.print("Listado de productos cuyo precio "
+ "es mayor a 1500");
for (int i = 0; i < montoCompra.size(); i++) {
if (montoCompra.get(i).intValue() > 1500) {
System.out.println("Codigo " + (i + 1) + ": "
+ codigoProd.get(i).toString());
System.out.println("Nombre " + (i + 1) + ": "
+ nombreProd.get(i).toString());
System.out.println("Stock " + (i + 1) + ": "
+ stockActual.get(i).toString());
System.out.println("Monto de compra " + (i + 1)
+ ": " + montoCompra.get(i).toString());
}
}
}
do {
System.out.print("Desea mostrar otro reporte?[S-N]: ");
resp = scanner.next().toUpperCase().charAt(0);
} while (resp != 'N' && resp != 'S');
} while (resp != 'N');
}
}
Comentarios
Publicar un comentario