BasketAnalysis Deel1
In datamining is het a-priorialgoritme een algoritme dat helpt om associatieregels te leren uit een database met informatie over transacties, zoals per aankoop de gekochte producten in een supermarkt of de bezochte pagina’s op een website per sessie. Een voorbeeld van een associatieregel is: ‘in 80% van de gevallen kopen klanten die product A kopen ook product product B’.
Het algoritme helpt om associatieregels te leren door patronen te vinden in de data. Formeler gezegd, tracht het algoritme verzamelingen van transactieitems te vinden die meer dan een vooraf bepaald aantal keer voorkomen in de data. Bijvoorbeeld kan het algoritme gebruikt worden om in de dataset te zoeken naar frequente combinaties van aangekochte producten, zoals elke combinatie van producten die minstens 3 keer samen aangekocht werden.
Deel 1: Klasse BasketItem
Download de interface Item
. Maak geen wijzigingen aan deze gegeven interface.
Merk op dat de klassen allemaal in de default package moeten zitten (=rechtstreeks in de ‘src’-map van het project in NetBeans).
Dit is nodig om deze later in te kunnen dienen op het Dodona platform voor feedback door middel van copy-pasten van de hele inhoud
van de klasse in het vak van de oefening op Dodona. Zorg er ook wel voor dat je ingediende code compileert, bij compilatiefouten kan
geen (zinvolle) feedback gegeven worden.
- Definieer de klasse BasketItem als implementatie van de interface Item.
- Voeg de instantievariabelen toe zoals beschreven in het bovenstaande klassendiagram.
- Definieer de constructor zoals beschreven in het bovenstaande klassendiagram. Deze initialiseert de
instantievariabelen met de overeenkomstige parameter. Indien de meegegeven quantity negatief of 0 is, zal de volgende
boodschap weergegeven worden in de console: “Ongeldige hoeveelheid!”. Na het weergeven van de boodschap wordt het programma
afgesloten.
- Voeg een accessormethode toe voor instantievariabele ‘quantity’.
- Overschrijf de methode getItemName (van Item) die geen parameters heeft. De methode geeft de ‘productID’ van het
BasketItem terug.
- Overschrijf de methode equals (van Object) die een Object object als parameter heeft. De methode geeft ‘true’ terug
indien de meegegeven parameter niet ‘null’ is, een object van de klasse BasketItem is én de ‘productID’ van beide objecten dezelfde
is.
Hierbij nog wat uitleg over de Dodona-testen voor deze oefening:
- test00objectConcept: test of de ingediende klasse de verwachte de klasse definitie heeft (interface/abstracte klasse/klasse/enum/…).
- test01inheritance: test of de ingediende klasse de verwachte superklasse heeft en de verwachte interfaces implementeert.
- test02variables_presence: test of de ingediende klasse de verwachte instantievariabelen en statische variabelen definieert.
- test03variables_staticInitialValue: test of de statische variabelen van de klasse geinitialiseerd worden met de verwachte waarde (indien van toepassing).
- test04constructor: test of de constructor het gewenste effect heeft (indien van toepassing).
- test05constructor_exit: test de constructor in een scenario waarin het programma afgesloten hoort te worden.
- test06constructor_exit: test de constructor in een scenario waarin het programma afgesloten hoort te worden.
- test07constructor_exit: test de constructor in een scenario waarin het programma afgesloten hoort te worden.
- test08constructor_exit: test de constructor in een scenario waarin het programma afgesloten hoort te worden.
- test09constructor_exit: test de constructor in een scenario waarin het programma afgesloten hoort te worden.
- test10constructor_exit: test de constructor in een scenario waarin het programma afgesloten hoort te worden.
- test11constructor_exit: test de constructor in een scenario waarin het programma afgesloten hoort te worden.
- test12methodsPresent: test of de verwachte methodes aanwezig zijn in de ingediende klasse en of de methode definities overeenkomen met de verwachte definities (= test geen effect!).
- test13accessorsMutators: test of de ingediende klasse de al dan niet verwachte accessor- en mutatormethodes definieert en of deze het verwachte effect hebben.
- test14getItemName: test de getItemName-methode.
- test15equals: test de equals-methode.
- test16equals_enkelNull: test de equals-methode enkel voor het geval dat een leeg object (= null) meegegeven wordt als parameter.
- test17equals_enkelVanDeKlasse: test de equals-methode enkel voor scenario’s dat een object van de juiste klasse meegegeven wordt als parameter.