Marios Pizza

Marios pizzaria har følgende data:
- Et menu-kort med 20 pizzaer
- En historik af 100 orders
Pizzariaet gemmer menu- og order-information i csv filer. På længere sigt kunne de tænke sig at gemme data i en database, men ikke til en start.
Din opgave er at:
- Indlæse og bearbejde data med passende datastrukturer
- Sortere og analysere data for at besvare forretningsspørgsmål
Brug Java + collections såsom:
ArrayListHashMapHashSet
menu.csv (download)
Kolonner:
number, title, description, price
Eksempel:
1,Margherita,Delicious Margherita pizza,75
orders.csv (download)
Kolonner:
amount, pizza_number, price, date
Eksempel:
2,1,75,2024-01-03
amount= antal solgt i denne orderpizza_number= FK der refererer tilmenu.csvprice= enhedspris ved købdate= ISO-dato
Læs menu.csv ind i en List<Pizza>.
Anbefalede felter:
- number (int)
- title (String)
- description (String)
- price (double/int)
→ Gem i en ArrayList<Pizza>
Implementér sortering ved hjælp af
Comparable.
Udskriv begge sorterede lister.
Lav en klasse Order og indlæs orders.csv i:
List<Order>
Tæl samlet antal pizzaer solgt på tværs af alle ordrer.
Tip: beregn summen af
amount
Forventet output eksempel:
Total pizzas sold: 241
Beregn total omsætning per pizza:
sum(amount * price)
→ Brug et HashMap<Integer, Integer>
Hvor key = pizza_number, value = total omsætning
Eksempel output:
#01 Margherita → 5,250 kr.
#02 Pepperoni → 6,800 kr.
...
Beregn:
date → number of sold pizzas
→ Brug HashMap<String, Integer>
Eksempel:
2024-01-04 → 7 orders
2024-01-05 → 3 orders
Brug HashSet<String>
Eksempel:
Unique sales dates: 42
class Pizza {
int number;
String title;
String description;
int price;
}
class Order {
int amount;
int pizzaNumber;
int price;
LocalDate date;
}
| Mål | Struktur |
|---|---|
| Menu import | List<Pizza> |
| Sort menu | Comparator |
| Orders import | List<Order> |
| Sales per menu item | HashMap<Integer, Integer> |
| Sales per date | HashMap<String, Integer> |
| Unique dates | HashSet<String> |
| Idé | Emne |
|---|---|
| Mest populære pizza | Aggregation |
| Mindst solgte pizza | Aggregation |
| Mest profitable | Aggregation |
| Filtrering på dato | Streams |
| Eksporter resultater | File I/O |
| Udskriv flot menu | Formatting |
- Hvorfor er en
Listnyttig til menu-data? - Hvorfor er en
Mapbedre end enListtil omsætning per pizza? - Hvorfor er
HashSetdet bedste værktøj til at tælle unikke datoer? - Hvilke sorteringsparametre giver mening for pizzas?
- Hvilken information kan pizzariaet bruge til at forbedre forretningen?