Untitled
unknown
plain_text
4 months ago
4.5 kB
2
Indexable
from abc import ABC from enum import Enum from datetime import datetime class Rola(Enum): ADMIN = 'Admin' NAUCZYCIEL = 'Nauczyciel' UCZEN = 'Uczen' class Uzytkownik(ABC): def __init__(self, user_id, imie, email, haslo, rola): self.user_id = user_id self.imie = imie self.email = email self.haslo = haslo self.rola = rola def zaloguj(self): print(f"{self.imie} zalogowany jako {self.rola.value}") def wyloguj(self): print(f"{self.imie} wylogowany.") def zaktualizuj_profil(self, nowe_dane): self.imie = nowe_dane.get("imie", self.imie) self.email = nowe_dane.get("email", self.email) print(f"{self.imie} zaktualizował/a profil") class Nauczyciel(Uzytkownik): def __init__(self, user_id, imie, email, haslo, przedmiot): super().__init__(user_id, imie, email, haslo, Rola.NAUCZYCIEL) self.przedmiot = przedmiot def przypisz_zajecia(self, zajecia): zajecia.nauczyciel = self print(f"Nauczyciel {self.imie} przypisany do przedmiotu {zajecia.przedmiot}") class Uczen(Uzytkownik): def __init__(self, user_id, imie, email, haslo, klasa): super().__init__(user_id, imie, email, haslo, Rola.UCZEN) self.klasa = klasa def zapisz_na_zajecia(self, zajecia): zajecia.dodaj_ucznia(self) print(f"Uczeń {self.imie} zapisany na zajęcia {zajecia.przedmiot}") class Administrator(Uzytkownik): def __init__(self, user_id, imie, email, haslo): super().__init__(user_id, imie, email, haslo, Rola.ADMIN) def stworz_nauczyciela(self, user_id, imie, email, haslo, przedmiot): return Nauczyciel(user_id, imie, email, haslo, przedmiot) def stworz_ucznia(self, user_id, imie, email, haslo, klasa): return Uczen(user_id, imie, email, haslo, klasa) class Zajecia: def __init__(self, class_id, przedmiot, start, koniec): self.class_id = class_id self.przedmiot = przedmiot self.start = start self.koniec = koniec self.nauczyciel = None self.uczniowie = [] def dodaj_ucznia(self, uczen): self.uczniowie.append(uczen) print(f"Uczeń {uczen.imie} dodany do zajęć {self.przedmiot}") def usun_ucznia(self, uczen): if uczen in self.uczniowie: self.uczniowie.remove(uczen) print(f"Uczeń {uczen.imie} usunięty z zajęć {self.przedmiot}") class Sala: def __init__(self, room_id, numer_sali, pojemnosc): self.room_id = room_id self.numer_sali = numer_sali self.pojemnosc = pojemnosc def czy_dostepna(self, start, koniec): # Tu można dodać logikę sprawdzającą dostępność sali w danym przedziale czasowym print(f"Sala {self.numer_sali} jest dostępna od {start} do {koniec}") return True class Harmonogram: def __init__(self, schedule_id, data_rozpoczecia_tygodnia): self.schedule_id = schedule_id self.data_rozpoczecia_tygodnia = data_rozpoczecia_tygodnia self.zajecia = [] def wygeneruj_harmonogram(self): print(f"Generowanie harmonogramu na tydzień od {self.data_rozpoczecia_tygodnia}") for zaj in self.zajecia: print(f"Zajęcia: {zaj.przedmiot}, Start: {zaj.start}, Koniec: {zaj.koniec}") def zaktualizuj_harmonogram(self, zajecia): self.zajecia.append(zajecia) print(f"Dodano zajęcia {zajecia.przedmiot} do harmonogramu") def wyswietl_harmonogram(self): print("Harmonogram zajęć:") for zaj in self.zajecia: print(f"{zaj.przedmiot}: {zaj.start} - {zaj.koniec}") if __name__ == "__main__": admin = Administrator(1, "Admin", "admin@school.com", "password123") nauczyciel = admin.stworz_nauczyciela(2, "Jan Kowalski", "jan@school.com", "pass123", "Matematyka") uczen = admin.stworz_ucznia(3, "Anna Nowak", "anna@school.com", "pass123", "1A") sala = Sala(1, "101", 30) zajecia = Zajecia(1, "Matematyka", datetime(2024, 10, 20, 8, 0), datetime(2024, 10, 20, 9, 30)) nauczyciel.przypisz_zajecia(zajecia) uczen.zapisz_na_zajecia(zajecia) sala.czy_dostepna(zajecia.start, zajecia.koniec) harmonogram = Harmonogram(1, datetime(2024, 10, 20)) harmonogram.zaktualizuj_harmonogram(zajecia) harmonogram.wyswietl_harmonogram()
Editor is loading...
Leave a Comment