Pouknouki

Jour 1 celui qu'on retient

Sep 16th, 2016
186
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.22 KB | None | 0 0
  1. # -*- coding: cp1252 -*-
  2. class Eleve:
  3.     def __init__(Nom, Oraux = []):
  4.         self.Nom = Nom
  5.         self.Oraux = Oraux
  6.     Nom = ""
  7.     Oraux = []
  8.  
  9.     def estDisponible(Heure, OralType):
  10.         for Oral in self.Oraux:
  11.             if Oral.Heure <= Heure and Oral.HeureFin >= Heure:
  12.                 return False
  13.             elif Oral.Heure >= Heure and Heure + OralType.Duree >= Oral.HeureFin:
  14.                 return False
  15.         return True
  16.  
  17. class Jury:
  18.     def __init__(Nom, OT, Oraux = []):
  19.         self.Nom = Nom
  20.         self.OralType_ = OT
  21.         self.Oraux = Oraux
  22.        
  23.     Nom = ""
  24.     Oraux = []
  25.     OralType_ = None
  26.  
  27.     def estDisponible(Heure, OralType):
  28.         for Oral in self.Oraux:
  29.             if Oral.Heure <= Heure and Oral.HeureFin >= Heure:
  30.                 return False
  31.             elif Oral.Heure >= Heure and Heure + OralType.Duree >= Oral.HeureFin:
  32.                 return False
  33.         return True        
  34.  
  35. class OralType:
  36.     Matiere = ""
  37.     Duree = 0
  38.     def __init__(Matiere, Duree):
  39.         self.Matiere = Matiere
  40.         self.Duree = Duree
  41.  
  42. class Oral:
  43.     def __init__(OT, Jury, Eleve, Heure):
  44.         self.OralType = OT
  45.         self.Jury = Jury
  46.         self.Eleve = Eleve
  47.         self.Heure = Heure
  48.         self.HeureFin = Heure + OT.Duree
  49.        
  50.     OralType_ = None
  51.     Jury = None
  52.     Heure = -1
  53.     Eleve = None
  54.  
  55. def creerEmploiDuTemps(Jurys, Eleves):
  56.     for J in Jurys:
  57.         heure = 0
  58.         Trouve = False
  59.         for E in Eleves:
  60.             if E.estDisponible(heure, J.OralType):
  61.                 newOral = Oral(J.OralType, J, E, heure)
  62.                 Trouve = True
  63.                 break
  64.         if Trouve == False:
  65.             heure += 1
  66.         else:
  67.             heure += J.OralType.Duree
  68.             Trouve = False
  69.  
  70. Epreuves = {"Français" : OralType("Français", 2), "Anglais" : OralType("Anglais", 3), "Maths" : OralType("Maths", 4), "Physique" : OralType("Physique", 4)}
  71. Jurys = [Jury("Gugger", Epreuves["Anglais"]), Jury("Demange", Epreuves["Anglais"]), Jury("Dervieux", Epreuves["Physique"]), Jury("Astier", Epreuves["Français"])]
  72. Eleves = [Eleve("Thomas"), Eleve("Benjamin"), Eleve("ELDRED")]
  73.  
  74. creerEmploiDuTemps(Jurys, Eleves)
Advertisement
Add Comment
Please, Sign In to add comment