Program sklepu internetowego

Odpowiedz Nowy wątek
2019-01-08 16:57
0

Cześć,

jestem w trakcie tworzenia projektu sklepu internetowego na studia ale opornie idzie mi ten język.
Aktualnie mam zrobione tyle, że program pyta się użytkownika co chce kupić, ile tego i za jaką cenę, a na końcu wypisuje wszystko i dla każdego przedmiotu podaje cenę * ilość, a potem sumuje cenę wszystkich zakupionych przedmiotów.

Mam też drugą klasę "Storage" połączoną z trzecią klasą "Item" gdzie przechowuję w ArrayList dane o danym przedmiocie, jego nazwie, cenie oraz ilości jaką mam na stanie.

Mój problem zaczął się teraz, ponieważ potrzebuję przerobić Maina tak żeby użytkownik mógł wybrać dostępny produkt a następnie podać jego ilość.
Po dodaniu wszystkiego co potrzebne i wybraniu "KUP" to co znalazło się w koszyku np dwa rowery powinny odjąć się od aktualnego stanu magazynowego w klasie Storage.
I w jaki sposób mogę to osiągnąć? Niestety mam ogrom pomysłów ale nie wiem jak je przelać na kod.

Pozostało 580 znaków

2019-01-08 17:54
1

Np w klasie Storage zrób sobie mapę gdzie kluczem będzie obiekt Rower, a wartością liczba elementów w magazynie. Jak użytkownik kupi Rower to po prostu zmniejszysz wartość o 1.
Ważne, że taki Storage po wyłączeniu aplikacji zniknie. Jak chcesz żeby nie znikał to musisz to jakoś utrwalić. Albo zapisać do pliku tekstowego albo użyć jakieś prostej bazy danych. Chociaż wydaje mi się, że na początkowym etapie nauki odpuść sobie jeszcze bazy danych przez chwilę.

Pozostało 580 znaków

2019-01-09 09:46
0

A w jaki sposób można zmniejszyć ilość danych produktów w ArrayList dla poszczególnych rekordów?

Pozostało 580 znaków

2019-01-09 10:38
0

Nie rozumiem pytania. Pokaż kod

Pozostało 580 znaków

2019-01-09 11:16
0
Berylo napisał(a):

Nie rozumiem pytania. Pokaż kod


package IS;

import java.util.ArrayList;

public class Storage {

    public static void menu(Storage storage) {

            ArrayList<Item> Storage = new ArrayList<>();

            Storage.add(new Item("Rower", 300, 10));
            Storage.add(new Item("Kask", 10, 50));
            Storage.add(new Item("Rękawiczki", 5, 75));
            Storage.add(new Item("Strój kolarski", 50, 20));
            Storage.add(new Item("Koszyk", 10, 100));

            for (Item a : Storage)
                System.out.println("Produkt " + a.getName() + " o wartości " + a.getPrice() + " dostępny w ilości " + a.getQuantity());

    }

}

W ten sposób mam utworzoną listę i teraz siedząc w drugiej klasie "Koszyk" muszę zrobić coś takiego, że użytkownik wybiera, że chce kupić Rower w ilości dwa. To zostaje dodane do koszyka (jeśli istnieje pobrana przez system ilość. Jeśli nie to zwraca błąd) i albo kontynuuje się zakupy albo je kończy i jeśli jest koniec to następuje zmniejszenie ilości o 2 w liście, a koszyk zostaje wyzerowany i następuje powrót do początku programu.

I tu właśnie nie wiem w jaki sposób mogę to osiągnąć.
ArrayList --> Kolejno (Nazwa, cena, ilość)

Pozostało 580 znaków

2019-01-09 11:25
0
for (Item item : Storage){
    if (Objects.equals(item.getName(), name){
        item.setQuantity(item.getQuantity - quantity);
    }
}

albo

Storage.steam()
    .filter(item -> Objects.equals(item.getName(), name))
    .forEach(item -> item.setQuantity(item.getQuantity - quantity));

Pozostało 580 znaków

2019-01-09 11:29
0

Produkt nie powinien w sobie zawierać informacji o stanie magazynowym. To tak jakbyś kupił w sklepie rower, a on miałby naklejkę z informacją ile jeszcze rowerów zostało w magazynie.
Item powinien mieć nazwę i cenę, a ilość w magazynie powinna być trzymana np tak jak pisałem wcześniej.

Przykład:

Item rower = new Item("Rower", 300);
Map<Item, Integer> storage = new HashMap<Item, Integer>();
storage.put(rower, 10);

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0