SlideShare une entreprise Scribd logo
Institut Supérieur d’informatique
Équipe pédagogique
Mr Ben Rkaya Moez & Mme Boulifa Nadia
Mme. Salwa Mbarek Mme. Rania Mzid
Programmation JAVA
Filière : 2CS
P a g e | 1
Corrigé exercice
Manipulation d’un Tableau d’objets
Une boite de développement désire développer une application de gestion de
ressources de magasin de produits différents. Avant d’entamer la réalisation de ce
programme, la société a commencé par une étude du marché qui a permis de
dégager les différentes caractéristiques d’un produit et qui sont :
• Un identifiant (entier)
• Un libellé (chaine de caractère)
• Une marque (chaine de caractère)
• Un prix unitaire (un nombre réel)
• La quantité (entier)
• Une remise de 10% (s’il y a une offre de remise- booléen)
Nb : chaque produit n’a pas de remise par défaut.
Le programme doit permettre à l’utilisateur de :
1. Créer un produit vide (sans attributs)
2. Créer des nouveaux produits tout en spécifiant les caractéristiques (avec
attributs)
3. Ajouter (redéfinir) la méthode toString () dans la classe Produit qui renvoie une
chaîne de caractères décrivant le produit.
Corrigé
package com.java.classes;
public class Produit {
private int identifiant;
private String libelle;
private String marque;
private double prixU;
private boolean isremise;
private int qtte;
//Créer un produit vide (sans attributs)
public Produit(){
identifiant=0;
libelle="";
marque="";
prixU=0;
isremise=false;
qtte=0;
}
//Créer un produit (avec des attributs)
Institut Supérieur d’informatique
Équipe pédagogique
Mr Ben Rkaya Moez & Mme Boulifa Nadia
Mme. Salwa Mbarek Mme. Rania Mzid
Programmation JAVA
Filière : 2CS
P a g e | 2
public Produit(int identifiant,String libelle,String marque,double prixU,
int qtte){
this.identifiant=identifiant;
this.libelle=libelle;
this.marque=marque;
this.prixU=prixU;
this.qtte = qtte;
this.isremise = false;
}
// Calculer le prix total de chaque remise
private double calcuerPrix(){
double totalprix;
if(this.isremise)
totalprix = (prixU * qtte) - (prixU * qtte)*0.1;
else
totalprix = prixU * qtte;
return totalprix;
}
//Afficher les produits
public String toString(){
return identifiant +" "+ libelle +" "+ marque +" "+ calcuerPrix();
}
//les accesseurs et les setteurs
public int getIdentifiant() {
return identifiant;
}
public void setIsremise(boolean isremise) {
this.isremise = isremise;
}
public void setPrixU (double prixU) {
this.prixU = prixU;
}
} //fin de la classe Produit
Dans le cadre de l’amélioration du programme sur lequel vous êtes affectés dans
l’entreprise et dans un souci constant d’adaptation aux besoins du client, vous êtes
demandés de créer un autre module afin de gérer les besoins des propriétaires
des magasins. Les différentes caractéristiques d’un magasin :
• Un identifiant (entier)
• Un nom (chaine de caractère)
• Une adresse (chaine de caractère)
• Capacité du magasin (taille maximale du magasin- entier)
• Nombre de produits (nombre de produits compris dans le magasin - entier)
• Un ensemble de produits
Le module doit permettre aux propriétaires des magasins en premier lieu d’ajouter
un nouveau produit au magasin, tout en prenant en considération qu’un magasin
peut contenir au maximum 20 produits.
Institut Supérieur d’informatique
Équipe pédagogique
Mr Ben Rkaya Moez & Mme Boulifa Nadia
Mme. Salwa Mbarek Mme. Rania Mzid
Programmation JAVA
Filière : 2CS
P a g e | 3
NB : ajouter une méthode qui sert à chercher un produit dans un magasin, Cette
méthode renvoie la position du produit (ou -1 si le produit n’existe pas)
De plus on vous demande de Créer une méthode qui permet de supprimer un
produit du magasin et une méthode pour la suppression de tous les produits.
Vous êtes aussi demandés d’afficher les caractéristiques du magasin, et le nom et
le prix de l’ensemble de ses produits.
Afin de protéger les différentes caractéristiques des objets crées votre supérieur
vous demande de restreindre l’accès aux attributs de la classe Produit en prenant
en considération que le prix de ce dernier ne doit pas être négatif. Ensuite il vous
suggère d’organiser le code en des différents packages.
Finalement le programme doit permettre à son propriétaire de savoir le nombre
total de tous les produits de tous les magasins.
package com.java.classes;
public class Magasin {
private int identifiant;
private String nom;
private String adresse;
private int capacite;
private Produit[] produits; //un tableau de produits
private int nbElem;
private static int compteur;//pour savoir combien j'ai de produits dans
tous les magasins
//Créer un magasin
public Magasin(int identifiant, String nom, String adresse){
this.identifiant =identifiant;
this.nom = nom;
this.adresse = adresse;
this.capacite = 20;
this.nbElem = 0;
produits = new Produit[capacite];
}
/* Recherche d'un produit dont l'identifiant est e et Retourner sa position
sinon -1 */
public int recherche(int e){
boolean trouve =false;
int indice = -1;
int i=0;
while(i<nbElem && trouve==false){
if(produits[i].getIdentifiant() == e)
{
trouve=true;
indice =i;
}
else
i++;
}
return indice;
Institut Supérieur d’informatique
Équipe pédagogique
Mr Ben Rkaya Moez & Mme Boulifa Nadia
Mme. Salwa Mbarek Mme. Rania Mzid
Programmation JAVA
Filière : 2CS
P a g e | 4
}
// Ajouter un nouveau produit dans le magazin
public void ajouterProduit(Produit p)
{
if(nbElem<capacite)
{
if(recherche(p.getIdentifiant())== -1)
{
produits[nbElem++] = p;
compteur++;
}
else
System.out.println("Le produit existe déjà dans le
magazin");
}
else
System.out.println("capacité insuffisante");
}
// Supprimer un produit
public void supprimerProduit(Produit p)
{
int i;
int pos = recherche(p.getIdentifiant());
if(pos== -1)
System.out.println("erreur");
else
{
i=pos;
while(i<nbElem)
{
produits[i] = produits[i+1];
i++;
}
nbElem--;
compteur--;
}
}
// Supprimer tous les produits
public void supprimerTous(){
for(Produit pr: produits){
if(pr!=null)
{
pr = null;
nbElem--;
compteur--;
}
}
}
/* Afficher les caractéristiques du magasin, ainsi que ses produits
Afficher le nombre de produit et la capacité initiale */
public void afficherTous(){
System.out.print(nom +" "+ adresse+": ");
System.out.println(nbElem + " articles /" + capacite + "(places)");
for(int i=0;i<nbElem;i++)
{
System.out.println("t"+ produits[i]);
}
Institut Supérieur d’informatique
Équipe pédagogique
Mr Ben Rkaya Moez & Mme Boulifa Nadia
Mme. Salwa Mbarek Mme. Rania Mzid
Programmation JAVA
Filière : 2CS
P a g e | 5
System.out.println("-------------------------------------------");
}
public int getIdentifiant() {
return identifiant;
}
public static int getCompteur() {
return compteur;
}
}
Classe Test
package com.java.test;
import com.java.classes.*;
public class TestProgramme {
public static void main(String[] args) {
Produit p1= new Produit(3250, "Tomate","Sicam",200,500);
p1.setIsremise(true);
Produit p2= new Produit(3251, "Yaourt","Vitalait",0.500,100);
Produit p3= new Produit(3252, "Yaourt","Délice",0.500,200);
Produit p4= new Produit(3253, "Pc portable","dell",1700,30);
p4.setIsremise(true);
Produit p5= new Produit(3254, "Souris sans
fil","Mac",3.200,100);
// déclaration de deux magasins
Magasin mg1= new Magasin(112,"Magazin général","Ben arouss");
Magasin mg2= new Magasin(113,"Mytec","charguia");
// Ajouter 3 produits à mg1 et 2 produits à mg2
mg1.ajouterProduit(p1);
mg1.ajouterProduit(p2);
mg1.ajouterProduit(p3);
//mg1.supprimerProduit(p2);
mg1.ajouterProduit(p4);
mg2.ajouterProduit(p5);
// afficher les deux magasins
//mg1.supprimerTous();
//mg2.supprimerTous();
mg1.afficherTous();
mg2.afficherTous();
System.out.println(Magasin.getCompteur() + " Produits dans tous
les magasins");
}
}

Contenu connexe

Tendances

BigData_TP4 : Cassandra
BigData_TP4 : CassandraBigData_TP4 : Cassandra
BigData_TP4 : Cassandra
Lilia Sfaxi
 
POO Java Chapitre 2 Encapsulation
POO Java Chapitre 2 EncapsulationPOO Java Chapitre 2 Encapsulation
POO Java Chapitre 2 Encapsulation
Mouna Torjmen
 
Chapitre iv algorithmes de tri
Chapitre iv algorithmes de triChapitre iv algorithmes de tri
Chapitre iv algorithmes de triSana Aroussi
 
TP C++ : Correction
TP C++ : CorrectionTP C++ : Correction
Chapitre 2 -Complexité des problèmes avec correction.pdf
Chapitre 2 -Complexité des problèmes avec correction.pdfChapitre 2 -Complexité des problèmes avec correction.pdf
Chapitre 2 -Complexité des problèmes avec correction.pdf
MbarkiIsraa
 
éNoncés+corrections bac2009
éNoncés+corrections bac2009éNoncés+corrections bac2009
éNoncés+corrections bac2009Morom Bil Morom
 
Algorithme DPLL
Algorithme DPLLAlgorithme DPLL
Algorithme DPLL
Elhem Sassi
 
Extraction Hiérarchique | Cours sql oracle
Extraction Hiérarchique | Cours sql oracleExtraction Hiérarchique | Cours sql oracle
Extraction Hiérarchique | Cours sql oracle
webreaker
 
Chapitre v algorithmes gloutons
Chapitre v algorithmes gloutonsChapitre v algorithmes gloutons
Chapitre v algorithmes gloutonsSana Aroussi
 
Support matlab st
Support matlab stSupport matlab st
Support matlab st
N NASRI
 
Chapitre05 : Les tableaux
Chapitre05 : Les tableauxChapitre05 : Les tableaux
Chapitre05 : Les tableaux
L’Université Hassan 1er Settat
 
Examen 2011 exo 4
Examen 2011 exo 4Examen 2011 exo 4
Examen 2011 exo 4
cheikhany ejiwen
 
3.5 merge sort
3.5 merge sort3.5 merge sort
3.5 merge sort
Krish_ver2
 
Chapitre 3 elements de base de java
Chapitre 3  elements de base de javaChapitre 3  elements de base de java
Chapitre 3 elements de base de java
Amir Souissi
 
Service de santé des armées, le modèle 2020
Service de santé des armées, le modèle 2020Service de santé des armées, le modèle 2020
Service de santé des armées, le modèle 2020
santearmees
 
Algorithmes d'approximation
Algorithmes d'approximationAlgorithmes d'approximation
Algorithmes d'approximationmohamed_SAYARI
 
Presentation Csharp et winforms
Presentation Csharp et winformsPresentation Csharp et winforms
Presentation Csharp et winforms
Christophe Zome
 

Tendances (20)

BigData_TP4 : Cassandra
BigData_TP4 : CassandraBigData_TP4 : Cassandra
BigData_TP4 : Cassandra
 
POO Java Chapitre 2 Encapsulation
POO Java Chapitre 2 EncapsulationPOO Java Chapitre 2 Encapsulation
POO Java Chapitre 2 Encapsulation
 
Chapitre iv algorithmes de tri
Chapitre iv algorithmes de triChapitre iv algorithmes de tri
Chapitre iv algorithmes de tri
 
Animations tris
Animations trisAnimations tris
Animations tris
 
TP C++ : Correction
TP C++ : CorrectionTP C++ : Correction
TP C++ : Correction
 
Algorithmes de tri
Algorithmes de triAlgorithmes de tri
Algorithmes de tri
 
Chapitre 2 -Complexité des problèmes avec correction.pdf
Chapitre 2 -Complexité des problèmes avec correction.pdfChapitre 2 -Complexité des problèmes avec correction.pdf
Chapitre 2 -Complexité des problèmes avec correction.pdf
 
éNoncés+corrections bac2009
éNoncés+corrections bac2009éNoncés+corrections bac2009
éNoncés+corrections bac2009
 
Algorithme DPLL
Algorithme DPLLAlgorithme DPLL
Algorithme DPLL
 
Extraction Hiérarchique | Cours sql oracle
Extraction Hiérarchique | Cours sql oracleExtraction Hiérarchique | Cours sql oracle
Extraction Hiérarchique | Cours sql oracle
 
Chapitre v algorithmes gloutons
Chapitre v algorithmes gloutonsChapitre v algorithmes gloutons
Chapitre v algorithmes gloutons
 
Support matlab st
Support matlab stSupport matlab st
Support matlab st
 
Résumer arithmétique
Résumer arithmétiqueRésumer arithmétique
Résumer arithmétique
 
Chapitre05 : Les tableaux
Chapitre05 : Les tableauxChapitre05 : Les tableaux
Chapitre05 : Les tableaux
 
Examen 2011 exo 4
Examen 2011 exo 4Examen 2011 exo 4
Examen 2011 exo 4
 
3.5 merge sort
3.5 merge sort3.5 merge sort
3.5 merge sort
 
Chapitre 3 elements de base de java
Chapitre 3  elements de base de javaChapitre 3  elements de base de java
Chapitre 3 elements de base de java
 
Service de santé des armées, le modèle 2020
Service de santé des armées, le modèle 2020Service de santé des armées, le modèle 2020
Service de santé des armées, le modèle 2020
 
Algorithmes d'approximation
Algorithmes d'approximationAlgorithmes d'approximation
Algorithmes d'approximation
 
Presentation Csharp et winforms
Presentation Csharp et winformsPresentation Csharp et winforms
Presentation Csharp et winforms
 

Similaire à Tableau objetjava

Design Pattern introduction
Design Pattern introductionDesign Pattern introduction
Design Pattern introduction
neuros
 
TP Fouille de données (Data Mining) et Apprentissage Machine
TP Fouille de données (Data Mining) et Apprentissage MachineTP Fouille de données (Data Mining) et Apprentissage Machine
TP Fouille de données (Data Mining) et Apprentissage Machine
Boubaker KHMILI
 
Connexion jdbc
Connexion jdbcConnexion jdbc
Connexion jdbc
Ines Ouaz
 
Deuxième partie.pptx
Deuxième partie.pptxDeuxième partie.pptx
Deuxième partie.pptx
SafaeLhr1
 
Synchroniser ses applis simplement avec akeneo/batch
Synchroniser ses applis simplement avec akeneo/batchSynchroniser ses applis simplement avec akeneo/batch
Synchroniser ses applis simplement avec akeneo/batch
gplanchat
 
Factory method
Factory method Factory method
Factory method
Hibatallah Aouadni
 
Titanium studio et les modules
Titanium studio et les modulesTitanium studio et les modules
Titanium studio et les modulesGautier Pialat
 
POO-JAVA-partie-1.pdf
POO-JAVA-partie-1.pdfPOO-JAVA-partie-1.pdf
POO-JAVA-partie-1.pdf
YasushiTsubakik
 
Cours5-heritage.pptx
Cours5-heritage.pptxCours5-heritage.pptx
Cours5-heritage.pptx
RihabBENLAMINE
 
Corrigé TP NoSQL MongoDB (5).pdf
Corrigé TP NoSQL MongoDB (5).pdfCorrigé TP NoSQL MongoDB (5).pdf
Corrigé TP NoSQL MongoDB (5).pdf
OumaimaZiat
 
programmation orienté objet c++
programmation orienté objet c++programmation orienté objet c++
programmation orienté objet c++
coursuniv
 
Salesforce Tooling API
Salesforce Tooling APISalesforce Tooling API
Salesforce Tooling API
Thierry TROUIN ☁
 
Android-Tp2: liste et adaptateurs
Android-Tp2: liste et adaptateursAndroid-Tp2: liste et adaptateurs
Android-Tp2: liste et adaptateurs
Lilia Sfaxi
 
Comment écrire du code testable ?
Comment écrire du code testable ?Comment écrire du code testable ?
Comment écrire du code testable ?
Fou Cha
 
Chapitre4 cours de java
Chapitre4 cours de javaChapitre4 cours de java
Chapitre4 cours de java
info1994
 
Cours design pattern m youssfi partie 4 composite
Cours design pattern m youssfi partie 4 compositeCours design pattern m youssfi partie 4 composite
Cours design pattern m youssfi partie 4 composite
ENSET, Université Hassan II Casablanca
 
Utilisation de ZK avec Java - Retour d’expérience
Utilisation de ZK avec Java - Retour d’expérienceUtilisation de ZK avec Java - Retour d’expérience
Utilisation de ZK avec Java - Retour d’expérience
louschwartz
 
Les Activités.pdf
Les Activités.pdfLes Activités.pdf
Les Activités.pdf
RihabBENLAMINE
 
Formation tests decembre2010
Formation tests decembre2010Formation tests decembre2010
Formation tests decembre2010Fou Cha
 

Similaire à Tableau objetjava (20)

Design Pattern introduction
Design Pattern introductionDesign Pattern introduction
Design Pattern introduction
 
TP Fouille de données (Data Mining) et Apprentissage Machine
TP Fouille de données (Data Mining) et Apprentissage MachineTP Fouille de données (Data Mining) et Apprentissage Machine
TP Fouille de données (Data Mining) et Apprentissage Machine
 
Connexion jdbc
Connexion jdbcConnexion jdbc
Connexion jdbc
 
Deuxième partie.pptx
Deuxième partie.pptxDeuxième partie.pptx
Deuxième partie.pptx
 
Synchroniser ses applis simplement avec akeneo/batch
Synchroniser ses applis simplement avec akeneo/batchSynchroniser ses applis simplement avec akeneo/batch
Synchroniser ses applis simplement avec akeneo/batch
 
Factory method
Factory method Factory method
Factory method
 
Titanium studio et les modules
Titanium studio et les modulesTitanium studio et les modules
Titanium studio et les modules
 
POO-JAVA-partie-1.pdf
POO-JAVA-partie-1.pdfPOO-JAVA-partie-1.pdf
POO-JAVA-partie-1.pdf
 
Cours5-heritage.pptx
Cours5-heritage.pptxCours5-heritage.pptx
Cours5-heritage.pptx
 
Corrigé TP NoSQL MongoDB (5).pdf
Corrigé TP NoSQL MongoDB (5).pdfCorrigé TP NoSQL MongoDB (5).pdf
Corrigé TP NoSQL MongoDB (5).pdf
 
programmation orienté objet c++
programmation orienté objet c++programmation orienté objet c++
programmation orienté objet c++
 
Salesforce Tooling API
Salesforce Tooling APISalesforce Tooling API
Salesforce Tooling API
 
Android-Tp2: liste et adaptateurs
Android-Tp2: liste et adaptateursAndroid-Tp2: liste et adaptateurs
Android-Tp2: liste et adaptateurs
 
Comment écrire du code testable ?
Comment écrire du code testable ?Comment écrire du code testable ?
Comment écrire du code testable ?
 
Chapitre4 cours de java
Chapitre4 cours de javaChapitre4 cours de java
Chapitre4 cours de java
 
Cours design pattern m youssfi partie 4 composite
Cours design pattern m youssfi partie 4 compositeCours design pattern m youssfi partie 4 composite
Cours design pattern m youssfi partie 4 composite
 
Utilisation de ZK avec Java - Retour d’expérience
Utilisation de ZK avec Java - Retour d’expérienceUtilisation de ZK avec Java - Retour d’expérience
Utilisation de ZK avec Java - Retour d’expérience
 
Theme 7
Theme 7Theme 7
Theme 7
 
Les Activités.pdf
Les Activités.pdfLes Activités.pdf
Les Activités.pdf
 
Formation tests decembre2010
Formation tests decembre2010Formation tests decembre2010
Formation tests decembre2010
 

Plus de Moez Moezm

chapitre5-Classesabstraitesetinterfaces.pdf
chapitre5-Classesabstraitesetinterfaces.pdfchapitre5-Classesabstraitesetinterfaces.pdf
chapitre5-Classesabstraitesetinterfaces.pdf
Moez Moezm
 
chapitre4-HeritageetPolymorphisme.pdf
chapitre4-HeritageetPolymorphisme.pdfchapitre4-HeritageetPolymorphisme.pdf
chapitre4-HeritageetPolymorphisme.pdf
Moez Moezm
 
Chapitre5.pdf
Chapitre5.pdfChapitre5.pdf
Chapitre5.pdf
Moez Moezm
 
Chapitre2.pdf
Chapitre2.pdfChapitre2.pdf
Chapitre2.pdf
Moez Moezm
 
Chapitre1.pdf
Chapitre1.pdfChapitre1.pdf
Chapitre1.pdf
Moez Moezm
 
QuelquesCommandesMySQL.pdf
QuelquesCommandesMySQL.pdfQuelquesCommandesMySQL.pdf
QuelquesCommandesMySQL.pdf
Moez Moezm
 
Chapitre_Les fichiers_VF.pptx
Chapitre_Les fichiers_VF.pptxChapitre_Les fichiers_VF.pptx
Chapitre_Les fichiers_VF.pptx
Moez Moezm
 
TD3 collection.pdf
TD3 collection.pdfTD3 collection.pdf
TD3 collection.pdf
Moez Moezm
 
Mpdf 9
Mpdf 9Mpdf 9
Mpdf 9
Moez Moezm
 
Mpdf 8
Mpdf 8Mpdf 8
Mpdf 8
Moez Moezm
 
Mpdf 7
Mpdf 7Mpdf 7
Mpdf 7
Moez Moezm
 
Mpdf 6
Mpdf 6Mpdf 6
Mpdf 6
Moez Moezm
 
Mpdf 10
Mpdf 10Mpdf 10
Mpdf 10
Moez Moezm
 
Mpdf 11
Mpdf 11Mpdf 11
Mpdf 11
Moez Moezm
 
Mpdf 12
Mpdf 12Mpdf 12
Mpdf 12
Moez Moezm
 
Mpdf 13
Mpdf 13Mpdf 13
Mpdf 13
Moez Moezm
 
Mpdf 5
Mpdf 5Mpdf 5
Mpdf 5
Moez Moezm
 
Mpdf 4
Mpdf 4Mpdf 4
Mpdf 4
Moez Moezm
 
Mpdf 3
Mpdf 3Mpdf 3
Mpdf 3
Moez Moezm
 

Plus de Moez Moezm (20)

chapitre5-Classesabstraitesetinterfaces.pdf
chapitre5-Classesabstraitesetinterfaces.pdfchapitre5-Classesabstraitesetinterfaces.pdf
chapitre5-Classesabstraitesetinterfaces.pdf
 
chapitre4-HeritageetPolymorphisme.pdf
chapitre4-HeritageetPolymorphisme.pdfchapitre4-HeritageetPolymorphisme.pdf
chapitre4-HeritageetPolymorphisme.pdf
 
Chapitre5.pdf
Chapitre5.pdfChapitre5.pdf
Chapitre5.pdf
 
Chapitre2.pdf
Chapitre2.pdfChapitre2.pdf
Chapitre2.pdf
 
Chapitre1.pdf
Chapitre1.pdfChapitre1.pdf
Chapitre1.pdf
 
QuelquesCommandesMySQL.pdf
QuelquesCommandesMySQL.pdfQuelquesCommandesMySQL.pdf
QuelquesCommandesMySQL.pdf
 
TD1.pdf
TD1.pdfTD1.pdf
TD1.pdf
 
Chapitre_Les fichiers_VF.pptx
Chapitre_Les fichiers_VF.pptxChapitre_Les fichiers_VF.pptx
Chapitre_Les fichiers_VF.pptx
 
TD3 collection.pdf
TD3 collection.pdfTD3 collection.pdf
TD3 collection.pdf
 
Mpdf 9
Mpdf 9Mpdf 9
Mpdf 9
 
Mpdf 8
Mpdf 8Mpdf 8
Mpdf 8
 
Mpdf 7
Mpdf 7Mpdf 7
Mpdf 7
 
Mpdf 6
Mpdf 6Mpdf 6
Mpdf 6
 
Mpdf 10
Mpdf 10Mpdf 10
Mpdf 10
 
Mpdf 11
Mpdf 11Mpdf 11
Mpdf 11
 
Mpdf 12
Mpdf 12Mpdf 12
Mpdf 12
 
Mpdf 13
Mpdf 13Mpdf 13
Mpdf 13
 
Mpdf 5
Mpdf 5Mpdf 5
Mpdf 5
 
Mpdf 4
Mpdf 4Mpdf 4
Mpdf 4
 
Mpdf 3
Mpdf 3Mpdf 3
Mpdf 3
 

Dernier

Exame DELF - A2 Francês pout tout public
Exame DELF - A2  Francês pout tout publicExame DELF - A2  Francês pout tout public
Exame DELF - A2 Francês pout tout public
GiselaAlves15
 
SYLLABUS DU COURS MARKETING DTS 1-2.pdf
SYLLABUS DU COURS  MARKETING DTS 1-2.pdfSYLLABUS DU COURS  MARKETING DTS 1-2.pdf
SYLLABUS DU COURS MARKETING DTS 1-2.pdf
Moukagni Evrard
 
Mémoire de licence en finance comptabilité et audit
Mémoire de licence en finance comptabilité et auditMémoire de licence en finance comptabilité et audit
Mémoire de licence en finance comptabilité et audit
MelDjobo
 
Iris et les hommes.pptx
Iris      et         les      hommes.pptxIris      et         les      hommes.pptx
Iris et les hommes.pptx
Txaruka
 
Bilan schéma pour réun concertation SDLP V4.pptx
Bilan schéma pour réun concertation SDLP V4.pptxBilan schéma pour réun concertation SDLP V4.pptx
Bilan schéma pour réun concertation SDLP V4.pptx
bibliogard
 
4 expositions à voir à Paris.pptx
4   expositions    à   voir   à Paris.pptx4   expositions    à   voir   à Paris.pptx
4 expositions à voir à Paris.pptx
Txaruka
 
Festival de Cannes 2024.pptx
Festival      de      Cannes     2024.pptxFestival      de      Cannes     2024.pptx
Festival de Cannes 2024.pptx
Txaruka
 
1-IMP-Tuto-Recherche simple avancée-V4-20240425-BS.pptx
1-IMP-Tuto-Recherche simple avancée-V4-20240425-BS.pptx1-IMP-Tuto-Recherche simple avancée-V4-20240425-BS.pptx
1-IMP-Tuto-Recherche simple avancée-V4-20240425-BS.pptx
schneiderbeatrice78
 
Evaluación docentes "Un cielo, dos países: El camino de los descubrimientos"
Evaluación docentes "Un cielo, dos países: El camino de los descubrimientos"Evaluación docentes "Un cielo, dos países: El camino de los descubrimientos"
Evaluación docentes "Un cielo, dos países: El camino de los descubrimientos"
IES Turina/Rodrigo/Itaca/Palomeras
 
Projet de fin d'étude licence en sciece.pptx
Projet de fin d'étude licence en sciece.pptxProjet de fin d'étude licence en sciece.pptx
Projet de fin d'étude licence en sciece.pptx
elfangourabdelouahab
 
Calendrier du 3 juin 2024 et compte rendu.pdf
Calendrier du 3 juin 2024 et compte rendu.pdfCalendrier du 3 juin 2024 et compte rendu.pdf
Calendrier du 3 juin 2024 et compte rendu.pdf
frizzole
 
Cours SE - Gestion de la mémoire- Cours IG IPSET.pdf
Cours SE - Gestion de la mémoire- Cours IG IPSET.pdfCours SE - Gestion de la mémoire- Cours IG IPSET.pdf
Cours SE - Gestion de la mémoire- Cours IG IPSET.pdf
MedBechir
 
Méthodologie de recherche et de rédaction de mémoire.pptx
Méthodologie de recherche et de rédaction de mémoire.pptxMéthodologie de recherche et de rédaction de mémoire.pptx
Méthodologie de recherche et de rédaction de mémoire.pptx
LamoussaPaulOuattara1
 
Newsletter SPW Agriculture en province du Luxembourg du 03-06-24
Newsletter SPW Agriculture en province du Luxembourg du 03-06-24Newsletter SPW Agriculture en province du Luxembourg du 03-06-24
Newsletter SPW Agriculture en province du Luxembourg du 03-06-24
BenotGeorges3
 
M2i Webinar - « Participation Financière Obligatoire » et CPF : une opportuni...
M2i Webinar - « Participation Financière Obligatoire » et CPF : une opportuni...M2i Webinar - « Participation Financière Obligatoire » et CPF : une opportuni...
M2i Webinar - « Participation Financière Obligatoire » et CPF : une opportuni...
M2i Formation
 
Contrôle fiscale en république de guinée
Contrôle fiscale en république de guinéeContrôle fiscale en république de guinée
Contrôle fiscale en république de guinée
bangalykaba146
 

Dernier (16)

Exame DELF - A2 Francês pout tout public
Exame DELF - A2  Francês pout tout publicExame DELF - A2  Francês pout tout public
Exame DELF - A2 Francês pout tout public
 
SYLLABUS DU COURS MARKETING DTS 1-2.pdf
SYLLABUS DU COURS  MARKETING DTS 1-2.pdfSYLLABUS DU COURS  MARKETING DTS 1-2.pdf
SYLLABUS DU COURS MARKETING DTS 1-2.pdf
 
Mémoire de licence en finance comptabilité et audit
Mémoire de licence en finance comptabilité et auditMémoire de licence en finance comptabilité et audit
Mémoire de licence en finance comptabilité et audit
 
Iris et les hommes.pptx
Iris      et         les      hommes.pptxIris      et         les      hommes.pptx
Iris et les hommes.pptx
 
Bilan schéma pour réun concertation SDLP V4.pptx
Bilan schéma pour réun concertation SDLP V4.pptxBilan schéma pour réun concertation SDLP V4.pptx
Bilan schéma pour réun concertation SDLP V4.pptx
 
4 expositions à voir à Paris.pptx
4   expositions    à   voir   à Paris.pptx4   expositions    à   voir   à Paris.pptx
4 expositions à voir à Paris.pptx
 
Festival de Cannes 2024.pptx
Festival      de      Cannes     2024.pptxFestival      de      Cannes     2024.pptx
Festival de Cannes 2024.pptx
 
1-IMP-Tuto-Recherche simple avancée-V4-20240425-BS.pptx
1-IMP-Tuto-Recherche simple avancée-V4-20240425-BS.pptx1-IMP-Tuto-Recherche simple avancée-V4-20240425-BS.pptx
1-IMP-Tuto-Recherche simple avancée-V4-20240425-BS.pptx
 
Evaluación docentes "Un cielo, dos países: El camino de los descubrimientos"
Evaluación docentes "Un cielo, dos países: El camino de los descubrimientos"Evaluación docentes "Un cielo, dos países: El camino de los descubrimientos"
Evaluación docentes "Un cielo, dos países: El camino de los descubrimientos"
 
Projet de fin d'étude licence en sciece.pptx
Projet de fin d'étude licence en sciece.pptxProjet de fin d'étude licence en sciece.pptx
Projet de fin d'étude licence en sciece.pptx
 
Calendrier du 3 juin 2024 et compte rendu.pdf
Calendrier du 3 juin 2024 et compte rendu.pdfCalendrier du 3 juin 2024 et compte rendu.pdf
Calendrier du 3 juin 2024 et compte rendu.pdf
 
Cours SE - Gestion de la mémoire- Cours IG IPSET.pdf
Cours SE - Gestion de la mémoire- Cours IG IPSET.pdfCours SE - Gestion de la mémoire- Cours IG IPSET.pdf
Cours SE - Gestion de la mémoire- Cours IG IPSET.pdf
 
Méthodologie de recherche et de rédaction de mémoire.pptx
Méthodologie de recherche et de rédaction de mémoire.pptxMéthodologie de recherche et de rédaction de mémoire.pptx
Méthodologie de recherche et de rédaction de mémoire.pptx
 
Newsletter SPW Agriculture en province du Luxembourg du 03-06-24
Newsletter SPW Agriculture en province du Luxembourg du 03-06-24Newsletter SPW Agriculture en province du Luxembourg du 03-06-24
Newsletter SPW Agriculture en province du Luxembourg du 03-06-24
 
M2i Webinar - « Participation Financière Obligatoire » et CPF : une opportuni...
M2i Webinar - « Participation Financière Obligatoire » et CPF : une opportuni...M2i Webinar - « Participation Financière Obligatoire » et CPF : une opportuni...
M2i Webinar - « Participation Financière Obligatoire » et CPF : une opportuni...
 
Contrôle fiscale en république de guinée
Contrôle fiscale en république de guinéeContrôle fiscale en république de guinée
Contrôle fiscale en république de guinée
 

Tableau objetjava

  • 1. Institut Supérieur d’informatique Équipe pédagogique Mr Ben Rkaya Moez & Mme Boulifa Nadia Mme. Salwa Mbarek Mme. Rania Mzid Programmation JAVA Filière : 2CS P a g e | 1 Corrigé exercice Manipulation d’un Tableau d’objets Une boite de développement désire développer une application de gestion de ressources de magasin de produits différents. Avant d’entamer la réalisation de ce programme, la société a commencé par une étude du marché qui a permis de dégager les différentes caractéristiques d’un produit et qui sont : • Un identifiant (entier) • Un libellé (chaine de caractère) • Une marque (chaine de caractère) • Un prix unitaire (un nombre réel) • La quantité (entier) • Une remise de 10% (s’il y a une offre de remise- booléen) Nb : chaque produit n’a pas de remise par défaut. Le programme doit permettre à l’utilisateur de : 1. Créer un produit vide (sans attributs) 2. Créer des nouveaux produits tout en spécifiant les caractéristiques (avec attributs) 3. Ajouter (redéfinir) la méthode toString () dans la classe Produit qui renvoie une chaîne de caractères décrivant le produit. Corrigé package com.java.classes; public class Produit { private int identifiant; private String libelle; private String marque; private double prixU; private boolean isremise; private int qtte; //Créer un produit vide (sans attributs) public Produit(){ identifiant=0; libelle=""; marque=""; prixU=0; isremise=false; qtte=0; } //Créer un produit (avec des attributs)
  • 2. Institut Supérieur d’informatique Équipe pédagogique Mr Ben Rkaya Moez & Mme Boulifa Nadia Mme. Salwa Mbarek Mme. Rania Mzid Programmation JAVA Filière : 2CS P a g e | 2 public Produit(int identifiant,String libelle,String marque,double prixU, int qtte){ this.identifiant=identifiant; this.libelle=libelle; this.marque=marque; this.prixU=prixU; this.qtte = qtte; this.isremise = false; } // Calculer le prix total de chaque remise private double calcuerPrix(){ double totalprix; if(this.isremise) totalprix = (prixU * qtte) - (prixU * qtte)*0.1; else totalprix = prixU * qtte; return totalprix; } //Afficher les produits public String toString(){ return identifiant +" "+ libelle +" "+ marque +" "+ calcuerPrix(); } //les accesseurs et les setteurs public int getIdentifiant() { return identifiant; } public void setIsremise(boolean isremise) { this.isremise = isremise; } public void setPrixU (double prixU) { this.prixU = prixU; } } //fin de la classe Produit Dans le cadre de l’amélioration du programme sur lequel vous êtes affectés dans l’entreprise et dans un souci constant d’adaptation aux besoins du client, vous êtes demandés de créer un autre module afin de gérer les besoins des propriétaires des magasins. Les différentes caractéristiques d’un magasin : • Un identifiant (entier) • Un nom (chaine de caractère) • Une adresse (chaine de caractère) • Capacité du magasin (taille maximale du magasin- entier) • Nombre de produits (nombre de produits compris dans le magasin - entier) • Un ensemble de produits Le module doit permettre aux propriétaires des magasins en premier lieu d’ajouter un nouveau produit au magasin, tout en prenant en considération qu’un magasin peut contenir au maximum 20 produits.
  • 3. Institut Supérieur d’informatique Équipe pédagogique Mr Ben Rkaya Moez & Mme Boulifa Nadia Mme. Salwa Mbarek Mme. Rania Mzid Programmation JAVA Filière : 2CS P a g e | 3 NB : ajouter une méthode qui sert à chercher un produit dans un magasin, Cette méthode renvoie la position du produit (ou -1 si le produit n’existe pas) De plus on vous demande de Créer une méthode qui permet de supprimer un produit du magasin et une méthode pour la suppression de tous les produits. Vous êtes aussi demandés d’afficher les caractéristiques du magasin, et le nom et le prix de l’ensemble de ses produits. Afin de protéger les différentes caractéristiques des objets crées votre supérieur vous demande de restreindre l’accès aux attributs de la classe Produit en prenant en considération que le prix de ce dernier ne doit pas être négatif. Ensuite il vous suggère d’organiser le code en des différents packages. Finalement le programme doit permettre à son propriétaire de savoir le nombre total de tous les produits de tous les magasins. package com.java.classes; public class Magasin { private int identifiant; private String nom; private String adresse; private int capacite; private Produit[] produits; //un tableau de produits private int nbElem; private static int compteur;//pour savoir combien j'ai de produits dans tous les magasins //Créer un magasin public Magasin(int identifiant, String nom, String adresse){ this.identifiant =identifiant; this.nom = nom; this.adresse = adresse; this.capacite = 20; this.nbElem = 0; produits = new Produit[capacite]; } /* Recherche d'un produit dont l'identifiant est e et Retourner sa position sinon -1 */ public int recherche(int e){ boolean trouve =false; int indice = -1; int i=0; while(i<nbElem && trouve==false){ if(produits[i].getIdentifiant() == e) { trouve=true; indice =i; } else i++; } return indice;
  • 4. Institut Supérieur d’informatique Équipe pédagogique Mr Ben Rkaya Moez & Mme Boulifa Nadia Mme. Salwa Mbarek Mme. Rania Mzid Programmation JAVA Filière : 2CS P a g e | 4 } // Ajouter un nouveau produit dans le magazin public void ajouterProduit(Produit p) { if(nbElem<capacite) { if(recherche(p.getIdentifiant())== -1) { produits[nbElem++] = p; compteur++; } else System.out.println("Le produit existe déjà dans le magazin"); } else System.out.println("capacité insuffisante"); } // Supprimer un produit public void supprimerProduit(Produit p) { int i; int pos = recherche(p.getIdentifiant()); if(pos== -1) System.out.println("erreur"); else { i=pos; while(i<nbElem) { produits[i] = produits[i+1]; i++; } nbElem--; compteur--; } } // Supprimer tous les produits public void supprimerTous(){ for(Produit pr: produits){ if(pr!=null) { pr = null; nbElem--; compteur--; } } } /* Afficher les caractéristiques du magasin, ainsi que ses produits Afficher le nombre de produit et la capacité initiale */ public void afficherTous(){ System.out.print(nom +" "+ adresse+": "); System.out.println(nbElem + " articles /" + capacite + "(places)"); for(int i=0;i<nbElem;i++) { System.out.println("t"+ produits[i]); }
  • 5. Institut Supérieur d’informatique Équipe pédagogique Mr Ben Rkaya Moez & Mme Boulifa Nadia Mme. Salwa Mbarek Mme. Rania Mzid Programmation JAVA Filière : 2CS P a g e | 5 System.out.println("-------------------------------------------"); } public int getIdentifiant() { return identifiant; } public static int getCompteur() { return compteur; } } Classe Test package com.java.test; import com.java.classes.*; public class TestProgramme { public static void main(String[] args) { Produit p1= new Produit(3250, "Tomate","Sicam",200,500); p1.setIsremise(true); Produit p2= new Produit(3251, "Yaourt","Vitalait",0.500,100); Produit p3= new Produit(3252, "Yaourt","Délice",0.500,200); Produit p4= new Produit(3253, "Pc portable","dell",1700,30); p4.setIsremise(true); Produit p5= new Produit(3254, "Souris sans fil","Mac",3.200,100); // déclaration de deux magasins Magasin mg1= new Magasin(112,"Magazin général","Ben arouss"); Magasin mg2= new Magasin(113,"Mytec","charguia"); // Ajouter 3 produits à mg1 et 2 produits à mg2 mg1.ajouterProduit(p1); mg1.ajouterProduit(p2); mg1.ajouterProduit(p3); //mg1.supprimerProduit(p2); mg1.ajouterProduit(p4); mg2.ajouterProduit(p5); // afficher les deux magasins //mg1.supprimerTous(); //mg2.supprimerTous(); mg1.afficherTous(); mg2.afficherTous(); System.out.println(Magasin.getCompteur() + " Produits dans tous les magasins"); } }