Skip to content

Instantly share code, notes, and snippets.

@rphlgngs
Last active November 23, 2021 08:42
Show Gist options
  • Save rphlgngs/f311094adc0068aa8cf016b7c72de681 to your computer and use it in GitHub Desktop.
Save rphlgngs/f311094adc0068aa8cf016b7c72de681 to your computer and use it in GitHub Desktop.
TD JAVA
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)
);
}
}
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.
}
}
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"));
}
}
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();
}
}
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.
}
}
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.
}
}
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