Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # -*- coding: cp1252 -*-
- class Eleve:
- def __init__(Nom, Oraux = []):
- self.Nom = Nom
- self.Oraux = Oraux
- Nom = ""
- Oraux = []
- def estDisponible(Heure, OralType):
- for Oral in self.Oraux:
- if Oral.Heure <= Heure and Oral.HeureFin >= Heure:
- return False
- elif Oral.Heure >= Heure and Heure + OralType.Duree >= Oral.HeureFin:
- return False
- return True
- class Jury:
- def __init__(Nom, OT, Oraux = []):
- self.Nom = Nom
- self.OralType_ = OT
- self.Oraux = Oraux
- Nom = ""
- Oraux = []
- OralType_ = None
- def estDisponible(Heure, OralType):
- for Oral in self.Oraux:
- if Oral.Heure <= Heure and Oral.HeureFin >= Heure:
- return False
- elif Oral.Heure >= Heure and Heure + OralType.Duree >= Oral.HeureFin:
- return False
- return True
- class OralType:
- Matiere = ""
- Duree = 0
- def __init__(Matiere, Duree):
- self.Matiere = Matiere
- self.Duree = Duree
- class Oral:
- def __init__(OT, Jury, Eleve, Heure):
- self.OralType = OT
- self.Jury = Jury
- self.Eleve = Eleve
- self.Heure = Heure
- self.HeureFin = Heure + OT.Duree
- OralType_ = None
- Jury = None
- Heure = -1
- Eleve = None
- def creerEmploiDuTemps(Jurys, Eleves):
- for J in Jurys:
- heure = 0
- Trouve = False
- for E in Eleves:
- if E.estDisponible(heure, J.OralType):
- newOral = Oral(J.OralType, J, E, heure)
- Trouve = True
- break
- if Trouve == False:
- heure += 1
- else:
- heure += J.OralType.Duree
- Trouve = False
- Epreuves = {"Français" : OralType("Français", 2), "Anglais" : OralType("Anglais", 3), "Maths" : OralType("Maths", 4), "Physique" : OralType("Physique", 4)}
- Jurys = [Jury("Gugger", Epreuves["Anglais"]), Jury("Demange", Epreuves["Anglais"]), Jury("Dervieux", Epreuves["Physique"]), Jury("Astier", Epreuves["Français"])]
- Eleves = [Eleve("Thomas"), Eleve("Benjamin"), Eleve("ELDRED")]
- creerEmploiDuTemps(Jurys, Eleves)
Advertisement
Add Comment
Please, Sign In to add comment