NewbiProgrammer
Gebruiker
- Lid geworden
- 18 okt 2009
- Berichten
- 264
Hallo, ik moet voor school een opdrachtje maken en nu loop ik een beetje vast. Het programma doet het opzich gewoon goed. Alleen hij presenteert de verkeerde "beste gast" in die methode zit dus de fout. Ik zal alle code hier even neerplakken zodat je een algemeen beeld krijgt van het programma (als het nodig is).
Apl:
Hotel:
Kamer:
Gast:
Als je de Apl bekijkt moet er als beste gast uitkomen: Jan de Sickenvas, maar bij mij komt er Gerd Vuuren uit.
M.v.g
Bram
Apl:
Code:
public class Apl {
public static void main(String[] args) {
Hotel hotel = new Hotel();
// argumenten: kamernummer, type, verdieping
hotel.addKamer(12, "normal", 1);
hotel.addKamer(13, "economy", 1);
hotel.addKamer(32, "luxury", 2);
hotel.addKamer(24, "honeymoonsuite", 2);
hotel.addKamer(3, "normal", 0);
hotel.addGast("Gerd Vuuren","Heuvelrug 28, Boekelo");
hotel.addGast("Jan de Sickenvas", "Dalstraat 11, Enschede");
hotel.addGast("Arend Reiselief", "Hoogsingel 41, Hengelo");
hotel.addGast("Toos Loemsant", "Tussenweg 3, Almelo");
hotel.registreer("Toos Loemsant", 32);
hotel.registreer("Jan de Sickenvas", 12);
System.out.println("===================================");
System.out.println("Gegevens van kamer 12:");
hotel.drukAfKamerGegevens(12);
System.out.println("===================================");
System.out.println("Lege kamers:");
hotel.drukAfLegeKamers();
System.out.println("===================================");
System.out.println("Bedrijfsresultaat:");
hotel.drukAfWinst();
hotel.schrijfUit("Jan de Sickenvas");
System.out.println("===================================");
System.out.println("Gegevens van kamer 12:");
hotel.drukAfKamerGegevens(12);
hotel.registreer("Jan de Sickenvas", 13);
System.out.println("===================================");
System.out.println("Beste gast:");
hotel.drukAfBesteGast();
}
Hotel:
Code:
import java.util.*;
import java.io.*;
import java.net.*;
public class Hotel
{
private ArrayList<Kamer> kamerlijst = new ArrayList<Kamer>(); //nieuwe arraylist van kamers
private ArrayList<Gast> gastenlijst = new ArrayList<Gast>(); //nieuwe arraylist van gasten
private int nummertje = 0;
private int kamernummer = 0;
public void addKamer(int kamernummer, String type, int verdieping ) { //voeg kamer toe functie.
Kamer kamer = new Kamer(kamernummer, verdieping, type);
if( type.equalsIgnoreCase( "luxury" ) || type.equalsIgnoreCase( "honeymoonsuite" ) || type.equalsIgnoreCase( "normal" ) || type.equalsIgnoreCase( "economy")) {
kamerlijst.add( kamer );
}
}
public void addGast(String naam, String adres) { //voeg gast toe functie
Gast gast = new Gast(naam, adres);
gastenlijst.add( gast );
}
public void registreer(String naam, int kamernummer) {
Gast gast = getGast( naam);
for( Kamer k : kamerlijst ) {
if(kamernummer == ( k.getKamernummer() )) {
k.setGast( gast );
}
}
}
public void drukAfKamerGegevens(int nummertje) { //deze methode drukt de kamergegevens af.
for( Kamer k : kamerlijst ) {
if( nummertje == ( k.getKamernummer() )) {
System.out.println( k.toString() );
}
}
}
public void drukAfLegeKamers() {
for( Kamer kamer : kamerlijst ) {
if( kamer.isLeeg() == true ) {
System.out.println("nr. " + kamer.getKamernummer() + " op verdieping " + kamer.getVerdieping() + ", type: " + kamer.getType() + "\n\t (leeg)" );
}
}
}
public void schrijfUit( String naam ) {
for(Kamer k : kamerlijst ) {
if( k.heeftGast( naam ) ) {
k.schrijfGastUit();
}
}
}
public Gast getGast(String naam){
for(Gast gast : gastenlijst ) {
if(gast.getNaam().equalsIgnoreCase(naam)) {
return gast;
}
}
return null;
}
public void drukAfBesteGast() {
int maxAantal = -1;
Gast besteGast = null;
for(Gast g : gastenlijst) {
if(g.getAantalBezoeken() > maxAantal) {
maxAantal = g.getAantalBezoeken();
besteGast = g;
}
if( besteGast != null ) {
System.out.println(besteGast.toString());
}
}
}
public double winst() {
double winst = 0;
for(Kamer kamer : kamerlijst ) {
if(kamer.isLeeg() == false ) {
if(kamer.getType().equalsIgnoreCase("luxury")){
winst += (40.75);
}
if(kamer.getType().equalsIgnoreCase("honeymoonsuite")){
winst += (55);
}
if(kamer.getType().equalsIgnoreCase("normal")){
winst += (28.25);
}
if(kamer.getType().equalsIgnoreCase("economy")){
winst += (24.30);
}
}else{
if(kamer.isLeeg() == true) {
winst += (-10.50);
}
}
}
return winst;
}
public void drukAfWinst() {
System.out.println( "Totale winst is EUR " + winst() );
}
}
Kamer:
Code:
public class Kamer
{
private int kamernummer;
private int verdieping;
private String type;
private Gast gast;
public Kamer(int kamernummer, int verdieping, String type) {
this.kamernummer = kamernummer;
this.verdieping = verdieping;
this.type = type;
}
public void setGast(Gast gast){
this.gast = gast;
}
public boolean isLeeg() {
return gast == null;
}
public int getKamernummer() {
return kamernummer;
}
public String getType() {
return type;
}
public int getVerdieping() {
return verdieping;
}
public boolean heeftGast(String naam){
if(isLeeg()) {
return false;
}
return (gast.getNaam().equalsIgnoreCase(naam));
}
public void schrijfGastUit(){
gast = null;
}
public String toString() {
String alles = ("Kamern nr. " + kamernummer + " op verdieping " + verdieping + ", type: " + type);
if(gast == null){
alles += "\n\t(leeg)";
}else {
alles += "\n\t" + gast.toString();
}
return alles;
}
}
Gast:
Code:
/**
* Write a description of class Gast here.
*
* @author (your name)
* @version (a version number or a date)
*/
public class Gast
{
private String naam;
private String adres;
private String woonplaats;
public int aantalBezoeken;
public Gast(String naam, String adres) {
this.naam = naam;
this.adres = adres;
}
public String getNaam() {
return naam;
}
public void verhoogBezoek() {
aantalBezoeken = 0;
aantalBezoeken++;
}
public int getAantalBezoeken() {
return aantalBezoeken;
}
public String toString() {
return ( "Gast: " + naam + ", " + adres );
}
}
Als je de Apl bekijkt moet er als beste gast uitkomen: Jan de Sickenvas, maar bij mij komt er Gerd Vuuren uit.
M.v.g
Bram