Filière 3A , Semestre 2 P.
Mécanique 2024-2025
Encadré par [Link] Zohra El Hlouli
Projet Java:
Modélisation orientée objet de matériaux industriels, en mettant l'accent sur
l'héritage, le polymorphisme, les interfaces et l'encapsulation.
<<interface>>
IAffichable
+ afficher_informations() :
void
Materiau
#nom: String
#densite : double
#prix_unitaire :double
#calculer_masse(volume: Float): Float
#calculer_cout( volume: Float): Float
Bois Plastique Acier
- essence: String - type_polymere - type_alliage: String
- taux_humidite: Float - temperature_fusion - resistance_traction: Float
- classe_resistance: String - Rigidite - module_young: Float
- est_recyclable - soudabilite: Boolean
+ peut_etre_recycle():Boolean +
calculer_resistance_section(
aire_section: Float): Float
+ est_soudable():Boolean
1-La formule générale pour calculer le coût est donc :
cout = masse * prix_unitaire
calculer_cout(volume) = calculer_masse(volume)×Prix_Unitaire
Filière 3A , Semestre 2 P.Mécanique 2024-2025
Encadré par [Link] Zohra El Hlouli
Class Acier :
calculer_masse(volume) =Densiteˊ×Volume
est_soudable(): Boolean
Cette méthode a pour but de déterminer si le type d'acier représenté par
l'instance de la classe est considéré comme soudable ou non.
calculer_resistance_section(aire_section) : Float
= resistance_traction(en Pascal) * aire_section
Acier acierInox304 = new Acier("Acier Inoxydable 304",8000.0,2.50,"AISI
304",520.0, 193.0, true);
Class Bois :
L'humidité augmente la masse. Une approximation simple est :
facteur_humidite = 1 + (taux_humidite / 100)
Masse=densite * volume * facteur_humidite
Bois boisBambou = new Bois("Bambou", 650.0, 2.20,"Bambusa vulgaris", 10.0,
"Variable");
Class Plastique :
calculer_masse(volume) =Densiteˊ×Volume.
est_recyclable() returne true si est_recyclable=true et false sinon.
Exemple d’objet :
Plastique pvc = new Plastique("PVC", 1380.0,0.90, "Polychlorure de vinyle",
80.0, "Rigide", false);
Travail demandé :
1. Créez une méthode main() dans une classe dédiée (par exemple
ProjetMateriau) pour :
o Instancier plusieurs objets de différents types (Acier, Bois,
Plastique),
o Les stocker dans une collection polymorphe
List<Materiau> Mat_List = new ArrayList< >().
Filière 3A , Semestre 2 P.Mécanique 2024-2025
Encadré par [Link] Zohra El Hlouli
2. Pour chaque matériau de la collection :
o Afficher les informations (afficher_informations()),
o Calculer la masse et le coût pour un volume donné,
o Vérifier les propriétés spécifiques via le cast si nécessaire (ex :
instanceof Acier pour appeler est_soudable()).
Mat_List.add(new Bois(("Bambou", 650.0, 2.20,"Bambusa vulgaris",
10.0, "Variable"));
Mat_List.add(new Acier(("Acier Inoxydable 04",8000.0,2.50,"AISI
304",520.0, 193.0, true));
Mat_List.add(new Plastique(("PVC", 1380.0,0.90, "Polychlorure de
vinyle", 80.0, "Rigide", false));
for (Materiau m : Mat_List) {
// Utilisation de instanceof
if (m instanceof Bois) {
[Link](" C'est du bois.");
} else if (m instanceof Acier) {
[Link](" C'est de l’Acier.");
//appelez la méthode est_soudable()
} else if (m instanceof Plastique) {
[Link](" C'est du plastique.");
3. Implémentez une méthode trouverMateriauLeMoinsCher qui :
o Prend en paramètre un volume (ex. float volume),
o Parcourt une collection d’objets Materiau (Mat_List)
o Calcule le coût de chaque matériau pour ce volume
(calculer_cout(volume)),
o Identifie et retourne le matériau ayant le coût le plus bas.