# IKKE TESTET KODE, KAN FINNES FEIL from student import Student from fag import Fag class Studentsystem: def __init__(self): self._studenter = [] self._fag = [] def lesFil(self, filnavn): fil = open(filnavn) fag = None for linje in fil: if linje[0] == "*": # Hvis stjerne saa er det fag fag = Fag(linje[1:-1]) self._fag.append(fag) else: # Hvis ikke er det student stud = self.finnStudent(linje[:-1]) if stud == None: stud = Student(linje[:-1]) self._studenter.append(stud) fag.leggTilStudent(stud) stud.leggTilFag(fag) fil.close() def finnStudent(self, navn): for student in self._studenter: if student.hentStudentNavn() == navn: return student return None def finnFag(self, navn): for fag in self._fag: if fag.hentFagNavn() == navn: return fag return None def skrivStudent(self): navn = input("Hvem vil du se oversikten til?") student = self.finnStudent(navn) if student == None: print(navn, "finnes ikke i studentsystemet.") else: student.skrivFagPaaStudent() def skrivFag(self): navn = input("Hvilket fag vil du se oversikten til?") fag = self.finnFag(navn) if fag == None: print(navn, "finnes ikke i studentsystemet.") else: fag.skrivStudenterVedFag() def finnStudentMedFlestFag(self): flest = None antall = 0 for student in self._studenter: if stud.hentAntallFag() > antall: flest = student antall = student.hentAntallFag() print("Student med flest fag:", flest, "med", antall) def finnFagMedFlestStudenter(self): flest = None antall = 0 for fag in self._fag: if fag.hentAntallStudenter() > antall: flest = fag antall = fag.hentAntallStudenter() print("Student med flest fag:", flest, "med", antall) def leggTilStudent(self): navn = input("Hvem vil du legge til?") if self.finnStudent(navn) == None: self._studenter.append(Student(navn)) else: print(navn, "finnes allerede.") def leggTilFag(self): navn = input("Hvilket fag vil du legge til?") if self.finnFag(navn) == None: self._fag.append(Fag(navn)) else: print(navn, "finnes allerede.") def leggTilStudentIFag(self): navn = input("Hvem vil du legge til i faget?") student = self.finnStudent(navn) # Sjekker om studenten finnes if student == None: print("Studenten finnes ikke i systemet. Registrer dem først.") return fagNavn = input("I hvilket fag vil du legge til", navn, "?") fag = self.finnFag(fagNavn) # Sjekker om faget finnes if fag == None: print("Faget finnes ikke i systemet. Registrer faget først.") return # Hvis studenten og faget finnes kan studenten legges til # Sjekker først om de allerede tar faget if student.tarFag(fag): print("Studenten tar allerede faget.") else: student.leggTilFag(fag) fag.leggTilStudent(student) print("Studenten ble lagt til i faget!") # Her gjør man de samme sjekkene som i metoden over def fjernStudent(self): navn = input("Hvem vil du fjerne?") student = self.finnStudent(navn) if student == None: print(navn, "finnes ikke i systemet.") return fagNavn = input("I hvilket fag vil du legge til", navn, "?") fag = self.finnFag(fagNavn) if fag == None: print("Faget finnes ikke i systemet. Registrer faget først.") return if not student.tarFag(fag): print("Studenten tar ikke faget.") else: student.fjernFag(fag) fag.fjernStudent(student) print("Studenten ble fjernet fra faget.") def skrivAlt(self): for fag in self._fag: fag.skrivStudenterVedFag()