Skip to content

Commit

Permalink
Merge pull request #19 from Vinceto/developer
Browse files Browse the repository at this point in the history
M4 Arreglos y Archivos D27 - Desafio Guiado: IndianaJeans
  • Loading branch information
Andressep authored Jun 15, 2024
2 parents fe88c53 + cc58d3a commit 17e0f9a
Show file tree
Hide file tree
Showing 20 changed files with 828 additions and 10 deletions.
7 changes: 7 additions & 0 deletions Vinceto/src/D27/IndianaJeans/Exportador.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package D27.IndianaJeans;

import java.util.List;

public abstract class Exportador {
public abstract void exportar(List<Producto> productos, String archivo);
}
22 changes: 22 additions & 0 deletions Vinceto/src/D27/IndianaJeans/ExportarTxt.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
package D27.IndianaJeans;

import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.util.List;

public class ExportarTxt extends Exportador {

@Override
public void exportar(List<Producto> productos, String archivo) {
try (BufferedWriter writer = new BufferedWriter(new FileWriter(archivo))) {
for (Producto producto : productos) {
writer.write(producto.toString());
writer.newLine();
}
System.out.println("Datos exportados a " + archivo);
} catch (IOException e) {
System.err.println("Error al exportar los datos: " + e.getMessage());
}
}
}
9 changes: 9 additions & 0 deletions Vinceto/src/D27/IndianaJeans/Main.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package D27.IndianaJeans;

public class Main {
public static void main(String[] args) {
Menu menu = new Menu();
menu.mostrarMenu();
}
}

80 changes: 80 additions & 0 deletions Vinceto/src/D27/IndianaJeans/Menu.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
package D27.IndianaJeans;
import Util.Utilidad;
import Util.SScan;

public class Menu {

private ProductoServicio productoServicio = new ProductoServicio();
private ExportarTxt exportarTxt = new ExportarTxt();
private SScan sscan = new SScan();

public void mostrarMenu() {
int opcion;
do {
Utilidad.limpiarPantalla();
System.out.println("1. Listar Producto");
System.out.println("2. Agregar Producto");
System.out.println("3. Exportar Datos");
System.out.println("4. Salir");
System.out.print("Ingrese una opción: ");
opcion = (int) sscan.escanear("int");

Utilidad.limpiarPantalla();

switch (opcion) {
case 1:
productoServicio.listarProductos();
Utilidad.esperar(1);
break;
case 2:
agregarProducto();
Utilidad.esperar(1);
break;
case 3:
exportarDatos();
Utilidad.esperar(1);
break;
case 4:
System.out.println("Saliendo...");
break;
default:
System.out.println("Opción no válida. Intente nuevamente.");
Utilidad.esperar(2);
}
} while (opcion != 4);
}

private void agregarProducto() {
System.out.println("Crear Producto");

System.out.print("Ingresar nombre articulo: ");
String articulo = (String) sscan.escanear("string");

System.out.print("Ingresa precio: ");
String precio = (String) sscan.escanear("string");

System.out.print("Ingresa descripción: ");
String descripcion = (String) sscan.escanear("string");

System.out.print("Ingresa código: ");
String codigo = (String) sscan.escanear("string");

System.out.print("Ingresa talla: ");
String talla = (String) sscan.escanear("string");

System.out.print("Ingresa marca: ");
String marca = (String) sscan.escanear("string");

System.out.print("Ingresa color: ");
String color = (String) sscan.escanear("string");

Producto producto = new Producto(articulo, precio, descripcion, codigo, talla, marca, color);
productoServicio.agregarProducto(producto);
}

private void exportarDatos() {
System.out.print("Ingrese el nombre del archivo para exportar: ");
String archivo = (String) sscan.escanear("string");
exportarTxt.exportar(productoServicio.getListaProductos(), archivo);
}
}
90 changes: 90 additions & 0 deletions Vinceto/src/D27/IndianaJeans/Producto.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
package D27.IndianaJeans;

public class Producto {
private String articulo;
private String precio;
private String descripcion;
private String codigo;
private String talla;
private String marca;
private String color;

public Producto(String articulo, String precio, String descripcion, String codigo, String talla, String marca, String color) {
this.articulo = articulo;
this.precio = precio;
this.descripcion = descripcion;
this.codigo = codigo;
this.talla = talla;
this.marca = marca;
this.color = color;
}

public String getArticulo() {
return articulo;
}

public void setArticulo(String articulo) {
this.articulo = articulo;
}

public String getPrecio() {
return precio;
}

public void setPrecio(String precio) {
this.precio = precio;
}

public String getDescripcion() {
return descripcion;
}

public void setDescripcion(String descripcion) {
this.descripcion = descripcion;
}

public String getCodigo() {
return codigo;
}

public void setCodigo(String codigo) {
this.codigo = codigo;
}

public String getTalla() {
return talla;
}

public void setTalla(String talla) {
this.talla = talla;
}

public String getMarca() {
return marca;
}

public void setMarca(String marca) {
this.marca = marca;
}

public String getColor() {
return color;
}

public void setColor(String color) {
this.color = color;
}

@Override
public String toString() {
return "Producto{" +
"articulo='" + articulo + '\'' +
", precio='" + precio + '\'' +
", descripcion='" + descripcion + '\'' +
", codigo='" + codigo + '\'' +
", talla='" + talla + '\'' +
", marca='" + marca + '\'' +
", color='" + color + '\'' +
'}';
}
}
26 changes: 26 additions & 0 deletions Vinceto/src/D27/IndianaJeans/ProductoServicio.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
package D27.IndianaJeans;
import java.util.ArrayList;

