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

Python avancé : Gestion d'erreurs et mécanisme d'exception
Python avancé : Gestion d'erreurs et mécanisme d'exceptionPython avancé : Gestion d'erreurs et mécanisme d'exception
Python avancé : Gestion d'erreurs et mécanisme d'exceptionECAM Brussels Engineering School
 
Intégration Web HTML 5 & CSS 3
Intégration Web HTML 5 & CSS 3Intégration Web HTML 5 & CSS 3
Intégration Web HTML 5 & CSS 3Stephane PERES
 
Chapitre 4 heritage et polymorphisme
Chapitre 4 heritage et polymorphismeChapitre 4 heritage et polymorphisme
Chapitre 4 heritage et polymorphismeAmir Souissi
 
Examen de-passage-developpement-informatiques-tsdi-2015-synthese-variante-2-o...
Examen de-passage-developpement-informatiques-tsdi-2015-synthese-variante-2-o...Examen de-passage-developpement-informatiques-tsdi-2015-synthese-variante-2-o...
Examen de-passage-developpement-informatiques-tsdi-2015-synthese-variante-2-o...abdelghani04
 
Functional Programming in JavaScript by Luis Atencio
Functional Programming in JavaScript by Luis AtencioFunctional Programming in JavaScript by Luis Atencio
Functional Programming in JavaScript by Luis AtencioLuis Atencio
 
POO Java Chapitre 1 Classe & Objet
POO Java Chapitre 1 Classe & ObjetPOO Java Chapitre 1 Classe & Objet
POO Java Chapitre 1 Classe & ObjetMouna Torjmen
 
Programmation orientée objet en PHP 5
Programmation orientée objet en PHP 5Programmation orientée objet en PHP 5
Programmation orientée objet en PHP 5Kristen Le Liboux
 
Développement informatique : Algorithmique II : Techniques de recherche en in...
Développement informatique : Algorithmique II : Techniques de recherche en in...Développement informatique : Algorithmique II : Techniques de recherche en in...
Développement informatique : Algorithmique II : Techniques de recherche en in...ECAM Brussels Engineering School
 
POO Java Chapitre 3 Collections
POO Java Chapitre 3 CollectionsPOO Java Chapitre 3 Collections
POO Java Chapitre 3 CollectionsMouna Torjmen
 
Partie 11: Héritage — Programmation orientée objet en C++
Partie 11: Héritage — Programmation orientée objet en C++Partie 11: Héritage — Programmation orientée objet en C++
Partie 11: Héritage — Programmation orientée objet en C++Fabio Hernandez
 
Base de-donn-es-bac-si-95ae18
Base de-donn-es-bac-si-95ae18Base de-donn-es-bac-si-95ae18
Base de-donn-es-bac-si-95ae18Wael Ismail
 
Java methods or Subroutines or Functions
Java methods or Subroutines or FunctionsJava methods or Subroutines or Functions
Java methods or Subroutines or FunctionsKuppusamy P
 
Pewarisan (inheritance) pada JAVA
Pewarisan (inheritance) pada JAVAPewarisan (inheritance) pada JAVA
Pewarisan (inheritance) pada JAVAdyko ananta
 

Tendances (20)

Clean code
Clean codeClean code
Clean code
 
Python avancé : Gestion d'erreurs et mécanisme d'exception
Python avancé : Gestion d'erreurs et mécanisme d'exceptionPython avancé : Gestion d'erreurs et mécanisme d'exception
Python avancé : Gestion d'erreurs et mécanisme d'exception
 
Intégration Web HTML 5 & CSS 3
Intégration Web HTML 5 & CSS 3Intégration Web HTML 5 & CSS 3
Intégration Web HTML 5 & CSS 3
 
Chapitre 4 heritage et polymorphisme
Chapitre 4 heritage et polymorphismeChapitre 4 heritage et polymorphisme
Chapitre 4 heritage et polymorphisme
 
JAVA
JAVAJAVA
JAVA
 
Type abstrait de données
Type abstrait de donnéesType abstrait de données
Type abstrait de données
 
Examen de-passage-developpement-informatiques-tsdi-2015-synthese-variante-2-o...
Examen de-passage-developpement-informatiques-tsdi-2015-synthese-variante-2-o...Examen de-passage-developpement-informatiques-tsdi-2015-synthese-variante-2-o...
Examen de-passage-developpement-informatiques-tsdi-2015-synthese-variante-2-o...
 
