from fag import Fag from student import Student # Oppgave 1.1 class Studentsystem: def __init__(self): self._fagliste = [] self._studentliste = [] # Oppgave 1.2 def filinnlesning(self, filnavn): # Spesifiserer r som tilgang, ettersom vi ikke onsker aa endre filen. fil = open(filnavn, 'r') nyttFag = None for linje in fil: # Nytt fag if linje[0] == '*': nyttFag = Fag(linje[1:-1]) self._fagliste.append(nyttFag) # Student eksisterer fra f?r # Del av ekstraoppgaven # Student eksisterer ikke fra f?r else: student = Student(linje[0:-1]) nyttFag.leggTilStudent(student) student.leggTilFag(nyttFag) self._studentliste.append(student) # Oppgave 1.3 def finnStudent(self, navn): #Leter etter student med navn for student in self._studentliste: if student.hentStudentNavn() == navn: return student #Fant ingen student med navn return None # Oppgave 1.4 def finnFag(self, navn): # Leter etter fag med navn for fag in self._fagliste: if fag.hentFagNavn() == navn: return fag # Fant ingen fag med navn return None # Oppgave 2.1 def finnFagTilStudent(self): studentnavn = input("Skriv inn et studentnavn: ") student = self.finnStudent(studentnavn) if student == None: print("Studenten finnes ikke!") else: student.skrivFagPaaStudent() # Oppgave 2.2 def finnStudenterTilFag(self): fag = self.finnFag(input("Skriv inn et fagnavn: ")) if fag == None: print("Faget finnes ikke!") else: fag.skrivStudenterVedFag() # Oppgave 2.3 def TarFlestFag(self): if len(self._studentliste) == 0: return None hoyestStudent = self._studentliste[0] for student in self._studentliste: if hoyestStudent.hentAntallFag() < student.hentAntallFag(): hoyestStudent = student return hoyestStudent # Oppgave 2.4 def TattAvFlestStudenter(self): if len(self._fagliste) == 0: return None hoyestFag = self._fagliste[0] for fag in self._fagliste: if hoyestFag.hentAntallStudenter() < fag.hentAntallStudenter(): hoyestFag = fag return hoyestFag # Oppgave 3.1 def leggTilStudent(self, navn): if self.finnStudent(navn) == None: student = Student(navn) self._studentliste.append(student) # Oppgave 3.2 def leggTilFag(self, navn): if self.finnFag(navn) == None: fag = Fag(navn) self._fagliste.append(fag) # Oppgave 4.1 def registrerStudent(self): studentnavn = input("Skriv inn et studentnavn: ") student = self.finnStudent(studentnavn) fagnavn = input("Skriv inn et fagnavn: ") fag = self.finnFag(fagnavn) if student == None: print("Studenten finnes ikke i systemet.") elif fag == None: print("Faget finnes ikke i systemet.") elif student.tarFag(fag): print("Studenten er allerede registrert til dette faget.") else: student.leggTilFag(fag) fag.leggTilStudent(student) def skrivMeny(self): print() print("Du har f?lgende valg:") print("1: Legg til et nytt fag.") print("2: Legg til en ny student.") print("3: Les inn fil.") print("4: Skriv ut alle fag.") print("5: Skriv ut alle studenter.") print("6: Registrer student til emne.") print("7: Skriv ut alle fag en student tar.") print("8: Skriv ut alle studenter i et fag.") print("9: Skriv ut denne menyen." ) print("0: Avslutt") def ordrelokke(self): valg = "" self.skrivMeny() while valg != "0": valg = input("Skriv inn ditt valg: ") if valg == "1": print("Du valgte legg til fag.\n") fagnavn = input("Skriv inn navnet til faget: ") self.leggTilFag(fagnavn) elif valg == "2": print("Du valgte legg til student.\n") studentnavn = input("Skriv in navnet til studenten: ") self.leggTilStudent(studentnavn) elif valg == "3": print("Du valgte les inn fil.\n") filnavn = input("Skriv inn filnavnet: ") self.filinnlesning(filnavn) elif valg == "4": print("Du valgte skriv ut alle fag.\n") self.skrivFag() elif valg == "5": print("Du valgte skriv ut alle studenter.\n") self.skrivStudenter() elif valg == "6": print("Du valgte registrer student til emne.\n") self.registrerStudent() elif valg == "7": print("Du valgte skriv ut alle fag til student.\n") studentnavn = input("Skriv inn navnet til studenten: ") student = self.finnStudent(studentnavn) if student == None: print("Studenten finnes ikke i systemet.") else: student.skrivFagPaaStudent() elif valg == "8": print("Du valgte skriv ut alle studenter til et fag.\n") fagnavn = input("Skriv inn navnet til faget: ") fag = self.finnFag(fagnavn) if fag == None: print("Faget finnes ikke i systemet.") else: fag.SkrivStudenterVedFag() elif valg == "9": self.skrivMeny() elif valg == "0": print("Ha det riktig godt!") else: print("Ugyldig input!") print() # Metoder brukt til testing def skrivFag(self): for fag in self._fagliste: print(fag.hentFagNavn()) def skrivStudenter(self): for student in self._studentliste: print(student.hentStudentNavn()) studsys = Studentsystem() studsys.ordrelokke()