Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**
- * De klasse persoon zal een aantal gegevens bewaren van een persoon.
- *
- * @author R. Siersma
- * @date 23-11-2012
- */
- public class Persoon
- {
- // Burgerservicenummer van de persoon
- private int bsn;
- // Voornaam en achternaam van de persoon
- private String voornaam;
- private String achternaam;
- // Geboortedatum van de persoon gesplitst in dag, maand en jaar
- private int dag, maand, jaar;
- // Geslacht van de persoon
- private char geslacht;
- private Dienblad dienblad;
- /**
- * Constructor voor de klasse Persoon
- *
- * @param bsn Burgerservicenummer van de persoon
- * @param voornaam Voornaam van de persoon
- * @param achternaam Achternaam van de persoon
- * @param dag Dag van de geboortedatum van de persoon
- * @param maand Maand van de geboortedatum van de persoon
- * @param jaar Jaar van de geboortedatum van de persoon
- * @param geslacht Geslacht van de persoon
- */
- public Persoon(
- int bsn,
- String voornaam,
- String achternaam,
- int dag,
- int maand,
- int jaar,
- char geslacht
- )
- {
- // Stel het bsn in met behulp van de setBsn methode
- this.setBsn(bsn);
- // Stel de voornaam in met behulp van de setVoornaam methode
- this.setVoornaam(voornaam);
- // Stel de voornaam in met behulp van de setAchternaam methode
- this.setAchternaam(achternaam);
- // Stel de geboortedatum in met behulp van de setGeboortedatum methode
- this.setGeboortedatum(dag, maand, jaar);
- // Stel het geslacht in met behulp van de setGeslacht methode
- this.setGeslacht(geslacht);
- }
- /**
- * Constructor voor de klasse Persoon
- */
- public Persoon()
- {
- // Stel de waarden in voor een onbekende geboortedatum en geslacht
- this.setGeboortedatum(0,0,0);
- this.setGeslacht('O');
- }
- /**
- * Getter voor BSN
- * @return BSN als int
- */
- public int getBsn ()
- {
- return this.bsn;
- }
- /**
- * Getter voor voornaam
- * @return Voornaam als string
- */
- public String getVoornaam ()
- {
- return this.voornaam;
- }
- /**
- * Getter voor achternaam
- * @return Achternaam als string
- */
- public String getAchternaam ()
- {
- return this.achternaam;
- }
- /**
- * Getter voor geboortedatum
- * @return Geboortedatum als string
- */
- public String getGeboorteDatum()
- {
- String temp;
- if (dag==0 && maand==0 && jaar==0)
- {
- temp="Onbekend";
- }
- else
- {
- temp=dag+"/"+maand+"/"+jaar;
- }
- return temp;
- }
- /**
- * Getter voor geslacht
- * @return Geslacht als string
- */
- public String getGeslacht ()
- {
- String temp;
- // Als het geslacht 'M' is return dan "Man"
- if (this.geslacht == 'M')
- {
- temp = "Man";
- }
- // Als het geslacht 'V' is return dan "Vrouw"
- else if (this.geslacht == 'V')
- {
- temp = "Vrouw";
- }
- // Het geslacht is niet 'M' of 'V', return geslacht "Onbekend"
- else
- {
- temp = "Onbekend";
- }
- return temp;
- }
- /**
- * setBsn
- * Stelt het gegeven burgerservicenummer in voor het veld bsn.
- *
- * @param bsn het burgerservicenummer van de persoon
- */
- public void setBsn (int bsn)
- {
- this.bsn = bsn;
- }
- /**
- * setVoornaam
- * Stelt de gegeven voornaam in voor het veld voornaam.
- *
- * @param voornaam de voornaam van de persoon
- */
- public void setVoornaam (String voornaam)
- {
- this.voornaam = voornaam;
- }
- /**
- * setAchternaam
- * Stelt de gegeven achternaam in voor het veld achternaam.
- *
- * @param achternaam de achternaam van de persoon
- */
- public void setAchternaam (String achternaam)
- {
- this.achternaam = achternaam;
- }
- /**
- * setGeslacht
- * Stelt het gegeven geslacht in voor het veld geslacht.
- *
- * @param geslacht het geslacht van de persoon (M of V, O voor onbekend)
- */
- public void setGeslacht (char geslacht)
- {
- if (Character.toUpperCase(geslacht) == 'M')
- {
- this.geslacht = 'M';
- }
- else if (Character.toUpperCase(geslacht) == 'V')
- {
- this.geslacht = 'V';
- }
- else {
- this.geslacht = 'O';
- }
- }
- /**
- * isSchrikkeljaar
- * Geeft aan of het jaartal (gegeven in parameter) een schrikkeljaar is of niet
- *
- * @param jaartal Het jaartal waarvan moet worden berekend of het een schrikkeljaar is.
- *
- * @return Als het een schrikkeljaar is 'true' anders 'false'
- */
- private boolean isSchrikkeljaar(int jaartal)
- {
- /*
- * Berekening:
- * if
- * (
- * jaartalDeelbaarDoor4
- * &&
- * (
- * jaartalNietDeelbaarDoor100
- * ||
- * jaartalDeelbaarDoor400
- * )
- * )
- * {
- * schrikkeljaar
- * }
- */
- if
- (
- // Als het jaartal deelbaar is door 4 is het een schrikkeljaar
- (jaartal % 4 == 0)
- &&
- (
- // Tenzij het jaartal ook deelbaar is door 100
- (jaartal % 100 != 0)
- ||
- // Maar als het deelbaar is door 100 en door 400 is het wel een schrikkeljaar
- (jaartal % 400 == 0)
- )
- )
- {
- return true;
- }
- else {
- return false;
- }
- }
- /**
- * setGeboortedatum
- * Stelt de gegeven dag, maand en jaar in voor de velden dag, maand, jaar.
- *
- * @param dag de geboortedag van de persoon
- * @param maand de geboortemaand van de persoon
- * @param jaar het geboortejaar van de persoon
- */
- public void setGeboortedatum (int dag, int maand, int jaar)
- {
- // De maximale dagwaarde voor een bepaalde maand.
- int maxDag;
- // Aan de hand van de de maand wordt gekeken hoeveel dagen er in die maand zitten.
- switch (maand) {
- case 1:
- case 3:
- case 5:
- case 7:
- case 8:
- case 10:
- case 12:
- // In deze maanden zitten er 31 dagen in een maand
- maxDag = 31;
- break;
- case 2:
- // Als het een schrikkeljaar is zitten er 29 dagen in februari
- if (this.isSchrikkeljaar(this.jaar))
- {
- maxDag = 29;
- }
- // Als het geen schrikkeljaar is maar 28 dagen
- else
- {
- maxDag = 28;
- }
- break;
- default:
- maxDag = 30;
- }
- // Controleer of alle eisen voor de datum waar zijn.
- if (
- // Dag moet 1 of hoger zijn
- dag < 1
- ||
- // Dag moet onder de maximum dag van die maand zitten
- dag > maxDag
- ||
- // Maand moet 1 of hoger zijn
- maand < 1
- ||
- // Maand mag maximaal 12 zijn
- maand > 12
- ||
- // Jaar moet 1900 of hoger zijn
- jaar <= 1900
- ||
- // Jaar moet onder 2100 zitten
- jaar >= 2100
- )
- {
- // Geboortedatum is incorrect, zet alle velden op 0.
- this.dag = 0;
- this.maand = 0;
- this.jaar = 0;
- }
- // Geboorte ddatum is correct, stel hem in
- else
- {
- this.dag = dag;
- this.maand = maand;
- this.jaar = jaar;
- }
- }
- /**
- * Drukt de gegevens van de persoon af naar de terminal\
- */
- public void drukAf()
- {
- System.out.println("##########");
- System.out.println("Bsn: " + this.getBsn());
- System.out.println("Voornaam: " + this.getVoornaam());
- System.out.println("Achternaam: " + this.getAchternaam());
- System.out.println("Geboortedatum: " + this.getGeboorteDatum());
- System.out.println("Geslacht: " + this.getGeslacht());
- System.out.println("##########");
- }
- /**
- * Methode om dienblad te koppelen aan een persoon
- * @param dienblad
- */
- public void pakDienblad(Dienblad dienblad)
- {
- if (this.heeftDienblad())
- {
- System.out.println("U heeft al een dienblad gepakt.");
- }
- else
- {
- this.dienblad = dienblad;
- }
- }
- /**
- * Methode om artikel te pakken en te plaatsen op het dienblad
- * @param artikel
- */
- public void pakArtikel(Artikel artikel)
- {
- if (this.heeftDienblad())
- {
- dienblad.voegToe(artikel);
- }
- else
- {
- System.out.println("U moet eerst een dienblad pakken voordat u een artikel kunt pakken.");
- }
- }
- /**
- * Methode om artikel te pakken en te plaatsen op het dienblad
- * @param artikel
- */
- public boolean heeftDienblad()
- {
- if (this.dienblad == null)
- {
- return false;
- }
- else
- {
- return true;
- }
- }
- /**
- * Methode om de totaalprijs van de artikelen
- * op dienblad dat bij de persoon hoort uit te rekenen
- * @return De totaalprijs
- */
- public double getTotaalPrijs()
- {
- if (heeftDienblad())
- {
- return dienblad.getTotaalPrijs();
- }
- else
- {
- return 0.00;
- }
- }
- /**
- * Methode om het aantal artikelen op dienblad dat bij de
- * persoon hoort te tellen
- * @return Het aantal artikelen
- */
- public int getAantalArtikelen()
- {
- if (heeftDienblad())
- {
- return dienblad.getAantalArtikelen();
- }
- else
- {
- return 0;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement