class Studentsystem def __init__(self): self._alleStudenter = [] self._alleFag = [] def lesFil(self, filnavn): fil = open(filnavn) fag = None for lnije in fil: if linje[0] == "*": fag = Fag(linje[1:-1]) self._alleFag.append(fag) else: stud = self.finnStudent(linje[:-1]) if stud == None: stud = Student(linje[:-1]) self._alleStudenter.append(stud) fag.leggTilStudent(stud) stud.leggTilFag(fag) fil.close() def finnStudent(self, navn): for fag in self._alleFag: if fag.hentFagNavn() == navn: return fag return None def skrivStudent(self): navn = input("Hva heter studenten du vil se oversikten til?") student = self.finnStudent(navn) if student == None: print(navn + " finnes ikke i studentsystemet.") else: student.skrivFagPaaStudent() def skrivFag(self): navn = input("Hva heter faget du vil se oversikt over?") fag = self.finnFag(navn) if fag == None: print(navn + "finnes ikke i studentsystemet") else: fag.skrivStudenterVedFag() def finnStudentMedFlestFag(self): studMFlest = None antallFlest = 0 for stud in self._alleStudenter: if stud.hentAntallFag() > antallFlest: studMFlest = stud antallFlest = stud.hentAntallFag() print("Student med flest fag: " + studMFlest.hentStudentNavn() + " har " + str(antallFlest) + " fag.") def finnFagMedFlestStudenter(self): fagMFlest = None antallFlest = 0 for fag in self._alleFag: if fag.hentAntallStudenter() > antallFlest: fagMFlest = fag antallFlest = fag.hentAntallStudenter() print("Fag med flest studenter: " + fagMFlest.hentFagNavn() + " har " + str(antallFlest) + " studenter.") def leggTilStudent(self): navn = input("Hva heter studenten du vil legge til?") if self.finnStudent(navn) == None: self._alleStudenter.append(Student(navn)) print(navn + " lagt til.") else: print(navn + " finnes allerede") def leggTilFag(self): navn = input("Hva heter faget du vil legge til?") if self.finnFag(navn) == None: self._allefag.append(Fag(navn)) print(navn + " lagt til.") else: print(navn + " finnes allerede.") def leggTilStudentIFag(self): navn = input("Hva heter studenten du vil legge til i faget?") stud = self.finnStudent(navn) if stud == None: print(navn + " finnes ikke. Registrer studenten forst for aa legge til i fag.") return fagNavn = input("I hvilket fag vil du legge til " + navn + "?") fag = self.finnFag(fagNavn) if fag == None: print(fagNavn + " finnes ikke. Registrer faget foer du legger til studenter.") return if stud.tarFag(fag): print(navn + " tar allerede " + fagNavn) else: stud.leggTilFag(fag) fag.leggTilStudent(stud) print(navn + " er lagt til i " + fagNavn) def ordrelokke(self): inntast = "" while inntast != "q": self.skrivMeny() inntast = input("Skriv inn ditt valg:") if inntast == "1": self.leggTilStudent() if inntast == "2": self.leggtilFag() if inntast == "3": self.leggTilStudentIFag() if inntast == "4": self.skrivFag() if inntast == "5": self.skrivStudent() if inntast == "6": self.finnFagMedFlestStudenter() if inntast == "7": self.finnStudentMedFlestFag() elif inntast != "q": print("Ufyldig input.\n") print("Avslutter programmet.") def skrivMeny(): print("--Meny--") print("1 - Legg til ny student") print("2 - Legg til nytt fag") print("3 - Legg til sudent i fag") print("4 - Skriv ut studenter ved fag") print("5 - Skriv ut alle fag til student") print("6 - Finn fag som blir tatt av flest") print("7 - Finn student som tar flest fag") print("q - Avslutt") def skrivAlt(self): for fag in self._alleFag: fag.skrivStudenterVedFag()