Functional Programming in JavaScript by Luis Atencio
Functional Programming in JavaScript by Luis AtencioFunctional Programming in JavaScript by Luis Atencio
Functional Programming in JavaScript by Luis Atencio
 
POO Java Chapitre 1 Classe & Objet
POO Java Chapitre 1 Classe & ObjetPOO Java Chapitre 1 Classe & Objet
POO Java Chapitre 1 Classe & Objet
 
Programmation orientée objet en PHP 5
Programmation orientée objet en PHP 5Programmation orientée objet en PHP 5
Programmation orientée objet en PHP 5
 
Développement informatique : Algorithmique II : Techniques de recherche en in...
Développement informatique : Algorithmique II : Techniques de recherche en in...Développement informatique : Algorithmique II : Techniques de recherche en in...
Développement informatique : Algorithmique II : Techniques de recherche en in...
 
POO Java Chapitre 3 Collections
POO Java Chapitre 3 CollectionsPOO Java Chapitre 3 Collections
POO Java Chapitre 3 Collections
 
Partie 11: Héritage — Programmation orientée objet en C++
Partie 11: Héritage — Programmation orientée objet en C++Partie 11: Héritage — Programmation orientée objet en C++
Partie 11: Héritage — Programmation orientée objet en C++
 
Base de-donn-es-bac-si-95ae18
Base de-donn-es-bac-si-95ae18Base de-donn-es-bac-si-95ae18
Base de-donn-es-bac-si-95ae18
 
Broadleaf Presents Thymeleaf
Broadleaf Presents ThymeleafBroadleaf Presents Thymeleaf
Broadleaf Presents Thymeleaf
 
Ch 01 poo
Ch 01 pooCh 01 poo
Ch 01 poo
 
Chapitre 1 rappel
Chapitre 1 rappelChapitre 1 rappel
Chapitre 1 rappel
 
Java methods or Subroutines or Functions
Java methods or Subroutines or FunctionsJava methods or Subroutines or Functions
Java methods or Subroutines or Functions
 
Pewarisan (inheritance) pada JAVA
Pewarisan (inheritance) pada JAVAPewarisan (inheritance) pada JAVA
Pewarisan (inheritance) pada JAVA
 
Presentation sql
Presentation sqlPresentation sql
Presentation sql
 

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
 
Android-Tp2: liste et adaptateurs
Android-Tp2: liste et adaptateursAndroid-Tp2: liste et adaptateurs
Android-Tp2: liste et adaptateursLilia 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 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
 

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

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

PIE-A2-P4-support stagiaires sept 22-validé.pdf
PIE-A2-P4-support stagiaires sept 22-validé.pdfPIE-A2-P4-support stagiaires sept 22-validé.pdf
PIE-A2-P4-support stagiaires sept 22-validé.pdfRiDaHAziz
 
Faut-il avoir peur de la technique ? (G. Gay-Para)
Faut-il avoir peur de la technique ? (G. Gay-Para)Faut-il avoir peur de la technique ? (G. Gay-Para)
Faut-il avoir peur de la technique ? (G. Gay-Para)Gabriel Gay-Para
 
Apprendre avec des top et nano influenceurs
Apprendre avec des top et nano influenceursApprendre avec des top et nano influenceurs
Apprendre avec des top et nano influenceursStagiaireLearningmat
 
Pas de vagues. pptx Film français
Pas de vagues.  pptx   Film     françaisPas de vagues.  pptx   Film     français
Pas de vagues. pptx Film françaisTxaruka
 
La Base unique départementale - Quel bilan, au bout de 5 ans .pdf
La Base unique départementale - Quel bilan, au bout de 5 ans .pdfLa Base unique départementale - Quel bilan, au bout de 5 ans .pdf
La Base unique départementale - Quel bilan, au bout de 5 ans .pdfbdp12
 
Aux origines de la sociologie : du XIXème au début XX ème siècle
Aux origines de la sociologie : du XIXème au début XX ème siècleAux origines de la sociologie : du XIXème au début XX ème siècle
Aux origines de la sociologie : du XIXème au début XX ème siècleAmar LAKEL, PhD
 
