generated from Andressep/java-codespace
-
Notifications
You must be signed in to change notification settings - Fork 4
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #19 from Vinceto/developer
M4 Arreglos y Archivos D27 - Desafio Guiado: IndianaJeans
- Loading branch information
Showing
20 changed files
with
828 additions
and
10 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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()); | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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(); | ||
} | ||
} | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 + '\'' + | ||
'}'; | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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); | ||
} | ||
} | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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()); | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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; | ||
} | ||
} | ||
} | ||
} |
Oops, something went wrong.