Skip to main content
Dat 1. Sem Efterår 2025
Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Back to homepage

Marios Pizza

🍕 Pizza Dataanalyse med Datastrukturer

Marios

Baggrund

Marios pizzaria har følgende data:

  1. Et menu-kort med 20 pizzaer
  2. 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:

  • ArrayList
  • HashMap
  • HashSet

Beskrivelse af data

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 order pizza_number = FK der refererer til menu.csv price = enhedspris ved køb date = ISO-dato


✅ Opgaver

1) Importér menuen

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>


✅ 2) Sortér menuen

a) Sortér efter pizza number (stigende)

Implementér sortering ved hjælp af Comparable.

Udskriv begge sorterede lister.


✅ 3) Importér orders

Lav en klasse Order og indlæs orders.csv i:

  • List<Order>

✅ 4) Aggregér: antal solgte pizzaer i alt

Tæl samlet antal pizzaer solgt på tværs af alle ordrer.

Tip: beregn summen af amount

Forventet output eksempel:

Total pizzas sold: 241

✅ 5) Samlet omsætning per pizza (menu-item)

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.
...

✅ 6) Antal solgte pizzaer per dato

Beregn: date → number of sold pizzas

→ Brug HashMap<String, Integer>

Eksempel:

2024-01-04 → 7 orders
2024-01-05 → 3 orders

✅ 7) Antal unikke datoer

Brug HashSet<String>

Eksempel:

Unique sales dates: 42

✅ Forslåede Klassestrukturer

Pizza

class Pizza {
    int number;
    String title;
    String description;
    int price;
}

Order

class Order {
    int amount;
    int pizzaNumber;
    int price;
    LocalDate date;
}

✅ Oversigt over Datastrukturer

MålStruktur
Menu importList<Pizza>
Sort menuComparator
Orders importList<Order>
Sales per menu itemHashMap<Integer, Integer>
Sales per dateHashMap<String, Integer>
Unique datesHashSet<String>

⭐ Mulige Udvidelser

IdéEmne
Mest populære pizzaAggregation
Mindst solgte pizzaAggregation
Mest profitableAggregation
Filtrering på datoStreams
Eksporter resultaterFile I/O
Udskriv flot menuFormatting

💬 Refleksionsspørgsmål

  1. Hvorfor er en List nyttig til menu-data?
  2. Hvorfor er en Map bedre end en List til omsætning per pizza?
  3. Hvorfor er HashSet det bedste værktøj til at tælle unikke datoer?
  4. Hvilke sorteringsparametre giver mening for pizzas?
  5. Hvilken information kan pizzariaet bruge til at forbedre forretningen?