0% ont trouvé ce document utile (0 vote)
46 vues10 pages

Rapport Java Tp3

Transféré par

IMANE CHEMLAL
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
46 vues10 pages

Rapport Java Tp3

Transféré par

IMANE CHEMLAL
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd
Vous êtes sur la page 1/ 10

TP3 : JAVA AVANCÉE

4 EME ANNÉE CYCLE D’INGÉNIEURE


INGÉNIERIE INFORMATIQUE ET RÉSEAU JAVA

TP3 : Acquis visés


Comprendre les principes des Maps
Manipulation des Maps de types prédéfinis.
Modélisation d’un problème et le résoudre en utilisant les Maps

TP4 : Acquis visés


Modélisation d’un problème et le résoudre en utilisant les Maps
Comprendre les principes des Streams en Java
Créer des Steams selon des objectifs
Maitriser les operation : filter, map , collect et forEach

Sidi el khir Ayat 23/11/2023


Diagramme de classe avec dictionnaire des données

Dictionnaire des données


Membre
ID : identifiant du membre
Nom : nom du membre
Groupe : groupe auquel appartient le membre
Projet : projet sur lequel travaille le membre
Groupe
ID : identifiant du groupe
Membres : ensemble des membres du groupe
Partenariat
Groupe1 : groupe participant au partenariat
Groupe2 : groupe participant au partenariat
Laboratoire
Membres : liste des membres du laboratoire
Groupes : liste des groupes du laboratoire
Partenariat : liste des partenariats du laboratoire

Code source
classe membre :

package Tp3 ; public class Membre


{ private int ID; private String nom;
private Groupe groupe; private String
projet_en_cours;

// Constructeur
public Membre(int ID, String nom, Groupe groupe, String projet_en_cours) { this.ID = ID;
this.nom = nom; this.groupe = groupe;
this.projet_en_cours = projet_en_cours;
}

// Getters et Setters public int


getID() {
return ID;
}

public String getNom() { return nom;


}

public Groupe getGroupe() { return groupe;


}

public void setGroupe(Groupe groupe) { this.groupe = groupe;


}

public String getProjet_en_cours() { return


projet_en_cours;
}

public void setProjet_en_cours(String projet_en_cours) { this.projet_en_cours =


projet_en_cours;
}

// Méthode pour afficher les détails d'un membre


public void afficherDetails() {
System.out.println("ID: " + ID);
System.out.println("Nom: " + nom);
System.out.println("Groupe: " + groupe.getID());
System.out.println("Projet en cours: " + projet_en_cours);
}
}
classe Groupe :
package Tp3; import
java.util.HashSet; import
java.util.Set;

public class Groupe {


private int ID;
private Set<Membre> membres;

// Constructeur public
Groupe(int ID) {
this.ID = ID;
this.membres = new HashSet<>();
}

// Getters et Setters public int


getID() { return ID;
}

public Set<Membre> getMembres() { return


membres;
}

public void addMembre(Membre membre)


{ membres.add(membre);
}

public void removeMembre(Membre membre)


{ membres.remove(membre);
}

// Méthode pour afficher les membres du groupe public void


afficherMembres() { for (Membre membre : membres) {
System.out.println("Membre ID: " + membre.getID() + ", Nom: " + membre.getNom());
}
}
}
classe Partenariat :

package Tp3; public class Partenariat


{ private Groupe groupe1; private
Groupe groupe2;

// Constructeur
public Partenariat(Groupe groupe1, Groupe groupe2) { this.groupe1 =
groupe1; this.groupe2 = groupe2;
}

// Getters et Setters public Groupe


getGroupe1() { return groupe1;
}

public Groupe getGroupe2() { return groupe2;


}

// Méthode pour afficher les détails du partenariat


public void afficherDetails() {
System.out.println("Partenariat entre les groupes " + groupe1.getID() + " et " + groupe2.getID());
}
}

classe Projet : package Tp3;

public class Projet {


// Définissez les détails du projet String nom;

// Constructeur public Projet(String


nom) { this.nom = nom;
}

// Méthode pour afficher les détails du projet


@Override
public String toString() {
return "Projet[nom='" + nom + "']";
}
}
classe Laboratoire :
package Tp3; import
java.util.ArrayList; import
java.util.List;

