Springen naar inhoud

laatste maal hulp nodig dit jaar voor java :-)



  • Log in om te kunnen reageren

#1

rcb8dboy

    rcb8dboy


  • >25 berichten
  • 35 berichten
  • Gebruiker

Geplaatst op 26 mei 2013 - 12:35

hallo

ik zit terug met een probleem voor een laatst een laatste project waar ik niet direct een oplossing voor vind.
Ik heb zoveel mogelijk de code proberen te verfijnen maar het zal waarschijnlijk nog beter kunnen.
Ik wil de code wel zelf schrijven,omdat we deze volgende week moeten indienen maar ook verdedigen,dus als er code inzit die we bv nog niet gezien hebben in de les en ik krijg er een vraag over die niet kan beantwoord worden heb ik een probleem.

We moeten een reservatietool maken voor een hotel.
Het is zeer basic dus 10 kamers hardcoded in 4 array's per kamer type.
Het kamer nummer heb ik meegegeven in de array om later op het kamernummer te kunnen selecteren
Room []basic = new Room [5];
Room []basicplus = new Room [3];
Room []juniorSuite = new Room [1];
Room []seniorSuite = new Room [1];

public void makeRooms()
{
basic[0] = new Room(101);
basic[1] = new Room(102);
basic[2] = new Room(103);
basic[3] = new Room(104);
basic[4] = new Room(105);
basicplus[0] = new Room(201);
basicplus[1] = new Room(202);
basicplus[2] = new Room(203);
juniorSuite[0] = new Room(301);
seniorSuite[0] = new Room(401);

ik kan perfect klanten toevoegen ,de bezetting opvragen doormede van getters maar klanten verwijderen geeft een null pointer exception.
Het probleem is dat ik al zo veel aangepast heb dat ik er niet meer uit geraak.

de code om klanten te verwijderen.
De heb object mijn mijnbevraging dient enkel om een menu op te roepen welke dingen er moeten gebeuren
ik ben enkel aan het testen geweest op de basic array omdat het geen zin heeft om verder te doen als deze nog niet lukt
public void RemoveBezetting(Room[] basic, Room[] basicplus,Room[] juniorSuite, Room[] seniorSuite) {
  mijnbevraging.verwijderRoom();
  int i = 0;
  switch (mijnbevraging.getVerwijder()) {
       	 case 1 :
                for (i = 0; i < basic.length; i++) {
                    if (basic[i] != null && basic[i].isBezet()) {
                        System.out.println("kamer " + basic[i].getRoomId()+ " is bezet ");
                kamernummer = mijnbevraging.removeKamer();
                basic[i].getRoomId();
                System.out.println(kamernummer + " is uitgeboekt ");
            }
            else {
                System.out.println("alle kamers zijn nog vrij");
//hier print hij natuurlijk 5 keer de code uit dit moet ook nog opgelost raken
                    }
                }

                // System.out.println("kamer " + basic[i].getRoomId() +
                // " is nog vrij");
                // i--;

                break;
   case 2 :
	for (i = 0; i < basicplus.length; i++) {
	 if (basicplus[i] != null) {
	  System.out.println(basicplus[i].getRoomId() + " index "
		+ i);
	 }
	}
	kamernummer = mijnbevraging.removeKamer();
	System.out.println(kamernummer + " printout ");
	basicplus[kamernummer] = null;
	break;

   case 3 :
	for (i = 0; i < juniorSuite.length; i++) {
	 if (juniorSuite[i] != null) {
	  System.out.println(juniorSuite[i].getRoomId()
		+ " index " + i);
	 }
	}
	kamernummer = mijnbevraging.removeKamer();
	System.out.println(kamernummer + " printout ");
	juniorSuite[kamernummer] = null;
	break;

   case 4 :
	for (i = 0; i < seniorSuite.length; i++) {
	 if (seniorSuite[i] != null) {
	  System.out.println(seniorSuite[i].getRoomId()
		+ " index " + i);
	 }
	}
	kamernummer = mijnbevraging.removeKamer();
	System.out.println(kamernummer + " printout ");
	seniorSuite[kamernummer] = null;
	break;
  }
}

kan iemand me terug op weg helpen met dit probleem?

mvg b

Veranderd door rcb8dboy, 26 mei 2013 - 12:46


Dit forum kan gratis blijven vanwege banners als deze. Door te registeren zal de onderstaande banner overigens verdwijnen.

#2

rcb8dboy

    rcb8dboy


  • >25 berichten
  • 35 berichten
  • Gebruiker

Geplaatst op 26 mei 2013 - 12:59

ik zie nu dat ik de verkeerde code heb gecopieerd bij case 1

hier de juiste code

case 1 :
                for (i = 0;i < basic.length; i++) {
                    if (basic[i] != null && basic[i].isBezet()) {
                        System.out.println("kamer " + basic[i].getRoomId()+ " is bezet ");
                kamernummer = mijnbevraging.removeKamer();
                basic[kamernummer].setBezet(false);
                System.out.println(kamernummer + " is uitgeboekt ");
            }
            else {
                System.out.println("alle kamers zijn nog vrij");
//hier print hij natuurlijk 5 keer de code uit dit moet ook nog opgelost raken
                    }
                }

                // System.out.println("kamer " + basic[i].getRoomId() +
                // " is nog vrij");
                // i--;

                break;

Veranderd door rcb8dboy, 26 mei 2013 - 13:05


#3

rcb8dboy

    rcb8dboy


  • >25 berichten
  • 35 berichten
  • Gebruiker

Geplaatst op 26 mei 2013 - 21:47

opgelost na een namiddag denken :-)

