public final class Registrar {
//Variables principales
static String[] productos = new String[100]; //Para registrar nombres de producto
static int[] stock = new int[100]; //Para registrar cantidad stock de cada producto
static int indice = 0; //Nos indica que posicion del array está libre para registrar
//nuevo producto y stock
//Método de apoyo
static int existeProducto(String producto) {
//La variable principal "indice" nos dice hasta donde debemos buscar
for (int i = 0; i < indice; i++) {
if (productos[i].equals(producto))
return i; //Producto encontrado, devolvemos su posicion
}
return -1; //No se ha encontrado producto
}
//Programa principal
public static void main(String[] args) {
Scanner teclado = new Scanner(System.in);
char continuar = 's'; //Con esta variable el usuario nos dirá cuando quiere terminar
do {
System.out.print("\nNombre producto: ");
String producto = teclado.nextLine();
System.out.print("Cantidad Stock: ");
int cantidad = Integer.parseInt(teclado.nextLine());
/*
* A continuacion pediremos a un método que nos diga si ya existe este producto.
* Si existe, el método nos proporcionará la posición que ocupa el producto en
* los arrays y tan solo tendremos que sumar el stock.
*
* Si el método devuelve el valor -1, es que este producto no existe y por lo
* tanto procederemos a registrarlo.
*/
int posicion = existeProducto(producto);
if (posicion == -1) { //Registramos nuevo producto, solo si queda espacio libre
if (indice < 100) {
productos[indice] = producto;
stock[indice] = cantidad;
indice++; //El indice de los arrays aumenta porque hemos registrado un producto
System.out.println("Producto registrado.\n");
}
else
System.out.println("No hay espacio para nuevos productos\n");
}
else { //Producto ya existe, solo hay que aumentar el stock en la posicion obtenida
stock[posicion] += cantidad;
System.out.println("Producto actualizado.\n");
}
System.out.print("¿Continuar?(S/N): ");
continuar = teclado.nextLine().toLowerCase().charAt(0);
} while (continuar == 's');
//Mostramos datos registrados
System.out.println("\n\t\t\tDatos Registrados\n\t\t\t----- -----------\n");
for (int i = 0; i < indice; i++) {
System.out.printf("\tProducto: %-20s\tStock: %04d\n", productos[i], stock[i]);
}
System.out.println("\n\tTotal Registros: " + indice);
System.out.println("\n\n\t\t\tFIN DE PROGRAMA");
teclado.close();
}
}