public class ProductoServicio {
private ArrayList<Producto> listaProductos;

public ProductoServicio() {
this.listaProductos = new ArrayList<>();
}

public ArrayList<Producto> getListaProductos() { return listaProductos; }
public void setListaProductos(ArrayList<Producto> listaProductos) { this.listaProductos = listaProductos; }

public void listarProductos() {
System.out.println("Productos en la lista: " + listaProductos.toArray().length);
for (Producto producto : listaProductos) {
System.out.println(producto);
}
}

public void agregarProducto(Producto producto) {
listaProductos.add(producto);
System.out.println("Producto agregado: " + producto);
}
}

8 changes: 8 additions & 0 deletions Vinceto/src/D28/ProductosImportados.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
Jeans,15000,Son unos jeans maravillosos,1500,42,Levos,Azul Marino
Jeans,10000,Son Jeans pero de verdad hermosos,1501,54,Levos,Celeste
Jeans,12000,Unos jeans increibles,1502,44,Levos,Blanco
Polera,8000,Una polera de aquellas,1400,XL,Xmen,Amarillo
Polera,7000,Una polera sexy,1401,XS,Xmen,Blanco
Polera,5000,Una polera que usan para pijama,1402,L,Xmen,Celeste
Poleron,10000,Un poleron de la NASA,1300,XL,Nasa,Negro
Poleron ,12000,Un poleron de SPACE X,1301,L,Space X,Plomo
32 changes: 32 additions & 0 deletions Vinceto/src/D28/ReciclaJeans/ArchivoServicio.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
package D28.ReciclaJeans;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.List;

public class ArchivoServicio {

public void cargarDatos(String archivo, List<Producto> listaProductos) {
// el archvo esta en : src/D28/ProductosImportados.csv
try (BufferedReader br = new BufferedReader(new FileReader(archivo))) {
String linea;
while ((linea = br.readLine()) != null) {
String[] datos = linea.split(",");
if (datos.length == 7) {
Producto producto = new Producto(
datos[0], // articulo
datos[1], // precio
datos[2], // descripcion
datos[3], // codigo
datos[4], // talla
datos[5], // marca
datos[6] // color
);
listaProductos.add(producto);
}
}
} catch (IOException e) {
System.out.println("Error al cargar datos: " + e.getMessage());
}
}
}
95 changes: 95 additions & 0 deletions Vinceto/src/D28/ReciclaJeans/MenuReciclaJeans.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
package D28.ReciclaJeans;
import Util.Menu;
import Util.SScan;
import Util.Utilidad;

import java.util.Arrays;
import java.util.List;

public class MenuReciclaJeans {
public static void main(String[] args) {
ProductoServicio productoServicio = new ProductoServicio();
ArchivoServicio archivoServicio = new ArchivoServicio();
SScan sscan = new SScan();

List<String> opcionesMenu = Arrays.asList(
"Listar Producto",
"Editar Datos",
"Importar Datos",
"Salir"
);

while (true) {
Utilidad.limpiarPantalla();
Menu.mostrarMenu(opcionesMenu);
String opcion = Menu.seleccionarOpcionMenu();

switch (opcion) {
case "a":
Utilidad.limpiarPantalla();
productoServicio.listarProductos();
Utilidad.esperar(2);
break;
case "b":
Utilidad.limpiarPantalla();
if (productoServicio.isEmptyListaProductos()){
System.out.println("No puedes editar un producto, la lista esta vacia");
Utilidad.esperar(2);
break;
}
String codigo = sscan.getString("Ingrese el código del producto a editar: ");
System.out.println("Seleccione el campo a editar:");
System.out.println("1. Articulo");
System.out.println("2. Precio");
System.out.println("3. Descripcion");
System.out.println("4. Talla");
System.out.println("5. Marca");
System.out.println("6. Color");
int campo = sscan.getInt("Elige una opción: ");
String nuevoValor = sscan.getString("Ingrese el nuevo valor: ");
String campoStr = null;
switch (campo) {
case 1:
campoStr = "articulo";
break;
case 2:
campoStr = "precio";
break;
case 3:
campoStr = "descripcion";
break;
case 4:
campoStr = "talla";
break;
case 5:
campoStr = "marca";
break;
case 6:
campoStr = "color";
break;
}
if (campoStr != null) {
productoServicio.editarProducto(codigo, campoStr, nuevoValor);
} else {
System.out.println("Opción inválida.");
}
Utilidad.esperar(2);
break;
case "c":
Utilidad.limpiarPantalla();
String archivo = sscan.getString("Ingrese el nombre del archivo a importar (incluyendo la extensión): ");
archivoServicio.cargarDatos(archivo, productoServicio.getListaProductos());
System.out.println("Datos importados correctamente.");
Utilidad.esperar(2);
break;
case "d":
System.out.println("Saliendo...");
return;
default:
System.out.println("Opción inválida.");
Utilidad.esperar(2);
break;
}
}
}
}
Loading

0 comments on commit 17e0f9a

Please sign in to comment.