# Projet UML
## Diagramme global
```plantuml
enum Etat <<enumeration>> {
VALIDE
ELIMINEE
ANNULEE
TERMINEE
}
class VehiculeAssistance {
-id : int
-immatriculation : String
+getId()
+setId()
+getImmatriculation()
+setImmatriculation()
+afficherChauffeur(nom : String, prenom : String, numeroPermis : int)
+ajouterChauffeur(chauffeur : Chauffeur)
+afficherImmatriculationChauffeur()
}
class Chauffeur {
-id : int
-nom : String
-prenom : String
-numPermis : int
+getId()
+setId()
+getNom()
+setNom()
+getPrenom()
+setPrenom()
+getNumPermis()
+setNumPermis()
}
class Equipe {
-id : int
-nomResponsable :String
-prenomResponsable : String
-mailResponsable : String
-telResponsable : String
-nationnalite : String
-nomEquipe : String
+getId()
+setId()
+getNomResponsable()
+setNomResponsable()
+getPrenomResponsable()
+setPrenomResponsable()
+getMailResponsable()
+setMailResponsable()
+getTelResponsable()
+setTelResponsable()
+getNationnalite()
+setNationnalite()
+getNomEquipe()
+setNomEquipe()
+afficherCoureurs()
+ajouterParticipation(edition: Edition)
+afficherParticipations()
+nombreVictoire()
+nombreParticipation()
}
class ParticipationEquipe {
-numInscription : int
-etatParticipation : Etat
+getNumInscription()
+setNumInscription()
+getEtatParticipation()
+setEtatParticipation()
+supprimerParticipation(ParticipationEquipe participationEquipe, Participation participation)
+ajouterCoureur(coureur : Coureur)
+ajouterVehicule(immatriculation, nom, prenom, numeroPermis)
+afficherCoureurs()
+afficherCourse()
+afficherListeVehicules()
+modifierCoureur(coureur : Coureur, numCoureur : int)
+annulerParticipation(ParticipationEquipe participationEquipe)
+eliminerEquipe(ParticipationEquipe participationEquipe)
+supprimerCoureur()
+listeEditions()
+victoireParticipation()
}
class Coureur {
-id : int
-nom : String
-prenom : String
-dateNaissance : Date
-groupeSanguin : String
+getId()
+setId()
+getNom()
+setNom()
+getPrenom()
+setPrenom()
+getDateNaissance()
+setDateNaissance()
+getGroupeSanguin()
+setGroupeSanguin()
+coureursParNom()
+rechercherCoureur(nom : String, prenom : String)
+ajouterParticipation(edition : Edition, nomEquipe : String)
+afficherParticipations()
}
class Participation {
-numInscription : int
-etatParticipation : Etat
+getNumInscription()
+setNumInscription()
+getEtatParticipation()
+setEtatParticipation()
+annulerParticipation(Participation participation)
+modifierInscription(nomEquipe : String)
+eliminerParticipant(Participation participation)
+changerEquipeParticipation(Participation participation, ParticipationEquipe participationEquipe)
}
class Course {
-id : int
-nom : String
+getId()
+setId()
+getNom()
+setNom()
+afficherEdition(int annee, Date dateDebut, Date dateFin)
+coursesParNom()
+courseParId(Integer id)
+afficherListesEditions()
+creerEdition(annee : int, dateDebut : date, dateFin : date, villeDepart : String, villeArrivee : String)
+rechercherCourse(nomCourse : String)
+recupererListesEditions()
}
class Edition {
-id : int
-annee : int
-dateDebut : Date
-dateFin : Date
-villeDepart : String
-villeArrivee : String
-paysDepart : String
-paysArrivee : String
-distance : float
-annulee : boolean
+getId()
+setId()
+getAnnee()
+setAnnee()
+getDateDebut()
+setDateDebut()
+getDateFin()
+setDateFin()
+getVilleDepart()
+setVilleDepart()
+getVilleArrivee()
+setVilleArrivee()
+getPaysDepart()
+setPaysDepart()
+getPaysArrivee()
+setPaysArrivee()
+getDistance()
+setDistance()
+getAnnulee()
+setAnnulee()
+participationsEdition(Edition edition)
+participationsEditionJeunes(Edition edition)
+meilleurJeune(Edition edition)
+meilleurTemps(Map<Coureur, Float> participations)
+meilleurGrimpeur(Edition edition)
+meilleurSprinteur(Edition edition)
+meilleurCoureur(List<Participation> participations, Function<Performance, Integer> critere)
+meilleurePerformance(Map<Coureur, Integer> participations)
+calculerPerformance(List<Participation> participations, Function<Performance, Integer> critere)
+calculerSommeTemps(List<Participation> participations, Function<Performance, Float> critere)
+etablirClassementEquipe()
+etablirClassemenGeneral()
+afficherCoureurs()
+afficherEquipes()
+afficherEtapes()
+ajouterEtape(villeDepart : String, villeArrivee : String, paysDepart : String, paysArrivee : String, distance : float, numOrdre : int)
+annulerEdition()
+recupererMeilleurSprinteur()
+recupererMeilleurGrimpeur()
+recupererMeilleurJeune()
+tempsMoyenCoureur()
+afficherPlusLongueCourse()
}
class Etape {
-id : int
-villeDepart : String
-villeArrivee : String
-paysDepart : String
-paysArrivee : String
-distance : float
-numOrdre : int
-etatEtape : EtatEtape
+getId()
+setId()
+getVilleDepart()
+setVilleDepart()
+getVilleArrivee()
+setVilleArrivee()
+getPaysDepart()
+setPaysDepart()
+getPaysArrivee()
+setPaysArrivee()
+getDistance()
+setDistance()
+getNumOrdre()
+setNumOrdre()
+getEtatEtape()
+setEtatEtape()
+etablirClassementEtape()
+annulerEtape()
+cloturerEtape()
+lancerEtape()
+tempsMoyenCoureurEtape()
+recupererDistance()
}
enum EtatEtape {
LANCEE
CLOTUREE
ATTENTE
ANNULEE
}
class Performance {
-id : int
-temps : float
-pointSprint : int
-pointGrimp : int
+getId()
+setId()
+getTemps()
+setTemps()
+getPointSprint()
+setPointSprint()
+getPointGrimp()
+setPointGrimp()
+ajouterPointSprint(Performance performance, int pointsSprint)
+ajouterPointGrimp(Performance performance, int pointsGrimp)
+ajouterTemps(Performance performance, float delta)
}
Edition "1..*" --* Course
Edition *-- "1..*" Etape
Participation "1..*" -- "1..1" Edition
Participation "1..*" -- "1..1" Coureur
ParticipationEquipe "1..*" -- "1..1" Equipe
ParticipationEquipe "1..*" -- "1..1" Edition
ParticipationEquipe "1..1" -- "4" VehiculeAssistance
VehiculeAssistance "1..*" --* Chauffeur
Performance "0..*" -- "1..1" Participation
Performance "0..*" -- "1..1" Etape
Etat <|-- Participation
Etat <|-- ParticipationEquipe
EtatEtape <|-- Etape
```
## Diagramme de classe : Gestion classement
```plantuml
enum Etat <<enumeration>> {
VALIDE
ELIMINEE
ANNULEE
TERMINEE
}
class Equipe {
-nomResponsable :String
-prenomResponsable : String
-mailResponsable : String
-telResponsable : String
-nationnalite : String
-nomEquipe : String
+afficherCoureurs()
+afficherNom()
+ajouterParticipation(edition: Edition)
+afficherParticipations()
+nombreVictoire()
+nombreParticipation()
+rechercherEquipe(nomEquipe : String)
+afficherNomResponsable()
+afficherNationalite()
}
class ParticipationEquipe {
-numInscription : int
-etatParticipation : Etat
-coureurs : list
+ajouterCoureur(coureur : Coureur)
+ajouterVehicule(immatriculation, nom, prenom, numeroPermis)
+afficherCoureurs()
+afficherCourse()
+afficherListeVehicules()
+modifierCoureur(coureur : Coureur, numCoureur : int)
+annulerParticipation()
+eliminerEquipe()
+supprimerCoureur()
+init()
+listeEditions()
+victoireParticipation()
}
class Coureur {
-nom : String
-prenom : String
-dateNaissance : Date
-groupeSanguin : String
+afficherInformations()
+recupererNom()
+rechercherCoureur(nom : String, prenom : String)
+ajouterParticipation(edition : Edition, nomEquipe : String)
+afficherParticipations()
+recupererDateNaissance()
}
class Participation {
-numInscription : int
-etatParticipation : Etat
-nomEquipe : String
+afficherInformations()
+annulerParticipation()
+init(nomEquipe : String)
+modifierInscription(nomEquipe : String)
+eliminerParticipant()
}
class Course {
-nom : String
+afficherNom() check
+afficherEdition(int annee, Date dateDebut, Date dateFin)
+afficherListesEditions()
+ajouterEdition(annee : int, dateDebut : date, dateFin : date, villeDepart : String, villeArrivee : String)
+rechercherCourse(nomCourse : String)
+init(nom : String)
+recupererListesEditions()
}
class Edition {
-annee : int
-dateDebut : Date
-dateFin : Date
-villeDepart : String
-villeArrivee : String
-paysDepart : String
-paysArrivee : String
-distance : float
-annulee : boolean
+etablirClassementEquipe()
+etablirClassemenGeneral()
+afficherCoureurs()
+afficherEquipes()
+afficherEtapes()
+ajouterEtape(villeDepart : String, villeArrivee : String, paysDepart : String, paysArrivee : String, distance : float, numOrdre : int)
+modifierInformations(annee : int, dateDebut : Date, villeDepart : String, villeArrivee : String, paysDepart : String, paysArrivee : String )
+annulerEdition()
+afficherInformations()
+recupererMeilleurSprinteur()
+recupererMeilleurGrimpeur()
+recupererMeilleurJeune()
+init(annee : int, dateDebut : date, dateFin : date, paysDepart : String, paysArrivee : String)
+tempsMoyenCoureur()
+afficherPlusLongueCourse()
}
class Etape {
-villeDepart : String
-villeArrivee : String
-paysDepart : String
-paysArrivee : String
-distance : float
-numOrdre : int
-etatEtape : EtatEtape
+etablirClassementEtape()
+annulerEtape()
+cloturerEtape()
+lancerEtape()
+afficherInformations()
+init(villeDepart : String, villeArrivee : String, paysDepart : String, paysArrivee, distance : float, numOrdre : int)
+tempsMoyenCoureurEtape()
+recupererDistance()
}
enum EtatEtape {
LANCEE
CLOTUREE
ATTENTE
ANNULEE
}
class Performance {
-temps : float
-pointSprint : int
-pointGrimp : int
+recupererTemps()
+recupererPointSprint()
+recupererPointGrimp()
+ajouterPointSprint()
+ajouterPointGrimp()
+ajouterTemps()
+init()
}
Edition "1..*" --* Course
Edition *-- "1..*" Etape
Participation "1..*" -- "1..1" Edition
Participation "1..*" -- "1..1" Coureur
ParticipationEquipe "1..*" -- "1..1" Equipe
ParticipationEquipe "1..*" -- "1..1" Edition
Performance "0..*" -- "1..1" Participation
Performance "0..*" -- "1..1" Etape
Etat <|-- Participation
Etat <|-- ParticipationEquipe
EtatEtape <|-- Etape
```
## Diagramme de classe : Gestion Equipe
```plantuml
enum Etat <<enumeration>> {
VALIDE
ELIMINEE
ANNULEE
TERMINEE
}
class VehiculeAssistance {
-immatriculation : String
+afficherChauffeur(nom : String, prenom : String, numeroPermis : int)
+ajouterChauffeur(chauffeur : Chauffeur)
+afficherImmatriculationChauffeur()
+init(immatriculation : String, nom: String, prenom : String, numeroPermis : int)
}
class Chauffeur {
-nom : String
-prenom : String
-numPermis : int
+afficherChauffeur()
+init(nom, prenom, numero permis)
}
class Equipe {
-nomResponsable :String
-prenomResponsable : String
-mailResponsable : String
-telResponsable : String
-nationnalite : String
-nomEquipe : String
+afficherCoureurs()
+afficherNom()
+ajouterParticipation(edition: Edition)
+afficherParticipations()
+nombreVictoire()
+nombreParticipation()
+rechercherEquipe(nomEquipe : String)
+afficherNomResponsable()
+afficherNationalite()
}
class ParticipationEquipe {
-numInscription : int
-etatParticipation : Etat
-coureurs : list
+ajouterCoureur(coureur : Coureur)
+ajouterVehicule(immatriculation, nom, prenom, numeroPermis)
+afficherCoureurs()
+afficherCourse()
+afficherListeVehicules()
+modifierCoureur(coureur : Coureur, numCoureur : int)
+annulerParticipation()
+eliminerEquipe()
+supprimerCoureur()
+init()
+listeEditions()
+victoireParticipation()
}
class Coureur {
-nom : String
-prenom : String
-dateNaissance : Date
-groupeSanguin : String
+afficherInformations()
+recupererNom()
+rechercherCoureur(nom : String, prenom : String)
+ajouterParticipation(edition : Edition, nomEquipe : String)
+afficherParticipations()
+recupererDateNaissance()
}
class Participation {
-numInscription : int
-etatParticipation : Etat
-nomEquipe : String
+afficherInformations()
+annulerParticipation()
+init(nomEquipe : String)
+modifierInscription(nomEquipe : String)
+eliminerParticipant()
}
class Edition {
-annee : int
-dateDebut : Date
-dateFin : Date
-villeDepart : String
-villeArrivee : String
-paysDepart : String
-paysArrivee : String
-distance : float
-annulee : boolean
+etablirClassementEquipe()
+etablirClassemenGeneral()
+afficherCoureurs()
+afficherEquipes()
+afficherEtapes()
+ajouterEtape(villeDepart : String, villeArrivee : String, paysDepart : String, paysArrivee : String, distance : float, numOrdre : int)
+modifierInformations(annee : int, dateDebut : Date, villeDepart : String, villeArrivee : String, paysDepart : String, paysArrivee : String )
+annulerEdition()
+afficherInformations()
+recupererMeilleurSprinteur()
+recupererMeilleurGrimpeur()
+recupererMeilleurJeune()
+init(annee : int, dateDebut : date, dateFin : date, paysDepart : String, paysArrivee : String)
+tempsMoyenCoureur()
+afficherPlusLongueCourse()
}
Participation "1..*" -- "1..1" Edition
Participation "1..*" -- "1..1" Coureur
ParticipationEquipe "1..*" -- "1..1" Equipe
ParticipationEquipe "1..*" -- "1..1" Edition
ParticipationEquipe "1..1" -- "4" VehiculeAssistance
VehiculeAssistance "1..*" --* Chauffeur
Etat <|-- Participation
Etat <|-- ParticipationEquipe
```
## Diagramme de classe : Gestion Coureur
```plantuml
enum Etat <<enumeration>> {
VALIDE
ELIMINEE
ANNULEE
TERMINEE
}
class Coureur {
-nom : String
-prenom : String
-dateNaissance : Date
-groupeSanguin : String
+afficherInformations()
+recupererNom()
+rechercherCoureur(nom : String, prenom : String)
+ajouterParticipation(edition : Edition, nomEquipe : String)
+afficherParticipations()
+recupererDateNaissance()
}
class Participation {
-numInscription : int
-etatParticipation : Etat
-nomEquipe : String
+afficherInformations()
+annulerParticipation()
+init(nomEquipe : String)
+modifierInscription(nomEquipe : String)
+eliminerParticipant()
}
class Edition {
-annee : int
-dateDebut : Date
-dateFin : Date
-villeDepart : String
-villeArrivee : String
-paysDepart : String
-paysArrivee : String
-distance : float
-annulee : boolean
+etablirClassementEquipe()
+etablirClassemenGeneral()
+afficherCoureurs()
+afficherEquipes()
+afficherEtapes()
+ajouterEtape(villeDepart : String, villeArrivee : String, paysDepart : String, paysArrivee : String, distance : float, numOrdre : int)
+modifierInformations(annee : int, dateDebut : Date, villeDepart : String, villeArrivee : String, paysDepart : String, paysArrivee : String )
+annulerEdition()
+afficherInformations()
+recupererMeilleurSprinteur()
+recupererMeilleurGrimpeur()
+recupererMeilleurJeune()
+init(annee : int, dateDebut : date, dateFin : date, paysDepart : String, paysArrivee : String)
+tempsMoyenCoureur()
+afficherPlusLongueCourse()
}
Participation "1..*" -- "1..1" Edition
Participation "1..*" -- "1..1" Coureur
Etat <|-- Participation
```
## Diagramme de classe : Gestion Course
```plantuml
class Course {
-nom : String
+afficherNom()
+afficherEdition(int annee, Date dateDebut, Date dateFin)
+afficherListesEditions()
+ajouterEdition(annee : int, dateDebut : date, dateFin : date, villeDepart : String, villeArrivee : String)
+rechercherCourse(nomCourse : String)
+init(nom : String)
+recupererListesEditions()
}
class Edition {
-annee : int
-dateDebut : Date
-dateFin : Date
-villeDepart : String
-villeArrivee : String
-paysDepart : String
-paysArrivee : String
-distance : float
-annulee : boolean
+etablirClassementEquipe()
+etablirClassemenGeneral()
+afficherCoureurs()
+afficherEquipes()
+afficherEtapes()
+ajouterEtape(villeDepart : String, villeArrivee : String, paysDepart : String, paysArrivee : String, distance : float, numOrdre : int)
+modifierInformations(annee : int, dateDebut : Date, villeDepart : String, villeArrivee : String, paysDepart : String, paysArrivee : String )
+annulerEdition()
+afficherInformations()
+recupererMeilleurSprinteur()
+recupererMeilleurGrimpeur()
+recupererMeilleurJeune()
+init(annee : int, dateDebut : date, dateFin : date, paysDepart : String, paysArrivee : String)
+tempsMoyenCoureur()
+afficherPlusLongueCourse()
}
class Etape {
-villeDepart : String
-villeArrivee : String
-paysDepart : String
-paysArrivee : String
-distance : float
-numOrdre : int
-etatEtape : EtatEtape
+etablirClassementEtape()
+annulerEtape()
+cloturerEtape()
+lancerEtape()
+afficherInformations()
+init(villeDepart : String, villeArrivee : String, paysDepart : String, paysArrivee, distance : float, numOrdre : int)
+tempsMoyenCoureurEtape()
+recupererDistance()
}
enum EtatEtape {
LANCEE
CLOTUREE
ATTENTE
ANNULEE
}
Edition "1..*" --* Course
Edition *-- "1..*" Etape
EtatEtape <|-- Etape
```
## Diagramme de classe : Analyse de donnée
```plantuml
enum Etat <<enumeration>> {
VALIDE
ELIMINEE
ANNULEE
TERMINEE
}
class Equipe {
-nomResponsable :String
-prenomResponsable : String
-mailResponsable : String
-telResponsable : String
-nationnalite : String
-nomEquipe : String
+afficherCoureurs()
+afficherNom()
+ajouterParticipation(edition: Edition)
+afficherParticipations()
+nombreVictoire()
+nombreParticipation()
+rechercherEquipe(nomEquipe : String)
+afficherNomResponsable()
+afficherNationalite()
}
class ParticipationEquipe {
-numInscription : int
-etatParticipation : Etat
-coureurs : list
+ajouterCoureur(coureur : Coureur)
+ajouterVehicule(immatriculation, nom, prenom, numeroPermis)
+afficherCoureurs()
+afficherCourse()
+afficherListeVehicules()
+modifierCoureur(coureur : Coureur, numCoureur : int)
+annulerParticipation()
+eliminerEquipe()
+supprimerCoureur()
+init()
+listeEditions()
+victoireParticipation()
}
class Coureur {
-nom : String
-prenom : String
-dateNaissance : Date
-groupeSanguin : String
+afficherInformations()
+recupererNom()
+rechercherCoureur(nom : String, prenom : String)
+ajouterParticipation(edition : Edition, nomEquipe : String)
+afficherParticipations()
+recupererDateNaissance()
}
class Participation {
-numInscription : int
-etatParticipation : Etat
-nomEquipe : String
+afficherInformations()
+annulerParticipation()
+init(nomEquipe : String)
+modifierInscription(nomEquipe : String)
+eliminerParticipant()
}
class Course {
-nom : String
+afficherNom() check
+afficherEdition(int annee, Date dateDebut, Date dateFin)
+afficherListesEditions()
+ajouterEdition(annee : int, dateDebut : date, dateFin : date, villeDepart : String, villeArrivee : String)
+rechercherCourse(nomCourse : String)
+init(nom : String)
+recupererListesEditions()
}
class Edition {
-annee : int
-dateDebut : Date
-dateFin : Date
-villeDepart : String
-villeArrivee : String
-paysDepart : String
-paysArrivee : String
-distance : float
-annulee : boolean
+etablirClassementEquipe()
+etablirClassemenGeneral()
+afficherCoureurs()
+afficherEquipes()
+afficherEtapes()
+ajouterEtape(villeDepart : String, villeArrivee : String, paysDepart : String, paysArrivee : String, distance : float, numOrdre : int)
+modifierInformations(annee : int, dateDebut : Date, villeDepart : String, villeArrivee : String, paysDepart : String, paysArrivee : String )
+annulerEdition()
+afficherInformations()
+recupererMeilleurSprinteur()
+recupererMeilleurGrimpeur()
+recupererMeilleurJeune()
+init(annee : int, dateDebut : date, dateFin : date, paysDepart : String, paysArrivee : String)
+tempsMoyenCoureur()
+afficherPlusLongueCourse()
}
class Etape {
-villeDepart : String
-villeArrivee : String
-paysDepart : String
-paysArrivee : String
-distance : float
-numOrdre : int
-etatEtape : EtatEtape
+etablirClassementEtape()
+annulerEtape()
+cloturerEtape()
+lancerEtape()
+afficherInformations()
+init(villeDepart : String, villeArrivee : String, paysDepart : String, paysArrivee, distance : float, numOrdre : int)
+tempsMoyenCoureurEtape()
+recupererDistance()
}
enum EtatEtape {
LANCEE
CLOTUREE
ATTENTE
ANNULEE
}
class Performance {
-temps : float
-pointSprint : int
-pointGrimp : int
+recupererTemps()
+recupererPointSprint()
+recupererPointGrimp()
+ajouterPointSprint()
+ajouterPointGrimp()
+ajouterTemps()
+init()
}
Edition "1..*" --* Course
Edition *-- "1..*" Etape
Participation "1..*" -- "1..1" Edition
Participation "1..*" -- "1..1" Coureur
ParticipationEquipe "1..*" -- "1..1" Equipe
ParticipationEquipe "1..*" -- "1..1" Edition
Performance "0..*" -- "1..1" Participation
Performance "0..*" -- "1..1" Etape
Etat <|-- Participation
Etat <|-- ParticipationEquipe
EtatEtape <|-- Etape
```
## Diagramme de classe : Gestion de données
```plantuml
class VehiculeAssistance {
-immatriculation : String
}
class Chauffeur {
-nom : String
-prenom : String
-numPermis : int
}
class Equipe {
-nomResponsable :String
-prenomResponsable : String
-mailResponsable : String
-telResponsable : String
-nationnalite : String
-nomEquipe : String
}
class Coureur {
-nom : String
-prenom : String
-dateNaissance : Date
-groupeSanguin : String
}
class Course {
-nom : String
}
class Edition {
-annee : int
-dateDebut : Date
-dateFin : Date
-villeDepart : String
-villeArrivee : String
-paysDepart : String
-paysArrivee : String
-distance : float
-annulee : boolean
}
class Etape {
-villeDepart : String
-villeArrivee : String
-paysDepart : String
-paysArrivee : String
-distance : float
-numOrdre : int
}
VehiculeAssistance "1..*" --* Chauffeur
Edition "1..*" --* Course
Edition *-- "1..*" Etape
```
## MCD MODIFIE
```plantuml
enum Etat <<enumeration>> {
VALIDE
ELIMINEE
ANNULEE
TERMINEE
}
class VehiculeAssistance {
-immatriculation : String
+afficherChauffeur(nom : String, prenom : String, numeroPermis : int)
+ajouterChauffeur(chauffeur : Chauffeur)
+afficherImmatriculationChauffeur()
+init(immatriculation : String, nom: String, prenom : String, numeroPermis : int)
}
class Chauffeur {
-nom : String
-prenom : String
-numPermis : int
+afficherChauffeur()
+init(nom, prenom, numero permis)
}
class Equipe {
-nomResponsable :String
-prenomResponsable : String
-mailResponsable : String
-telResponsable : String
-nationnalite : String
-nomEquipe : String
+afficherCoureurs()
+afficherNom()
+ajouterParticipation(edition: Edition)
+afficherParticipations()
+nombreVictoire()
+nombreParticipation()
+rechercherEquipe(nomEquipe : String)
+afficherNomResponsable()
+afficherNationalite()
}
class ParticipationEquipe {
-numInscription : int
-etatParticipation : Etat
-coureurs : list
+ajouterCoureur(coureur : Coureur)
+ajouterVehicule(immatriculation, nom, prenom, numeroPermis)
+afficherCoureurs()
+afficherCourse()
+afficherListeVehicules()
+modifierCoureur(coureur : Coureur, numCoureur : int)
+annulerParticipation()
+eliminerEquipe()
+supprimerCoureur()
+init()
+listeEditions()
+victoireParticipation()
}
class Coureur {
-nom : String
-prenom : String
-dateNaissance : Date
-groupeSanguin : String
+afficherInformations()
+recupererNom()
+rechercherCoureur(nom : String, prenom : String)
+ajouterParticipation(edition : Edition, nomEquipe : String)
+afficherParticipations()
+recupererDateNaissance()
}
class Participation {
-numInscription : int
-etatParticipation : Etat
-nomEquipe : String
+afficherInformations()
+annulerParticipation()
+init(nomEquipe : String)
+modifierInscription(nomEquipe : String)
+eliminerParticipant()
}
class Course {
-nom : String
+afficherNom()
+afficherEdition(int annee, Date dateDebut, Date dateFin)
+afficherListesEditions()
+ajouterEdition(annee : int, dateDebut : date, dateFin : date, villeDepart : String, villeArrivee : String)
+rechercherCourse(nomCourse : String)
+init(nom : String)
+recupererListesEditions()
}
class Edition {
-annee : int
-dateDebut : Date
-dateFin : Date
-villeDepart : String
-villeArrivee : String
-paysDepart : String
-paysArrivee : String
-distance : float
-annulee : boolean
+etablirClassementEquipe()
+etablirClassemenGeneral()
+afficherCoureurs()
+afficherEquipes()
+afficherEtapes()
+ajouterEtape(villeDepart : String, villeArrivee : String, paysDepart : String, paysArrivee : String, distance : float, numOrdre : int)
+modifierInformations(annee : int, dateDebut : Date, villeDepart : String, villeArrivee : String, paysDepart : String, paysArrivee : String )
+annulerEdition()
+afficherInformations()
+recupererMeilleurSprinteur()
+recupererMeilleurGrimpeur()
+recupererMeilleurJeune()
+init(annee : int, dateDebut : date, dateFin : date, paysDepart : String, paysArrivee : String)
+tempsMoyenCoureur()
+afficherPlusLongueCourse()
}
class Etape {
-villeDepart : String
-villeArrivee : String
-paysDepart : String
-paysArrivee : String
-distance : float
-numOrdre : int
-etatEtape : EtatEtape
+etablirClassementEtape()
+annulerEtape()
+cloturerEtape()
+lancerEtape()
+afficherInformations()
+init(villeDepart : String, villeArrivee : String, paysDepart : String, paysArrivee, distance : float, numOrdre : int)
+tempsMoyenCoureurEtape()
+recupererDistance()
}
enum EtatEtape {
LANCEE
CLOTUREE
ATTENTE
ANNULEE
}
class Performance {
-temps : float
-pointSprint : int
-pointGrimp : int
+recupererTemps()
+recupererPointSprint()
+recupererPointGrimp()
+ajouterPointSprint()
+ajouterPointGrimp()
+ajouterTemps()
+init()
}
Edition "1..*" --* Course
Edition *-- "1..*" Etape
Participation "1..*" -- "1..1" Edition
Participation "1..*" -- "1..1" Coureur
ParticipationEquipe "1..*" -- "1..1" Equipe
ParticipationEquipe "1..*" -- "1..1" Edition
ParticipationEquipe "1..1" -- "4" VehiculeAssistance
VehiculeAssistance "1..*" --* Chauffeur
Performance "0..*" -- "1..1" Participation
Performance "0..*" -- "1..1" Etape
Etat <|-- Participation
Etat <|-- ParticipationEquipe
EtatEtape <|-- Etape
```