from student import Student from fag import Fag class Studentsystem: # Oppgave 1.1 def __init__(self): self._studentliste = [] self._fagliste = [] def filinnlesning(self, filnavn): fil = open(filnavn, 'r') nyttFag = None for linje in fil: tekst = linje.replace("\n", "") if tekst[0] == "*": nyttFag = Fag(tekst[1:]) self._fagliste.append(nyttFag) else: nyStudent = Student(tekst) nyttFag.leggTilStudent(nyStudent) nyStudent.leggTilFag(nyttFag) self._studentliste.append(nyStudent) def finnStudent(self, navn): for student in self._studentliste: if student.hentStudentNavn() == navn: return student return None def finnFag(self, navn): for fag in self._fagliste: if fag.hentFagNavn() == navn: return fag return None def fagTilStudent(self): studentnavn = input("Skriv inn navnet til studenten: ") student = self.finnStudent(studentnavn) if student == None: print("Studenten finnes ikke i systemet!") else: student.skrivFagPaaStudent() def studenterTilFag(self): fagnavn = input("Skriv inn navnet p? faget: ") fag = self.finnFag(fagnavn) if fag == None: print("Faget finnes ikke i systemet!") else: fag.skrivStudenterVedFag() # Metoder for testing def skrivStudentListe(self): for student in self._studentliste: print(student.hentStudentNavn()) def skrivFagListe(self): for fag in self._fagliste: print(fag.hentFagNavn()) def fagTattAvFlestStudenter(self): if len(self._fagliste) == 0: return None hoyestFag = self._fagliste[0] for fag in self._fagliste: if fag.hentAntallStudenter() > hoyestFag.hentAntallStudenter(): hoyestFag = fag return hoyestFag def leggTilStudent(self, navn): student = self.finnStudent(navn) if student != None: print("Studenten finnes allerede i systemet!") else: student = Student(navn) self._studentliste.append(student) def leggTilFag(self, navn): if self.finnFag(navn) != None: print("Faget finnes allerede i systemet!") return self._fagliste.append(Fag(navn)) def registrerStudent(self): studentnavn = input("Skriv inn navnet p? studenten: ") student = self.finnStudent(studentnavn) if student == None: print("Studenten er ikke i systemet!") return fagnavn = input("Skriv inn navnet p? faget:") fag = self.finnFag(fagnavn) if fag == None: print("Faget finnes ikke i systemet!") return if student.tarFag(fag): print("Studenten tar allerede faget!") return student.leggTilFag(fag) fag.leggTilStudent(student) def registrerStudent(self): studentnavn = input("Skriv inn navnet p? studenten: ") student = self.finnStudent(studentnavn) if student == None: print("Studenten er ikke i systemet!") return fagnavn = input("Skriv inn navnet p? faget:") fag = self.finnFag(fagnavn) if fag == None: print("Faget finnes ikke i systemet!") return fagliste = student._fagliste if fag in fagliste: print("Studenten tar allerede faget!") return student.leggTilFag(fag) fag.leggTilStudent(student) #studentsystem = Studentsystem() #studentsystem.filinnlesning("emnestudenter.txt") #studentsystem.skrivStudentListe() #print(studentsystem.finnStudent("Esben")) #print(studentsystem.finnStudent("ashdiuosahdoi")) #studentsystem.skrivFagListe() #print(studentsystem.finnFag("MAT1001")) #studentsystem.fagTilStudent() #studentsystem.studenterTilFag() #studentsystem.leggTilStudent("sadjaiosd") #studentsystem.leggTilFag("MAT1002") #studentsystem.skrivFagListe()