#4

Jan van de Velde

    Jan van de Velde


  • >5k berichten
  • 44872 berichten
  • Moderator

Geplaatst op 26 mei 2013 - 21:54

Opmerking moderator :

bedankt dat je dat laat weten, spijtig dat kennelijk niemand je eerder kon helpen.
ALS WIJ JE GEHOLPEN HEBBEN....
help ons dan eiwitten vouwen, en help mee ziekten als kanker en zo te bestrijden in de vrije tijd van je chip...
http://www.wetenscha...showtopic=59270

#5

rcb8dboy

    rcb8dboy


  • >25 berichten
  • 35 berichten
  • Gebruiker

Geplaatst op 26 mei 2013 - 22:09

geen probleem hoor mss kom ik nog wel problemen tegen het project moet maar tegen woensdag ingediend worden :lol: en ik heb het opgelost met de hulp die ik gekregen heb met mijn vorig probleem dus onrechtstreeks...........

#6

EvilBro

    EvilBro


  • >5k berichten
  • 6703 berichten
  • VIP

Geplaatst op 28 mei 2013 - 09:29

Ik ben benieuwd naar de omschrijving van de opdracht. Kun je deze posten (of een link geven waar die te vinden is).

#7

rcb8dboy

    rcb8dboy


  • >25 berichten
  • 35 berichten
  • Gebruiker

Geplaatst op 28 mei 2013 - 13:03

Evilbor pm :-) ik weet niet of ik dit publiek mag zetten

ondertussen toch nog een fout gevonden waar ik op vast loop momenteel


for (teller=0;teller<basic.length;teller++) {
					 if(basic[teller] != null && basic[teller].isBezet()) {
				 System.out.println("kamer" + basic[teller].getRoomId() +" is bezet" );
		   	   }
					 }
				
				   kamernummer = mijnbevraging.removeKamer();

				 for (teller=0;teller<basic.length;teller++) {
					 if(basic[teller].getRoomId()== kamernummer) {
						 basic[teller].setBezet(false);
						 basic[teller].setTemp(null);
						 i--;
				 System.out.println("kamer " + basic[teller].getRoomId() + " is uitgeboekt " +basic[teller].isBezet());
				  }
					 }

dus hier start mijn lus op 0 en als er een kamer bezet is toont hij welke kamer bezet is.
na het einde van de loop vraagt hij welke kamer er vrij gegeven moet worden "kamernummer = mijnbevraging.removeKamer();"
dan overloopt hij de array en zet het kamernummer terug op false en de klant op null.
Tot hier lukt alles maar nu komt het als ik geen klanten heb overloopt hij de array ,komt er geen waarde terug maar krijg ik toch de vraag "kamernummer = mijnbevraging.removeKamer();" omdat deze buiten mijn lus staat wat normaal is .
Steek ik deze in mijn lus dan heb ik dat probleem niet want is bezet is false maar dan heb ik probleem met de loop als er wel klanten inzitten.
na de eerste klant gevonden te hebben vraagt hij direct een input ipvan de lijst te overlopen en op het laatst te vragen welke klant ik wens te verwijderen

ik kom er helemaal :eusa_whistle: :eusa_whistle: van

het zal wel terug een simpele oplossing zijn denk ik maar ](*,)

grts b

#8

EvilBro

    EvilBro


  • >5k berichten
  • 6703 berichten
  • VIP

Geplaatst op 28 mei 2013 - 13:50

Je kan een boolean bijhouden die je op true zet zodra er tenminste een klant is gevonden. Als je dan uit je lus komt dan kan je afhankelijk van die boolean besluiten of je moet vragen welke kamer leeg moet of niet.

#9

rcb8dboy

    rcb8dboy


  • >25 berichten
  • 35 berichten
  • Gebruiker

Geplaatst op 28 mei 2013 - 14:15

@ Evilbro denk dat ik het heb
zo zie je maar dat ervaring een groot voordeel is .
         for (teller=0;teller<basic.length;teller++) {
                     if(basic[teller] != null && basic[teller].isBezet()) {
                 System.out.println("kamer" + basic[teller].getRoomId() +" is bezet" );
                 verwijder = true;
                  }
                     }
                 if (verwijder == false) {
                     System.out.println("Er zijn geen kamers bezet \n");
            
                 }
                 if (verwijder == true) {
                  kamernummer = mijnbevraging.removeKamer();
                  
                 for (teller=0;teller<basic.length;teller++) {
                     if(basic[teller].getRoomId()== kamernummer) {
                         basic[teller].setBezet(false);
                         basic[teller].setTemp(null);
                        
                 System.out.println("kamer " + basic[teller].getRoomId() + " is uitgeboekt " +basic[teller].isBezet());
                  }
                     }
                 i--;
                 }

Veranderd door rcb8dboy, 28 mei 2013 - 14:17







Also tagged with one or more of these keywords: informatica

0 gebruiker(s) lezen dit onderwerp

0 leden, 0 bezoekers, 0 anonieme gebruikers

Ook adverteren op onze website? Lees hier meer!

Gesponsorde vacatures

Vacatures