class Gruppe: def __init__(self, krav): # Krav -> list self._krav_fasiliteter = krav self._personer = [] # Antar at personer som legges til ikke finnes i gruppa fra f?r def legg_til_personer(self, person_navn): # Person_navn -> list for navn in person_navn: self._personer.append(navn) def hent_personer(self): return self._personer def hent_krav(self): return self._krav_fasiliteter class Rom: def __init__(self, romnummer, antall_senger, fasiliteter): self._rom_nr = romnummer # int self._ant_senger = antall_senger # int self._fasiliteter = fasiliteter # List self._er_ledig = True # Antar at rommmet er ledig n?r det opprettes self._gjester_liste = [] def reserver(self, gjester): # gjester -> list self._er_ledig = False # Sjekker ikke om rommet er ledig f?r vi reserverer for gjest in gjester: self._gjester_liste.append(gjest) def hent_ant_senger(self): return self._ant_senger def er_ledig(self): return self._er_ledig def passer(self, krav_fasiliteter): # ["Kj?leskap", "Badekar", "Dobbeltseng"] for krav in krav_fasiliteter: if krav not in self._fasiliteter: return False return True def __str__(self): utskrift = f"Romnr: {self._rom_nr}, Antall senger: {self._ant_senger},\nFasiliteter:" for fasilitet in self._fasiliteter: utskrift += ", " + fasilitet return utskrift class Hotell: def __init__(self, hotellnavn): self._hotellnavn = hotellnavn self._alle_rom = {} fil = Open(hotellnavn + ".txt", "r") for linje in fil: deler = linje.strip().split() rom_nr = deler[0] ant_senger = deler[1] fasiliteter = deler[2:] nytt_rom = Rom(rom_nr, ant_senger, fasiliteter) self._alle_rom[rom_nr] = nytt_rom def reserver_rom(self, rom_nr, gjester): # str, list if rom_nr in self._alle_rom: rom = self._alle_rom[rom_nr] if rom.er_ledig: rom.reserver(gjester) else: print("Beklager, rommet finnes ikke") def finn_passende_rom(self, krav_fasiliteter): # list passende_rom = [] for rom in self._alle_rom.values(): if rom.passer(krav_fasiliteter): passende_rom.append(rom) return passende_rom class Reservasjonssystem: def __init__(self, alle_hotellnavn): # list -> ["Scandic", "Thon", "Radisson"] self._alle_hoteller = {} # Key: hotellnavn : verdi: hotellobjekt for hotellnavn in alle_hotellnavn: nytt_hotell = Hotell(hotellnavn) self._alle_hoteller[hotellnavn] = nytt_hotell def reserver_rom_i_hotell(self, hotellnavn, romnr, gjester): if hotellnavn in self._alle_hoteller: hotell = self._alle_hoteller[hotellnavn] else: print("Beklager, vi har ikke det hotellet")