Beschrijving
De Motion Picture Association of America (MPAA) is een Amerikaanse organisatie opgericht in 1922. Als doel heeft de MPAA het promoten van de Amerikaanse film en het vergroten van de verkopen van de bij de MPAA aangesloten studio’s en producenten. De MPAA verzorgt ook de leeftijdsadviezen en -voorschriften voor films die in de Verenigde Staten worden vertoond.
Adviezen:
- G (General Audiences): Alle leeftijden.
- PG (Parental Guidance Suggested): Meekijken door ouders of verzorgers gewenst.
- PG-13 (Parents Strongly Cautioned): Film bevat mogelijk materiaal dat ongeschikt is voor kinderen jonger dan 13 jaar.
- R (Restricted): Personen jonger dan 17 jaar mogen alleen samen met een ouder of verzorger naar de film kijken.
- NC-17 (No one 17 and under admitted): Niemand van 17 jaar of jonger mag de film kijken.
Opgave
Download de Enum Label
. Voeg deze file toe aan de src map van je project in de juiste package.
Maak een klasse Movie die ratings van een film bevat.
De klasse bevat de volgende instantievariabelen:
- De naam van de film wordt opgeslagen in de String instantievariabele naamFilm
- Het MPAA label van de film wordt opgeslagen als waarde van de Enum Label. Deze instantievariabele heeft als naam MPAA.
- Het aantal verschrikkelijke (rating = 1) ratings wordt opgeslagen in de int instantievariabele verschrikkelijk
- Het aantal slechte (rating = 2) ratings wordt opgeslagen in de int instantievariabele slecht
- Het aantal redelijke (rating = 3) ratings wordt opgeslagen in de int instantievariabele redelijk
- Het aantal goede (rating = 4) ratings wordt opgeslagen in de int instantievariabele goed
- Het aantal geweldige (rating = 5) ratings wordt opgeslagen in de int instantievariabele geweldig
De klasse bevat de volgende methodes:
- Defineer een constructor met als argumenten twee Strings: 1) de naam van de film en 2) het MPAA label. Het aantal ratings van elke soort wordt op 0 gezet.
- Definieer accessor methodes voor de naam en het MPAA label van de film.
- De methode voegRatingToe heeft een int als argument dat aangeeft welke rating de film krijgt. Bij een waarde van 1 tot en met 5 wordt de overeenkomstige teller verhoogt en wordt er true teruggegeven. Bij andere waarden wordt er false teruggegeven.
- De methode getAantalRatings zonder argumenten geeft terug hoeveel geldige ratings er zijn toegevoegd (int).
- De methode getGemiddeldeRating zonder argumenten geeft terug wat de gemiddelde rating is van de film (double). Let op voor deling door 0.
Bijkomende info
- De enum Label wordt in deze opgave niet binnen een klasse gedefinieerd maar extern als klasse (zie 6.6, pagina 483 -Savitch en Mock). Bekijk de valueOf methode van een enum voor het omzetten van een String naar een enum.
- gebaseerd op oef 10, pagina 409 en oef 11, pagina 516 - Savitch en Mock
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).
- test05methodsPresent: test of de verwachte methodes aanwezig zijn in de ingediende klasse en of de methode definities overeenkomen met de verwachte definities (= test geen effect!).
- test06accessorsMutators: test of de ingediende klasse de al dan niet verwachte accessor- en mutatormethodes definieert en of deze het verwachte effect hebben.
- test07voegRatingToe: test de voegRatingToe-methode.
- test08getAantalRatings: test de getAantalRatings-methode.
- test09getGemiddeldeRating: test de getGemiddeldeRating-methode.