Vulnérabilité numérique d’usage : un enjeu pour l’aide à la réussitepdf
Vulnérabilité numérique d’usage : un enjeu pour l’aide à la réussitepdfVulnérabilité numérique d’usage : un enjeu pour l’aide à la réussitepdf
Vulnérabilité numérique d’usage : un enjeu pour l’aide à la réussitepdfSylvianeBachy
 
Chana Orloff.pptx Sculptrice franco-ukranienne
Chana Orloff.pptx Sculptrice franco-ukranienneChana Orloff.pptx Sculptrice franco-ukranienne
Chana Orloff.pptx Sculptrice franco-ukranienneTxaruka
 
Calendrier de la semaine du 8 au 12 avril
Calendrier de la semaine du 8 au 12 avrilCalendrier de la semaine du 8 au 12 avril
Calendrier de la semaine du 8 au 12 avrilfrizzole
 
Pas de vagues. pptx Film français
Pas de vagues.  pptx      Film   françaisPas de vagues.  pptx      Film   français
Pas de vagues. pptx Film françaisTxaruka
 
PIE-A2-P 5- Supports stagiaires.pptx.pdf
PIE-A2-P 5- Supports stagiaires.pptx.pdfPIE-A2-P 5- Supports stagiaires.pptx.pdf
PIE-A2-P 5- Supports stagiaires.pptx.pdfRiDaHAziz
 
Bibdoc 2024 - Les intelligences artificielles en bibliotheque.pdf
Bibdoc 2024 - Les intelligences artificielles en bibliotheque.pdfBibdoc 2024 - Les intelligences artificielles en bibliotheque.pdf
Bibdoc 2024 - Les intelligences artificielles en bibliotheque.pdfBibdoc 37
 
Bibdoc 2024 - L’Éducation aux Médias et à l’Information face à l’intelligence...
Bibdoc 2024 - L’Éducation aux Médias et à l’Information face à l’intelligence...Bibdoc 2024 - L’Éducation aux Médias et à l’Information face à l’intelligence...
Bibdoc 2024 - L’Éducation aux Médias et à l’Information face à l’intelligence...Bibdoc 37
 
Newsletter SPW Agriculture en province du Luxembourg du 10-04-24
Newsletter SPW Agriculture en province du Luxembourg du 10-04-24Newsletter SPW Agriculture en province du Luxembourg du 10-04-24
Newsletter SPW Agriculture en province du Luxembourg du 10-04-24BenotGeorges3
 
DIGNITAS INFINITA - DIGNITÉ HUMAINE; déclaration du dicastère .pptx
DIGNITAS INFINITA - DIGNITÉ HUMAINE; déclaration du dicastère .pptxDIGNITAS INFINITA - DIGNITÉ HUMAINE; déclaration du dicastère .pptx
DIGNITAS INFINITA - DIGNITÉ HUMAINE; déclaration du dicastère .pptxMartin M Flynn
 
Présentation - Initiatives - CECOSDA - OIF - Fact Checking.pptx
Présentation - Initiatives - CECOSDA - OIF - Fact Checking.pptxPrésentation - Initiatives - CECOSDA - OIF - Fact Checking.pptx
Présentation - Initiatives - CECOSDA - OIF - Fact Checking.pptxJCAC
 
Bibdoc 2024 - Sobriete numerique en bibliotheque et centre de documentation.pdf
Bibdoc 2024 - Sobriete numerique en bibliotheque et centre de documentation.pdfBibdoc 2024 - Sobriete numerique en bibliotheque et centre de documentation.pdf
Bibdoc 2024 - Sobriete numerique en bibliotheque et centre de documentation.pdfBibdoc 37
 

Dernier (18)

PIE-A2-P4-support stagiaires sept 22-validé.pdf
PIE-A2-P4-support stagiaires sept 22-validé.pdfPIE-A2-P4-support stagiaires sept 22-validé.pdf
PIE-A2-P4-support stagiaires sept 22-validé.pdf
 
Faut-il avoir peur de la technique ? (G. Gay-Para)
Faut-il avoir peur de la technique ? (G. Gay-Para)Faut-il avoir peur de la technique ? (G. Gay-Para)
Faut-il avoir peur de la technique ? (G. Gay-Para)
 
Apprendre avec des top et nano influenceurs
Apprendre avec des top et nano influenceursApprendre avec des top et nano influenceurs
Apprendre avec des top et nano influenceurs
 
Pas de vagues. pptx Film français
Pas de vagues.  pptx   Film     françaisPas de vagues.  pptx   Film     français
Pas de vagues. pptx Film français
 
La Base unique départementale - Quel bilan, au bout de 5 ans .pdf
La Base unique départementale - Quel bilan, au bout de 5 ans .pdfLa Base unique départementale - Quel bilan, au bout de 5 ans .pdf
La Base unique départementale - Quel bilan, au bout de 5 ans .pdf
 
Aux origines de la sociologie : du XIXème au début XX ème siècle
Aux origines de la sociologie : du XIXème au début XX ème siècleAux origines de la sociologie : du XIXème au début XX ème siècle
Aux origines de la sociologie : du XIXème au début XX ème siècle
 
Vulnérabilité numérique d’usage : un enjeu pour l’aide à la réussitepdf
Vulnérabilité numérique d’usage : un enjeu pour l’aide à la réussitepdfVulnérabilité numérique d’usage : un enjeu pour l’aide à la réussitepdf
Vulnérabilité numérique d’usage : un enjeu pour l’aide à la réussitepdf
 
Chana Orloff.pptx Sculptrice franco-ukranienne
Chana Orloff.pptx Sculptrice franco-ukranienneChana Orloff.pptx Sculptrice franco-ukranienne
Chana Orloff.pptx Sculptrice franco-ukranienne
 
Calendrier de la semaine du 8 au 12 avril
Calendrier de la semaine du 8 au 12 avrilCalendrier de la semaine du 8 au 12 avril
Calendrier de la semaine du 8 au 12 avril
 
Pas de vagues. pptx Film français
Pas de vagues.  pptx      Film   françaisPas de vagues.  pptx      Film   français
Pas de vagues. pptx Film français
 
PIE-A2-P 5- Supports stagiaires.pptx.pdf
PIE-A2-P 5- Supports stagiaires.pptx.pdfPIE-A2-P 5- Supports stagiaires.pptx.pdf
PIE-A2-P 5- Supports stagiaires.pptx.pdf
 
Bibdoc 2024 - Les intelligences artificielles en bibliotheque.pdf
Bibdoc 2024 - Les intelligences artificielles en bibliotheque.pdfBibdoc 2024 - Les intelligences artificielles en bibliotheque.pdf
Bibdoc 2024 - Les intelligences artificielles en bibliotheque.pdf
 
Bibdoc 2024 - L’Éducation aux Médias et à l’Information face à l’intelligence...
Bibdoc 2024 - L’Éducation aux Médias et à l’Information face à l’intelligence...Bibdoc 2024 - L’Éducation aux Médias et à l’Information face à l’intelligence...
Bibdoc 2024 - L’Éducation aux Médias et à l’Information face à l’intelligence...
 
Newsletter SPW Agriculture en province du Luxembourg du 10-04-24
Newsletter SPW Agriculture en province du Luxembourg du 10-04-24Newsletter SPW Agriculture en province du Luxembourg du 10-04-24
Newsletter SPW Agriculture en province du Luxembourg du 10-04-24
 
DIGNITAS INFINITA - DIGNITÉ HUMAINE; déclaration du dicastère .pptx
DIGNITAS INFINITA - DIGNITÉ HUMAINE; déclaration du dicastère .pptxDIGNITAS INFINITA - DIGNITÉ HUMAINE; déclaration du dicastère .pptx
DIGNITAS INFINITA - DIGNITÉ HUMAINE; déclaration du dicastère .pptx
 
Présentation - Initiatives - CECOSDA - OIF - Fact Checking.pptx
Présentation - Initiatives - CECOSDA - OIF - Fact Checking.pptxPrésentation - Initiatives - CECOSDA - OIF - Fact Checking.pptx
Présentation - Initiatives - CECOSDA - OIF - Fact Checking.pptx
 
Bibdoc 2024 - Sobriete numerique en bibliotheque et centre de documentation.pdf
Bibdoc 2024 - Sobriete numerique en bibliotheque et centre de documentation.pdfBibdoc 2024 - Sobriete numerique en bibliotheque et centre de documentation.pdf
Bibdoc 2024 - Sobriete numerique en bibliotheque et centre de documentation.pdf
 
Bulletin des bibliotheques Burkina Faso mars 2024
Bulletin des bibliotheques Burkina Faso mars 2024Bulletin des bibliotheques Burkina Faso mars 2024
Bulletin des bibliotheques Burkina Faso mars 2024
 

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