Untitled

 avatar
unknown
plain_text
a year ago
7.4 kB
8
Indexable
import java.util.*;

// Toaster class represents a toaster item in the inventory
class Toaster extends InventoryItem {
    public Toaster() {
        super("toasters");
        setModels(Arrays.asList("T1", "T2"), Arrays.asList(9, 4)); // Toplamda 7 toasters, 3 T1 ve 4 T2
    }
}

// Grill class represents a grill item in the inventory
class Grill extends InventoryItem {
    public Grill() {
        super("grills");
        setModels(Arrays.asList("G1", "G2"), Arrays.asList(3, 5)); // Toplamda 7 grills, 2 G1 ve 5 G2
    }
}

// Microwave class represents a microwave item in the inventory
class Microwave extends InventoryItem {
    public Microwave() {
        super("microwaves");
        setModels(Arrays.asList("M1", "M2"), Arrays.asList(5, 3)); // Toplamda 7 microwaves, 4 M1 ve 3 M2
    }
}

// Blender class represents a blender item in the inventory
class Blender extends InventoryItem {
    public Blender() {
        super("blenders");
        setModels(Arrays.asList("B1", "B2"), Arrays.asList(5, 2)); // Toplamda 7 blenders, 5 B1 ve 2 B2
    }
}

// Mixer class represents a mixer item in the inventory
class Mixer extends InventoryItem {
    public Mixer() {
        super("mixers");
        setModels(Arrays.asList("MX1", "MX2"), Arrays.asList(12, 4)); // Toplamda 7 mixers, 3 MX1 ve 4 MX2
    }
}

// PressureCooker class represents a pressure cooker item in the inventory
class PressureCooker extends InventoryItem {
    public PressureCooker() {
        super("pressure cookers");
        setModels(Arrays.asList("PC1", "PC2"), Arrays.asList(4, 11)); // Toplamda 7 pressure cookers, 4 PC1 ve 3 PC2
    }
}

// CoffeeMaker class represents a coffee maker item in the inventory
class CoffeeMaker extends InventoryItem {
    public CoffeeMaker() {
        super("coffee makers");
        setModels(Arrays.asList("CM1", "CM2"), Arrays.asList(4, 5)); // Toplamda 7 coffee makers, 2 CM1 ve 5 CM2
    }
}

// Juicer class represents a juicer item in the inventory
class Juicer extends InventoryItem {
    public Juicer() {
        super("juicers");
        setModels(Arrays.asList("J1", "J2"), Arrays.asList(5, 6)); // Toplamda 7 juicers, 5 J1 ve 2 J2
    }
}

// FoodProcessor class represents a food processor item in the inventory
class FoodProcessor extends InventoryItem {
    public FoodProcessor() {
        super("food processors");
        setModels(Arrays.asList("FP1", "FP2"), Arrays.asList(2, 4)); // Toplamda 7 food processors, 3 FP1 ve 4 FP2
    }
}

// RiceCooker class represents a rice cooker item in the inventory
class RiceCooker extends InventoryItem {
    public RiceCooker() {
        super("rice cookers");
        setModels(Arrays.asList("RC1", "RC2"), Arrays.asList(4, 7)); // Toplamda 7 rice cookers, 4 RC1 ve 3 RC2
    }
}

// InventoryItem class represents an item in the inventory
class InventoryItem {
    private String name;
    private Map<String, Integer> modelQuantities;

    public InventoryItem(String name) {
        this.name = name;
        this.modelQuantities = new HashMap<>();
    }

    public void setModels(List<String> models, List<Integer> quantities) {
        for (int i = 0; i < models.size(); i++) {
            modelQuantities.put(models.get(i), quantities.get(i));
        }
    }

    public Map<String, Integer> getModelQuantities() {
        return modelQuantities;
    }

    public String getName() {
        return name;
    }
}

// InventorySubsystem class manages the inventory items
class InventorySubsystem {
    private List<InventoryItem> items;

    public InventorySubsystem() {
        this.items = new ArrayList<>();
    }

    public void addItem(InventoryItem item) {
        items.add(item);
    }

    public InventoryItem getItem(String name) {
        for (InventoryItem item : items) {
            if (item.getName().equals(name)) {
                return item;
            }
        }
        return null;
    }

    public void addModel(String name, String model, int quantity) {
        for (InventoryItem item : items) {
            if (item.getName().equals(name)) {
                Map<String, Integer> modelQuantities = item.getModelQuantities();
                if (modelQuantities.containsKey(model)) {
                    modelQuantities.put(model, modelQuantities.get(model) + quantity);
                } else {
                    System.out.println("Model " + model + " is not available for " + name);
                }
                return;
            }
        }
        System.out.println("Item " + name + " not found");
    }

    public String getItemInfo(String name, String model) {
        for (InventoryItem item : items) {
            if (item.getName().equals(name)) {
                Map<String, Integer> modelQuantities = item.getModelQuantities();
                if (modelQuantities.containsKey(model)) {
                    return "We have " + modelQuantities.get(model) + " " + name + ", model " + model + " in inventory";
                } else {
                    return "Model " + model + " is not available for " + name;
                }
            }
        }
        return "Item not found";
    }

    public List<String> getItemNames() {
        List<String> names = new ArrayList<>();
        for (InventoryItem item : items) {
            names.add(item.getName());
        }
        return names;
    }
}

// Client class interacts with the inventory subsystem
public class Client {
    public static void main(String[] args) {
        InventorySubsystem subsystem = new InventorySubsystem();

        // Adding sample items
        subsystem.addItem(new Toaster());
        subsystem.addItem(new Grill());
        subsystem.addItem(new Microwave());
        subsystem.addItem(new Blender());
        subsystem.addItem(new Mixer());
        subsystem.addItem(new PressureCooker());
        subsystem.addItem(new CoffeeMaker());
        subsystem.addItem(new Juicer());
        subsystem.addItem(new FoodProcessor());
        subsystem.addItem(new RiceCooker());

        Scanner scanner = new Scanner(System.in);

        System.out.println("Welcome to the Inventory System!");
        boolean quit = false;

        while (!quit) {
            System.out.println("Select from the following items: " + subsystem.getItemNames());
            System.out.print("Enter item name (or type 'quit' to exit): ");
            String itemName = scanner.nextLine();
            if (itemName.equalsIgnoreCase("quit")) {
                quit = true;
                continue;
            }

            InventoryItem item = subsystem.getItem(itemName);
            if (item != null) {
                Map<String, Integer> modelQuantities = item.getModelQuantities();
                System.out.println("We have a fabulous selection of " + itemName + ", available models: " + modelQuantities.keySet());

                System.out.print("Enter model number: ");
                String model = scanner.nextLine();

                System.out.println(subsystem.getItemInfo(itemName, model));
            } else {
                System.out.println("Invalid item name!");
            }
        }

        scanner.close();
    }
}
Editor is loading...
Leave a Comment