class Persona:
    def __init__(self, nom, cognoms, dni, datanaixement):
        self.nom = nom
        self.cognoms = cognoms
        self.dni = dni
        self.datanaixement = datanaixement

    def getdni(self):
        return self.dni

    def setdni(self, dni):
        letras = "TRWAGMYFPDXBNJZSQVHLCKE"

        if len(dni) != 9 or not dni[:8].isdigit():
            return False

        return dni[8].upper() == letras[int(dni[:8]) % 23]

    
    def getnom(self):
        return self.nom

    def setnom(self, nom):
        self.nom = nom

    def getcognoms(self):
        return self.cognoms

    def setcognoms(self, cognoms):
        self.cognoms = cognoms

    def getdatanaixement(self):
        return self.datanaixement

    def setdatanaixement(self, datanaixement):
        self.datanaixement = datanaixement


class Alumne(Persona):
    def __init__(self, nom, cognoms, dni, datanaixement, nivell, curs):
        super().__init__(nom, cognoms, dni, datanaixement)
        self.nivell = nivell
        self.curs = curs
        self.notes_assignatures = {}

        def getnivell(self):
            return self.nivell

        def setnivell(self, nivell):
            self.nivell = nivell

        def getcurs(self):
            return self.curs

        def setcurs(self, curs):
            self.curs = curs

        def getnotes_assignatures(self):
            return self.notes_assignatures

        def setnotes_assignatures(self, notes):
            self.notes_assignatures = notes

class Professor(Persona):
    def __init__(self, nom, cognoms, dni, datanaixement, cos, data_incorporacio):
        super().__init__(nom, cognoms, dni, datanaixement)
        self.cos = cos
        self.data_incorporacio = data_incorporacio
        self.assignatures = {}

    def getcos(self):
        return self.cos

    def setcos(self, cos):
        self.cos = cos

    def getdata_incorporacio(self):
        return self.data_incorporacio

    def setdata_incorporacio(self, data):
        self.data_incorporacio = data

    def getassignatures(self):
        return self.assignatures

    def setassignatures(self, assignatures):
        self.assignatures = assignatures


class PAS(Persona):
    def __init__(self, nom, cognoms, dni, datanaixement, carrec, data_incorporacio):
        super().__init__(nom, cognoms, dni, datanaixement)
        self.carrec = carrec
        self.data_incorporacio = data_incorporacio

    def getcarrec(self):
        return self.carrec

    def setcarrec(self, carrec):
        self.carrec = carrec

    def getdata_incorporacio(self):
        return self.data_incorporacio

    def setdata_incorporacio(self, data):
        self.data_incorporacio = data


class Assignatura:
    def __init__(self, nom, hores, nivell, curs):
        self.nom = nom
        self.hores = hores
        self.nivell = nivell
        self.curs = curs

    def getnom(self):
        return self.nom

    def setnom(self, nom):
        self.nom = nom

    def gethores(self):
        return self.hores

    def sethores(self, hores):
        self.hores = hores

    def getnivell(self):
        return self.nivell

    def setnivell(self, nivell):
        self.nivell = nivell

    def getcurs(self):
        return self.curs

    def setcurs(self, curs):
        self.curs = curs


#Joc

asign1 = Assignatura("MME", 20, "smx", 2)
print("Assignaturas:")
print(asign1.getnom())
print(asign1.gethores())
print(asign1.getnivell())
print(asign1.getcurs())

asign1.sethores(5)
print("Hores cambiades:", asign1.gethores())

Embed on website

To embed this project on your website, copy the following code and paste it into your website's HTML: