class Emne: def __init__(self, kode, navn): self._kode = kode self._navn = navn self._eier = None def leggTilEier(self, institutt): self._eier = institutt def __str__(self): s = self._kode + ": " + self._navn if self._eier != None: s += " eies av: " + self._eier._navn return s class Studieprogram: def __init__(self, navn): self._navn = navn self._emner = [] def leggTilEmne(self, emne): self._emner.append(emne) def __str__(self): s = "Studieprogram: " + self._navn + "\n" for emne in self._emner: s += emne.__str__() + "\n" return s class Institutt: def __init__(self, navn): self._navn = navn self._stp = [] self._emner = {} def leggTilStudieprogram(self, stp): self._stp.append(stp) def leggTilEmne(self, emne): emne.leggTilEier(self) self._emner[emne._kode] = emne def __str__(self): s = "Institutt: " + self._navn + "\n\n" s += "Studieprogram som eies av instituttet:\n" for stp in self._stp: s += stp.__str__() + "\n" s += "Emner som eies av instituttet:\n" for e in self._emner.values(): s += e.__str__() + "\n" return s def hovedprogram(): prosa = Studieprogram("Prosa") design = Studieprogram("Design") in1000 = Emne("IN1000", "Intro OOP") in1010 = Emne("IN1010", "OOP") in1150 = Emne("IN1150", "Logikk") in1050 = Emne("IN1050", "Intro design") prosa.leggTilEmne(in1000) prosa.leggTilEmne(in1010) prosa.leggTilEmne(in1150) design.leggTilEmne(in1000) design.leggTilEmne(in1010) design.leggTilEmne(in1050) print(prosa) print(design) # Oppgave G print("\n\nOppgave G:") ifi = Institutt("Institutt for informatikk") ifi.leggTilStudieprogram(prosa) ifi.leggTilStudieprogram(design) ifi.leggTilEmne(in1000) ifi.leggTilEmne(in1010) ifi.leggTilEmne(in1150) ifi.leggTilEmne(in1050) print(ifi) hovedprogram()