Servientrega goheadstore via a la costa

La empresa Servientrega que opera en goheadstore via a la costa requiere controlar el stock de inventario de su linea de embalaje que contempla tipo cartón, de varias medidas espuma de corcho, sobres, fundas, a cierto costo, estructura un programa en java con manejo de archivos

import java.io.*;
import java.util.ArrayList;
import java.util.Scanner;

// 1. Definición del objeto Material
class Material implements Serializable {
String tipo;
String medida;
int cantidad;
double costo;

public Material(String tipo, String medida, int cantidad, double costo) {
    this.tipo = tipo;
    this.medida = medida;
    this.cantidad = cantidad;
    this.costo = costo;
}

@Override
public String toString() {
    return String.format("Tipo: %-12s | Medida: %-10s | Stock: %-5d | Costo: $%.2f", 
            tipo, medida, cantidad, costo);
}

}

public class GestionInventario {
private static final String ARCHIVO = «inventario_embalaje.txt»;

public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    ArrayList<Material> inventario = cargarDatos();

    while (true) {
        System.out.println("\n--- SISTEMA DE INVENTARIO SERVIENTREGA (VIA A LA COSTA) ---");
        System.out.println("1. Agregar material (Cartón, Espuma, Sobres, Fundas)");
        System.out.println("2. Mostrar stock actual");
        System.out.println("3. Guardar y Salir");
        System.out.print("Seleccione una opción: ");

        int opcion = sc.nextInt();
        sc.nextLine(); // Limpiar buffer

        if (opcion == 1) {
            System.out.print("Tipo de material: ");
            String tipo = sc.nextLine();
            System.out.print("Medida (ej. 40x40cm): ");
            String medida = sc.nextLine();
            System.out.print("Cantidad inicial: ");
            int cant = sc.nextInt();
            System.out.print("Costo unitario: ");
            double costo = sc.nextDouble();

            inventario.add(new Material(tipo, medida, cant, costo));
            System.out.println("Material registrado con éxito.");

        } else if (opcion == 2) {
            System.out.println("\n--- REPORTE DE STOCK ---");
            for (Material m : inventario) {
                System.out.println(m);
            }
        } else if (opcion == 3) {
            guardarDatos(inventario);
            System.out.println("Datos sincronizados. Cerrando sistema...");
            break;
        }
    }
}

// Método para guardar en archivo (Persistencia)
public static void guardarDatos(ArrayList<Material> lista) {
    try (BufferedWriter bw = new BufferedWriter(new FileWriter(ARCHIVO))) {
        for (Material m : lista) {
            bw.write(m.tipo + "," + m.medida + "," + m.cantidad + "," + m.costo);
            bw.newLine();
        }
    } catch (IOException e) {
        System.out.println("Error al guardar: " + e.getMessage());
    }
}

// Método para cargar datos desde el archivo
public static ArrayList<Material> cargarDatos() {
    ArrayList<Material> lista = new ArrayList<>();
    File file = new File(ARCHIVO);
    if (!file.exists()) return lista;

    try (BufferedReader br = new BufferedReader(new FileReader(ARCHIVO))) {
        String linea;
        while ((linea = br.readLine()) != null) {
            String[] datos = linea.split(",");
            lista.add(new Material(datos[0], datos[1], 
                      Integer.parseInt(datos[2]), Double.parseDouble(datos[3])));
        }
    } catch (IOException e) {
        System.out.println("Error al cargar datos.");
    }
    return lista;
}

}

Sistema de impresión B/N Color www.gohead.ec

Scroll al inicio