SlideShare une entreprise Scribd logo
1  sur  5
Télécharger pour lire hors ligne
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

Chp4 - Diagramme de Séquence
Chp4 - Diagramme de SéquenceChp4 - Diagramme de Séquence
Chp4 - Diagramme de SéquenceLilia Sfaxi
 
Geti 2101 activity_diagrams
Geti 2101 activity_diagramsGeti 2101 activity_diagrams
Geti 2101 activity_diagramsChebil Hanen
 
Android-Tp2: liste et adaptateurs
Android-Tp2: liste et adaptateursAndroid-Tp2: liste et adaptateurs
Android-Tp2: liste et adaptateursLilia Sfaxi
 
Base de donnees Avancees et Intro à NoSQL.ppt
Base de donnees Avancees et Intro à  NoSQL.pptBase de donnees Avancees et Intro à  NoSQL.ppt
Base de donnees Avancees et Intro à NoSQL.pptIdriss22
 
TD3-UML-Séquences
TD3-UML-SéquencesTD3-UML-Séquences
TD3-UML-SéquencesLilia Sfaxi
 
Applications Android - cours 3 : Android Studio (Outil de développement)
Applications Android - cours 3 : Android Studio (Outil de développement)Applications Android - cours 3 : Android Studio (Outil de développement)
Applications Android - cours 3 : Android Studio (Outil de développement)Ahmed-Chawki Chaouche
 
TP2-UML-Correction
TP2-UML-CorrectionTP2-UML-Correction
TP2-UML-CorrectionLilia Sfaxi
 
Tp1 - Initiation à Java-Eclipse
Tp1 - Initiation à Java-EclipseTp1 - Initiation à Java-Eclipse
Tp1 - Initiation à Java-EclipseLilia Sfaxi
 
TP1-UML-Correction
TP1-UML-CorrectionTP1-UML-Correction
TP1-UML-CorrectionLilia Sfaxi
 
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 javaAmir Souissi
 
UML Part1-Introduction Mansouri
UML Part1-Introduction MansouriUML Part1-Introduction Mansouri
UML Part1-Introduction MansouriMansouri Khalifa
 
Travaux Dirigés : Algorithmique et Structure de Données
Travaux Dirigés : Algorithmique et Structure de DonnéesTravaux Dirigés : Algorithmique et Structure de Données
Travaux Dirigés : Algorithmique et Structure de DonnéesAnass41
 
Introduction a la compilation Analyse Syntaxique - C3
Introduction a la compilation  Analyse Syntaxique - C3Introduction a la compilation  Analyse Syntaxique - C3
Introduction a la compilation Analyse Syntaxique - C3Beligh HAMDI
 
diagramme des cas d'utilisation
diagramme des cas d'utilisationdiagramme des cas d'utilisation
diagramme des cas d'utilisationAmir Souissi
 

Tendances (20)

Tp3 - UML
Tp3 - UMLTp3 - UML
Tp3 - UML
 
Chp4 - Diagramme de Séquence
Chp4 - Diagramme de SéquenceChp4 - Diagramme de Séquence
Chp4 - Diagramme de Séquence
 
Geti 2101 activity_diagrams
Geti 2101 activity_diagramsGeti 2101 activity_diagrams
Geti 2101 activity_diagrams
 
Uml
UmlUml
Uml
 
Android-Tp2: liste et adaptateurs
Android-Tp2: liste et adaptateursAndroid-Tp2: liste et adaptateurs
Android-Tp2: liste et adaptateurs
 
Base de donnees Avancees et Intro à NoSQL.ppt
Base de donnees Avancees et Intro à  NoSQL.pptBase de donnees Avancees et Intro à  NoSQL.ppt
Base de donnees Avancees et Intro à NoSQL.ppt
 
TD4-UML
TD4-UMLTD4-UML
TD4-UML
 
TD3-UML-Séquences
TD3-UML-SéquencesTD3-UML-Séquences
TD3-UML-Séquences
 
Compte rendu
Compte renduCompte rendu
Compte rendu
 
Applications Android - cours 3 : Android Studio (Outil de développement)
Applications Android - cours 3 : Android Studio (Outil de développement)Applications Android - cours 3 : Android Studio (Outil de développement)
Applications Android - cours 3 : Android Studio (Outil de développement)
 
TP2-UML-Correction
TP2-UML-CorrectionTP2-UML-Correction
TP2-UML-Correction
 
Tp1 - Initiation à Java-Eclipse
Tp1 - Initiation à Java-EclipseTp1 - Initiation à Java-Eclipse
Tp1 - Initiation à Java-Eclipse
 
UML
UMLUML
UML
 
TP1-UML-Correction
TP1-UML-CorrectionTP1-UML-Correction
TP1-UML-Correction
 
Uml upxp2
Uml upxp2Uml upxp2
Uml upxp2
 
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
 
UML Part1-Introduction Mansouri
UML Part1-Introduction MansouriUML Part1-Introduction Mansouri
UML Part1-Introduction Mansouri
 
Travaux Dirigés : Algorithmique et Structure de Données
Travaux Dirigés : Algorithmique et Structure de DonnéesTravaux Dirigés : Algorithmique et Structure de Données
Travaux Dirigés : Algorithmique et Structure de Données
 
Introduction a la compilation Analyse Syntaxique - C3
Introduction a la compilation  Analyse Syntaxique - C3Introduction a la compilation  Analyse Syntaxique - C3
Introduction a la compilation Analyse Syntaxique - C3
 
diagramme des cas d'utilisation
diagramme des cas d'utilisationdiagramme des cas d'utilisation
diagramme des cas d'utilisation
 

Similaire à Tableau objetjava

Design Pattern introduction
Design Pattern introductionDesign Pattern introduction
Design Pattern introductionneuros
 
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 MachineBoubaker KHMILI
 
Connexion jdbc
Connexion jdbcConnexion jdbc
Connexion jdbcInes Ouaz
 
Deuxième partie.pptx
Deuxième partie.pptxDeuxième partie.pptx
Deuxième partie.pptxSafaeLhr1
 
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/batchgplanchat
 
Titanium studio et les modules
Titanium studio et les modulesTitanium studio et les modules
Titanium studio et les modulesGautier Pialat
 
Corrigé TP NoSQL MongoDB (5).pdf
Corrigé TP NoSQL MongoDB (5).pdfCorrigé TP NoSQL MongoDB (5).pdf
Corrigé TP NoSQL MongoDB (5).pdfOumaimaZiat
 
programmation orienté objet c++
programmation orienté objet c++programmation orienté objet c++
programmation orienté objet c++coursuniv
 
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 javainfo1994
 
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ériencelouschwartz
 
Formation tests decembre2010
Formation tests decembre2010Formation tests decembre2010
Formation tests decembre2010Fou Cha
 
HumanTalk - Commentaires, je t'aime un peu, beaucoup, à la folie, pas du tout
HumanTalk - Commentaires, je t'aime un peu, beaucoup, à la folie, pas du toutHumanTalk - Commentaires, je t'aime un peu, beaucoup, à la folie, pas du tout
HumanTalk - Commentaires, je t'aime un peu, beaucoup, à la folie, pas du toutflorentpellet
 

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
 
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
 
HumanTalk - Commentaires, je t'aime un peu, beaucoup, à la folie, pas du tout
HumanTalk - Commentaires, je t'aime un peu, beaucoup, à la folie, pas du toutHumanTalk - Commentaires, je t'aime un peu, beaucoup, à la folie, pas du tout
HumanTalk - Commentaires, je t'aime un peu, beaucoup, à la folie, pas du tout
 

Plus de 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

Cours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSETCours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSETMedBechir
 
Cours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSETCours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSETMedBechir
 
Présentation_ Didactique 1_SVT (S4) complet.pptx
Présentation_ Didactique 1_SVT (S4) complet.pptxPrésentation_ Didactique 1_SVT (S4) complet.pptx
Présentation_ Didactique 1_SVT (S4) complet.pptxrababouerdighi
 
systeme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expertsysteme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expertChristianMbip
 
A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.Franck Apolis
 
Saint Georges, martyr, et la lègend du dragon.pptx
Saint Georges, martyr, et la lègend du dragon.pptxSaint Georges, martyr, et la lègend du dragon.pptx
Saint Georges, martyr, et la lègend du dragon.pptxMartin M Flynn
 
7 PPT sue le project de fin d'étude.pptx
7 PPT sue le project de fin d'étude.pptx7 PPT sue le project de fin d'étude.pptx
7 PPT sue le project de fin d'étude.pptxrababouerdighi
 
Annie Ernaux Extérieurs. pptx. Exposition basée sur un livre .
Annie   Ernaux  Extérieurs. pptx. Exposition basée sur un livre .Annie   Ernaux  Extérieurs. pptx. Exposition basée sur un livre .
Annie Ernaux Extérieurs. pptx. Exposition basée sur un livre .Txaruka
 
Evaluation du systeme d'Education. Marocpptx
Evaluation du systeme d'Education. MarocpptxEvaluation du systeme d'Education. Marocpptx
Evaluation du systeme d'Education. MarocpptxAsmaa105193
 
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptxSAID MASHATE
 
Formation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadershipFormation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadershipM2i Formation
 
Guide Final de rédaction de mémoire de fin d'étude
Guide Final de rédaction de mémoire de fin d'étudeGuide Final de rédaction de mémoire de fin d'étude
Guide Final de rédaction de mémoire de fin d'étudeBenamraneMarwa
 
Fondation Louis Vuitton. pptx
Fondation      Louis      Vuitton.   pptxFondation      Louis      Vuitton.   pptx
Fondation Louis Vuitton. pptxTxaruka
 

Dernier (15)

Cours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSETCours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSET
 
Cours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSETCours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSET
 
Présentation_ Didactique 1_SVT (S4) complet.pptx
Présentation_ Didactique 1_SVT (S4) complet.pptxPrésentation_ Didactique 1_SVT (S4) complet.pptx
Présentation_ Didactique 1_SVT (S4) complet.pptx
 
systeme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expertsysteme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expert
 
A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.
 
Pâques de Sainte Marie-Euphrasie Pelletier
Pâques de Sainte Marie-Euphrasie PelletierPâques de Sainte Marie-Euphrasie Pelletier
Pâques de Sainte Marie-Euphrasie Pelletier
 
Saint Georges, martyr, et la lègend du dragon.pptx
Saint Georges, martyr, et la lègend du dragon.pptxSaint Georges, martyr, et la lègend du dragon.pptx
Saint Georges, martyr, et la lègend du dragon.pptx
 
7 PPT sue le project de fin d'étude.pptx
7 PPT sue le project de fin d'étude.pptx7 PPT sue le project de fin d'étude.pptx
7 PPT sue le project de fin d'étude.pptx
 
Evaluación Alumnos de Ecole Victor Hugo
Evaluación Alumnos de Ecole  Victor HugoEvaluación Alumnos de Ecole  Victor Hugo
Evaluación Alumnos de Ecole Victor Hugo
 
Annie Ernaux Extérieurs. pptx. Exposition basée sur un livre .
Annie   Ernaux  Extérieurs. pptx. Exposition basée sur un livre .Annie   Ernaux  Extérieurs. pptx. Exposition basée sur un livre .
Annie Ernaux Extérieurs. pptx. Exposition basée sur un livre .
 
Evaluation du systeme d'Education. Marocpptx
Evaluation du systeme d'Education. MarocpptxEvaluation du systeme d'Education. Marocpptx
Evaluation du systeme d'Education. Marocpptx
 
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
 
Formation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadershipFormation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadership
 
Guide Final de rédaction de mémoire de fin d'étude
Guide Final de rédaction de mémoire de fin d'étudeGuide Final de rédaction de mémoire de fin d'étude
Guide Final de rédaction de mémoire de fin d'étude
 
Fondation Louis Vuitton. pptx
Fondation      Louis      Vuitton.   pptxFondation      Louis      Vuitton.   pptx
Fondation Louis Vuitton. pptx
 

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"); } }