Last active
November 23, 2021 08:42
-
-
Save rphlgngs/f311094adc0068aa8cf016b7c72de681 to your computer and use it in GitHub Desktop.
TD JAVA
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package tdGuingoisRaphael; | |
import java.time.LocalDateTime; | |
import java.time.format.DateTimeFormatter; | |
import java.time.format.FormatStyle; | |
import java.util.ArrayList; | |
/** | |
* Class représentant un cours | |
* @author p1500696 | |
* @version 1.0 | |
* @since 1.0 | |
*/ | |
public class Cours { | |
private String titre; | |
private LocalDateTime dateDebut; | |
private LocalDateTime dateFin; | |
private ArrayList<Enseignant> enseignants; | |
private ArrayList<Eleve> eleves; | |
/** | |
* Constructeur de la class Cours | |
* @param titre Titre du cours | |
* @param dateDebut Date de début du cours | |
* @param dateFin Date de fin du cours | |
* @param enseignants Enseignant(s) du cours | |
* @param eleves Eleve(s) du cours | |
*/ | |
public Cours(String titre, LocalDateTime dateDebut, LocalDateTime dateFin, | |
ArrayList<Enseignant> enseignants, ArrayList<Eleve> eleves) { | |
this.titre = titre; | |
this.dateDebut = dateDebut; | |
this.dateFin = dateFin; | |
this.enseignants = enseignants; | |
this.eleves = eleves; | |
} | |
public String getTitre() { | |
return titre; | |
} | |
public void setTitre(String titre) { | |
this.titre = titre; | |
} | |
public LocalDateTime getDateDebut() { | |
return dateDebut; | |
} | |
public void setDateDebut(LocalDateTime dateDebut) { | |
this.dateDebut = dateDebut; | |
} | |
public LocalDateTime getDateFin() { | |
return dateFin; | |
} | |
public void setDateFin(LocalDateTime dateFin) { | |
this.dateFin = dateFin; | |
} | |
public void addEleve(Eleve eleve) | |
{ | |
this.eleves.add(eleve); | |
} | |
public void addEnseignant(Enseignant enseignant) | |
{ | |
this.enseignants.add(enseignant); | |
} | |
@Override | |
public String toString() { | |
return "Le cours de " + getTitre() + " comptera " + eleves.size() | |
+ " élève(s) et " + enseignants.size() + " enseignant(s).\n" | |
+ " Il a lieu du " + | |
getDateDebut().format( | |
DateTimeFormatter.ofLocalizedDateTime(FormatStyle.MEDIUM) | |
) + | |
" au " + getDateFin().format( | |
DateTimeFormatter.ofLocalizedDateTime(FormatStyle.MEDIUM) | |
); | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package tdGuingoisRaphael; | |
/** | |
* Class représentant un élève | |
* @author p1500696 | |
* @version 1.0 | |
* @since 1.0 | |
*/ | |
public class Eleve extends Personne { | |
private Groupe groupe; | |
/** | |
* Constructeur de la class Eleve | |
* @param nom Nom de l'élève | |
* @param prenom Prénom de l'élève | |
* @param groupe Groupe de l'élève | |
*/ | |
public Eleve(String nom, String prenom, Groupe groupe) { | |
super(nom, prenom); | |
this.groupe = groupe; | |
} | |
public Groupe getGroupe() { | |
return groupe; | |
} | |
public void setGroupe(Groupe groupe) { | |
this.groupe = groupe; | |
} | |
@Override | |
public String toString() { | |
return super.toString() + "\nGroupe : " + getGroupe().getNom(); //To change body of generated methods, choose Tools | Templates. | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package tdGuingoisRaphael; | |
import java.util.ArrayList; | |
import java.time.LocalDateTime; | |
import java.time.LocalDate; | |
import java.util.Random; | |
import java.util.Scanner; | |
/** | |
* Class principale EmploiDuTemps | |
* @author p1500696 | |
* @version 1.0 | |
*/ | |
public class EmploiDuTemps { | |
/** | |
* @param args the command line arguments | |
*/ | |
public static void main(String[] args) { | |
Scanner sc = new Scanner(System.in); | |
String recommence = "a"; | |
do { | |
int choix = 0; | |
do { | |
System.out.println("Pour le prefait taper 1"); | |
System.out.println("Pour l'aléatoire taper 2"); | |
choix = sc.nextInt(); | |
} while (choix != 1 && choix != 2); | |
switch(choix) | |
{ | |
case 1: | |
// 1 // | |
// a. Deux matières | |
Matiere java = new Matiere("Java"); | |
Matiere anglais = new Matiere("Anglais"); | |
// b. Un groupe | |
Groupe g6s2 = new Groupe(1, "G6S2"); | |
// c. Un enseignant | |
Enseignant a_chambade = new Enseignant("Chambade", "Adrien", | |
new ArrayList()); | |
/* On ajoute une matière à la liste */ | |
a_chambade.addMatiere(java); | |
// d. Deux élèves | |
Eleve eleve1 = new Eleve("Guingois", "Raphaël", g6s2); | |
Eleve eleve2 = new Eleve("Vignes", "Clément", g6s2); | |
// e. Créer un cours | |
LocalDateTime debut_cours = LocalDateTime.parse( | |
LocalDate.now().plusDays(1) + "T14:00:00.000" | |
); | |
LocalDateTime fin_cours = debut_cours.plusHours(2); | |
Cours cours1 = new Cours("Javadore la prog", debut_cours, fin_cours, | |
new ArrayList(), new ArrayList()); | |
/* On ajoute un enseignant pour le cours */ | |
cours1.addEnseignant(a_chambade); | |
/* On ajoute les deux élèves pour le cours */ | |
cours1.addEleve(eleve1); | |
cours1.addEleve(eleve2); | |
// f. Afficher le cours | |
System.out.println(cours1); | |
break; | |
case 2: | |
// ------- 2 ------- // | |
/* Une liste de noms */ | |
ArrayList<String> lst_nom = new ArrayList<String>(); | |
lst_nom.add("Dupont"); | |
lst_nom.add("Ducarton"); | |
lst_nom.add("Newton"); | |
lst_nom.add("Noname"); | |
/* Une liste de prénoms */ | |
ArrayList<String> lst_prenom = new ArrayList<String>(); | |
lst_prenom.add("Michel"); | |
lst_prenom.add("Karim"); | |
lst_prenom.add("Dary"); | |
lst_prenom.add("Marie"); | |
/* Une liste de groupes */ | |
ArrayList<Groupe> lst_groupes = new ArrayList<Groupe>(); | |
lst_groupes.add(new Groupe(1, "G6S2")); | |
lst_groupes.add(new Groupe(2, "G8S1")); | |
/* Une liste de matières */ | |
ArrayList<Matiere> lst_matieres = new ArrayList<Matiere>(); | |
lst_matieres.add(new Matiere("Java")); | |
lst_matieres.add(new Matiere("Anglais")); | |
/* Liste élève(s) */ | |
ArrayList<Eleve> lst_eleves = new ArrayList<Eleve>(); | |
/* Liste enseignant(s)*/ | |
ArrayList<Enseignant> lst_enseignants = new ArrayList<Enseignant>(); | |
// a. Demande à l'utilisateur | |
Scanner scanner = new Scanner(System.in); | |
int nb_eleve = 0; | |
int nb_enseignant = 0; | |
/* On vérifie que le nombre n'est pas négatif ou nul */ | |
do { | |
System.out.println("Nombre d'élève(s) : "); | |
nb_eleve = scanner.nextInt(); | |
} while (nb_eleve <= 0); | |
/* IDEM qu'au dessus */ | |
do { | |
System.out.println("Nombre d'enseignant(s) : "); | |
nb_enseignant = scanner.nextInt(); | |
} while (nb_enseignant <= 0); | |
/* On génère aléatoirement nb_eleve élèves */ | |
for (int i = 0; i < nb_eleve; i++) | |
{ | |
Random r = new Random(); | |
lst_eleves.add(new Eleve(lst_nom.get(r.nextInt(lst_nom.size())), | |
lst_prenom.get(r.nextInt(lst_prenom.size())), | |
lst_groupes.get(r.nextInt(lst_groupes.size())))); | |
} | |
/* On génère aléatoirement nb_enseignant enseignants */ | |
for (int i = 0; i < nb_enseignant; i++) | |
{ | |
/* On créé un random */ | |
Random r = new Random(); | |
/* On créé une liste des matières enseignées | |
*/ | |
ArrayList<Matiere> lst_matieres_ens = new ArrayList<Matiere>(); | |
/* On ajoute au hasard un nombre de matière compris entre 0 & | |
le nombre de matières existantes | |
*/ | |
for (int j = 0; j < r.nextInt(lst_matieres.size()); j++) | |
{ | |
lst_matieres_ens.add(lst_matieres.get(j)); | |
} | |
/* On créé un nouvel enseignant */ | |
lst_enseignants.add( | |
new Enseignant(lst_nom.get(r.nextInt(lst_nom.size())), | |
lst_prenom.get(r.nextInt(lst_prenom.size())), | |
lst_matieres_ens)); | |
} | |
/* Pour les vérifications */ | |
for (Eleve el : lst_eleves) | |
{ | |
System.out.println(el); | |
} | |
for (Enseignant es : lst_enseignants) | |
{ | |
System.out.println(es); | |
} | |
break; | |
} | |
/* Pour recommencer les tests */ | |
System.out.println("Voulez-vous recommencer ? (o/n)"); | |
recommence = sc.next(); | |
}while(recommence.equals("o")); | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package tdGuingoisRaphael; | |
import java.util.ArrayList; | |
/** | |
* Class représentant un enseignant | |
* @author p1500696 | |
* @version 1.0 | |
* @since 1.0 | |
*/ | |
public class Enseignant extends Personne { | |
private ArrayList<Matiere> matieres; | |
/** | |
* Constructeur de la class Enseignant | |
* @param nom Nom de l'enseignant | |
* @param prenom Prénom de l'enseignant | |
* @param matieres Matière(s) de l'enseignant | |
*/ | |
public Enseignant(String nom, String prenom, ArrayList<Matiere> matieres) { | |
super(nom, prenom); | |
this.matieres = matieres; | |
} | |
public ArrayList<Matiere> getMatieres() { | |
return matieres; | |
} | |
public void addMatiere(Matiere matiere) | |
{ | |
this.getMatieres().add(matiere); | |
} | |
@Override | |
public String toString() { | |
return super.toString() + "\nNombre de matière(s) enseignée(s) : " | |
+ getMatieres().size(); | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package tdGuingoisRaphael; | |
/** | |
* Class représentant un groupe | |
* @author p1500696 | |
* @version 1.0 | |
* @since 1.0 | |
*/ | |
public class Groupe { | |
private int numero; | |
private String nom; | |
/** | |
* Constructeur de la class Groupe | |
* @param numero ID du groupe | |
* @param nom Nom du groupe | |
*/ | |
public Groupe(int numero, String nom) { | |
this.numero = numero; | |
this.nom = nom; | |
} | |
/** | |
* Getter de l'ID de l'élève | |
* @return this.numero | |
*/ | |
public int getNumero() { | |
return numero; | |
} | |
/** | |
* Setter de l'ID de l'élève | |
* @param numero ID de l'élève | |
*/ | |
public void setNumero(int numero) { | |
this.numero = numero; | |
} | |
/** | |
* Getter du nom de l'élève | |
* @return this.nom | |
*/ | |
public String getNom() { | |
return nom; | |
} | |
/** | |
* Setter du nom de l'élève | |
* @param nom Nom de l'élève | |
*/ | |
public void setNom(String nom) { | |
this.nom = nom; | |
} | |
@Override | |
public String toString() { | |
return "ID du groupe : " + getNumero() + "\nNom du groupe : " + getNom(); //To change body of generated methods, choose Tools | Templates. | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package tdGuingoisRaphael; | |
/** | |
* Class représentant une matière | |
* @author p1500696 | |
* @version 1.0 | |
* @since 1.0 | |
*/ | |
public class Matiere { | |
private String nom; | |
/** | |
* Constructeur de la class Matiere | |
* @param nom Nom de la matière | |
*/ | |
public Matiere(String nom) { | |
this.nom = nom; | |
} | |
/** | |
* Getter de nom | |
* @return this.nom | |
*/ | |
public String getNom() { | |
return nom; | |
} | |
/** | |
* Setter de nom | |
* @param nom Nom de la matière | |
*/ | |
public void setNom(String nom) { | |
this.nom = nom; | |
} | |
@Override | |
public String toString() { | |
return "Nom de la matière : " + getNom(); //To change body of generated methods, choose Tools | Templates. | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package tdGuingoisRaphael; | |
/** | |
* Class représentant une personne | |
* @author p1500696 | |
* @version 1.0 | |
* @since 1.0 | |
*/ | |
public class Personne { | |
private String nom; | |
private String prenom; | |
/** | |
* Constructeur de la class Personne | |
* @param nom Nom de famille de la personne | |
* @param prenom Prénom de la personne | |
*/ | |
public Personne(String nom, String prenom) { | |
this.nom = nom; | |
this.prenom = prenom; | |
} | |
/** | |
* Getter du nom de la personne | |
* @return this.nom | |
*/ | |
public String getNom() { | |
return nom; | |
} | |
/** | |
* Setter du nom de la personne | |
* @param nom Nom de la personne | |
*/ | |
public void setNom(String nom) { | |
this.nom = nom; | |
} | |
/** | |
* Getter du prénom de la personne | |
* @return this.prenom | |
*/ | |
public String getPrenom() { | |
return prenom; | |
} | |
public void setPrenom(String prenom) { | |
this.prenom = prenom; | |
} | |
@Override | |
public String toString() { | |
return "Nom de la personne : " + getNom() + "\nPrénom de la personne : " + getPrenom(); //To change body of generated methods, choose Tools | Templates. | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment