Untitled
unknown
plain_text
10 months ago
4.5 kB
3
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