ZoRaC Skrevet 10. januar 2007 Del Skrevet 10. januar 2007 Har en oppgave som kort sagt går ut på å ta seg av rom reservering. Lurer litt på hvordan jeg skal kunne "lagre" hver reservasjon? public class Konferansesenter { private ArrayList<Rom> rommene = new ArrayList<Rom>(); /** * Reserver et rom * @param fra Fra tid på formen ååååmmddttmm * @param til Til tid på formen ååååmmddttmm * @param antPers antall personer * @param tlf Telefonnr til kontaktperson * @return false hvis ingen rom ledig på gitt tidsrom med det antallet personer, * true hvis ok. */ public boolean reserverRom(long fra, long til, int antPers, String tlf, String navn) { Kunde kunden = new Kunde(navn, tlf); // Oppretter ny kunde Tidspunkt fraTid = new Tidspunkt(fra); // Oppretter nytt tidspunkt Tidspunkt tilTid = new Tidspunkt(til); // Oppretter nytt tidspunkt Reservasjon reservasjonen = new Reservasjon(fraTid, tilTid, kunden); // Oppretter ny reservasjon Rom rommet = null; // Finn rom som er ledig og stort nok for (int i = 0; i < rommene.size(); i++) { if ((rommene.get(i).getAntPers() >= antPers) && (!reservasjonen.overlapp(fraTid, tilTid))) { rommet = rommene.get(i); } } // Fant ikke noe rom som var ledig eller stort nok if (rommet == null) { return false; } // Hva skal jeg gjøre her for å reservere rommet med "rommet" og "reservasjonen"? } } Noen forslag? Lenke til kommentar
Drømmemannen Skrevet 10. januar 2007 Del Skrevet 10. januar 2007 Flere måterå gjøre det på. En reservasjon kan ha en referanse til rommet som er reservert. Dernest trenger du en egen datastruktur for holde på reservasjonene. Alternativt, hvert rom har en liste over sine reservasjoner slik at man kan enkelt slå opp når et rom er reservert. Man kan naturligvis også kombinere disse to. Hva som er best? Tja... Gjør det du synes er enklest Lenke til kommentar
ZoRaC Skrevet 10. januar 2007 Forfatter Del Skrevet 10. januar 2007 Vil det si at jeg kan opprette en tabell slik? ArrayList<Rom><Reservasjon> reservasjonsTabell = new ArrayList<Rom><Reservasjon>(); Da kan jeg legge "rommet" og "reservasjon" inn i den tabellen? Lenke til kommentar
___ Skrevet 10. januar 2007 Del Skrevet 10. januar 2007 Det du trenger er en ordentlig persisteringsmekanisme. En hvor en database ligger i bånn er vel å foretrekke. Her finnes det en rekke alternativer. Selv foretrekker jeg Hibernate, som er en persisteringsmekanisme som er kompatibel med de fleste databaser på markedet. Du kan lese mer om Hibernate på www.hibernate.org Hilsen Werner Lenke til kommentar
ZoRaC Skrevet 10. januar 2007 Forfatter Del Skrevet 10. januar 2007 Jeg fikk løst det ved å håndtere reserveringen i Rom-klassen. Takk for tipset, balletryne! Lenke til kommentar
Drømmemannen Skrevet 11. januar 2007 Del Skrevet 11. januar 2007 Vil det si at jeg kan opprette en tabell slik?ArrayList<Rom><Reservasjon> reservasjonsTabell = new ArrayList<Rom><Reservasjon>(); Da kan jeg legge "rommet" og "reservasjon" inn i den tabellen? 7694368[/snapback] Ikke helt, du måtte hatt to parallelle datastrukturer for dette. Jeg ville nok brukt et Map med romnummer som nøkkel i steden for en liste, da disse gir mye raskere oppslag på enkeltrom. F.eks.: Map<Integer><Rom> rom = new HashMap<Integer><Rom>(); Set<Reservasjon> reservarsjoner = new HashSet<Reservasjon>(); Selv ville jeg nok også brukt Hibernate, men det kommer jo an på hensikten med programmet. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå