from fag import Fag from student import Student class StudentSystem: def __init__(self): self._studenter = [] self._fag = {} def skrivUtInfoOmStudenter(self): for student in self._studenter: student.skrivUtFagPaaStudent() def skrivUtInfoOmFag(self): for fagNavn in self._fag: self._fag[fagNavn].skrivStudenterVedFag() def leggTilStudent(self, student): self._studenter.append(student) def leggTilFag(self, fag): self._fag[fag.hentFagNavn()] = fag #Antar at man skal legge til studenter/fag hvis de ikke er lagt til fra før av def leggTilStudentIFag(self, student, fag): if not student in self._studenter: self.leggTilStudent(student) if not fag in self._fag: self.leggTilFag(fag) student.leggTilFag(fag) fag.leggTilStudent(student) def hentFagMedFlestStudenter(self): flestStudFag = self._fag[list(self._fag.keys())[0]] for fagNavn in self._fag: fag = self._fag[fagNavn] if fag.hentAntallStudenter() > flestStudFag.hentAntallStudenter(): flestStudFag = fag return fag def hentStudentMedFlestFag(self): flestFagStud = self._studenter[0] for student in self._studenter: if student.hentAntallFag() > flestFagStud.hentAntallFag(): flestFagStud = student return flestFagStud def lesFraFil(self, filNavn): fil = open(filNavn) fag = None for linje in fil: if linje[0] == "*": fag = Fag(linje.strip().strip("*")) self.leggTilFag(fag) else: student = Student(linje.strip()) self.leggTilStudent(student) self.leggTilStudentIFag(student, fag) fil.close() #hjelpe metode def _leggTilFagPaaStudentNavn(self,studentNavn, fag): for student in self._studenter: if student.hentStudentNavn() == studentNavn: self.leggTilStudentIFag(student, fag) def _printUtOprasjoner(self): print("---Operasjoner---") print("F: les inn fra fil") print("SF: student med flest fag") print("FS: fag med flest studenter") print("LS: legg til student") print("LF: legg til fag") print("IF: skriv ut info om fag") print("IS: skriv ut info om student") print("STF: legg til student i fag") print("A: avslutt") def interaktiv(self): self._printUtOprasjoner() oprasjon = input("Hva vil du gjøre? ").lower() while(oprasjon != "a"): if oprasjon == "f": fil = input("Hvilken fil vil du lese fra ?") self.lesFraFil(fil) elif oprasjon == "sf": student = self.hentStudentMedFlestFag() print("Student med flest fag:", student.hentStudentNavn()) elif oprasjon == "fs": fag = self.hentFagMedFlestStudenter() print("Fag med flest studenter:", fag.hentFagNavn()) elif oprasjon =="ls": navn = input("Hva heter studenten:") student = Student(navn) self.leggTilStudent(navn) elif oprasjon =="lf": navn = input("Hva heter faget:") student = Fag(navn) self.leggTilFag(navn) elif oprasjon == "if": self.skrivUtInfoOmFag() elif oprasjon == "is": self.skrivUtInfoOmStudenter() elif oprasjon == "stf": #antar at hvis flere studenter heter det samme saa skal alle med det navnet ta faget fagNavn = input("Hva heter faget? ") studentNavn = input("Hva heter studenten? ") print(self._fag) if fagNavn in self._fag: self._leggTilFagPaaStudentNavn(studentNavn, self._fag[fagNavn]) else: print(fagNavn, " eksisterer ikke i vaart system.") else: print(oprasjon, "er ikke tilgjenglig") self._printUtOprasjoner() oprasjon = input("Hva vil du gjøre? ").lower()