public class Laboratoire {


private List<Membre> membres = new ArrayList<>(); private
List<Groupe> groupes = new ArrayList<>(); private List<Partenariat>
partenariats = new ArrayList<>();

public void creerGroupesEtPartenariats() { for (Membre


membre : membres) {
Groupe groupe = new Groupe(membre.getGroupe().getID());
groupe.addMembre(membre);
groupes.add(groupe);
}

// Ajouter des partenariats

if (groupes.size() >= 2) {
Partenariat partenariat = new Partenariat(groupes.get(0),
groupes.get(1)); partenariats.add(partenariat);
}
}

public void afficherStructureDeRecherche()


{ System.out.println("Membres : "); for (Membre membre
: membres) {
membre.afficherDetails();
}

System.out.println("\nGroupes : "); for (Groupe


groupe : groupes) {
groupe.afficherMembres();
}

System.out.println("\nPartenariats : "); for (Partenariat


partenariat : partenariats) { partenariat.afficherDetails();
}
}

public void supprimerMembre(int membreID) { Membre


membreASupprimer = null; for (Membre membre :
membres) {
if (membre.getID() == membreID) {
membreASupprimer = membre; break;
}
}

if (membreASupprimer != null) {
membres.remove(membreASupprimer);

}
}

public void ajouterModifierProjetMembre(int membreID, String nouveauProjet) { for (Membre


membre : membres) { if (membre.getID() == membreID)
{ membre.setProjet_en_cours(nouveauProjet); break;
}
}
}

public static void main(String[] args) {


Laboratoire laboratoire = new Laboratoire();

// Ajouter seulement les membres à partir du fichier joint (CSV ou JSON)


// Implémentez la logique pour lire le fichier CSV ou JSON et ajouter les membres au laboratoire.
Groupe groupe1 = new Groupe(1);
Groupe groupe2 = new Groupe(2);

Membre membre1 = new Membre(1, "John Doe", groupe1, "Projet A"); Membre membre2 = new
Membre(2, "Jane Doe", groupe2, "Projet B");

laboratoire.membres.add(membre1); laboratoire.membres.add(membre2);

// Après l'ajout des membres, l’appel des méthodes nécessaires.


laboratoire.creerGroupesEtPartenariats(); laboratoire.afficherStructureDeRecherche();
laboratoire.supprimerMembre(1);
laboratoire.ajouterModifierProjetMembre(2, "Nouveau Projet");
laboratoire.afficherStructureDeRecherche();
}
}

 Classe Produit :
package Tp4;

import java.util.ArrayList;
import java.util.List;
import java.util.Set;

public class ProduitEx3 {


public String id;
public String nom;
public String categorie;
public double prix;
public int anneFabric;
public List<Integer> evaluations ;

public ProduitEx3(String id ,String nom ,double prix,String categorie ,int anneFabric, Set<Integer>
set ) {
this.id = id;
this.nom = nom;
this.prix = prix;
this.categorie = categorie;
this.anneFabric = anneFabric;
this.evaluations.addAll(set);
}

@Override
public String toString() {
return "Produit [id=" + id + ", nom = " + nom + ", prix = " + prix + ", anneFabric = " +
anneFabric + "]";
}

public String getId() {


return id;
}
public void setId(String id) {
this.id = id;
}

public String getNom() {


return nom;
}

public void setNom(String nom) {


this.nom = nom;
}

public double getPrix() {


return prix;
}

public void setPrix(double prix) {


this.prix = prix;
}

public int getAnneFabric() {


return anneFabric;
}

public void setAnneFabric(int anneFabric) {


this.anneFabric = anneFabric;
}

public List<Integer> getEvaluations() {


return evaluations;
}

public void setEvaluations(List<Integer> evaluations) {


this.evaluations = evaluations;
}

public String getCategorie() {


return categorie;
}

public void setCategorie(String categorie) {


this.categorie = categorie;
}

}
 Fonction main :

package Tp4;

import java.util.HashSet;

import java.util.Set;

import java.util.stream.Collectors;

public class MainEx3 {

public static void main(String[] args) {

Set<ProduitEx3> produits = new HashSet<>();

// Création d'objets Produit pour le test

ProduitEx3 produit1 = new ProduitEx3("001", "Ordinateur", 999.99, "Electronique", 2022,


Set.of(4, 5, 3));

ProduitEx3 produit2 = new ProduitEx3("002", "Chaise", 49.99, "Meuble", 2020, Set.of(4, 4, 5));

ProduitEx3 produit3 = new ProduitEx3("003", "Livre", 14.99, "Librairie", 2021, Set.of(5, 5, 4));

produits.add(produit1);

produits.add(produit2);

produits.add(produit3);

// Stream 1

Set<ProduitEx3> produitsFiltres = produits.stream()

.filter(p -> p.getAnneFabric() > 2021)

.map(p -> {

// Modification de la forme des id

String newId = p.getCategorie().substring(0, 3).toUpperCase() + "-" + p.getId();


return new ProduitEx3(newId, p.getNom(), p.getPrix(), p.getCategorie(), p.getAnneFabric(),
(Set<Integer>) p.getEvaluations());

})

.collect(Collectors.toSet());

// Affichage des résultats

produitsFiltres.forEach(produit -> {System.out.println(produit);

// Stream 2

Set<ProduitEx3> produitsRemises = produitsFiltres.stream()

.filter(p -> p.getPrix() <= 2000 && p.getCategorie().equals("Electronique"))

.map(p -> {

double prixRemise = p.getPrix() * 0.85; // Remise de 15%

return new ProduitEx3(p.getId(), p.getNom(), prixRemise, p.getCategorie(),


p.getAnneFabric(), (Set<Integer>) p.getEvaluations());

})

.filter(p -> p.getCategorie().equals("Librairie"))

.collect(Collectors.toSet());

// Affichage des résultats

produitsFiltres.forEach(produit -> System.out.println(produit));

// Stream 3

Vous aimerez peut-être aussi