0% ont trouvé ce document utile (0 vote)
84 vues6 pages

Examen de Programmation Java 2021/2022

Transféré par

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

Examen de Programmation Java 2021/2022

Transféré par

Taieb Ata
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Examen de session principale

Niveau d’étude : 2LM Année Universitaire : 2021/2022


Semestre : 1er Semestre
Matière : Programmation Java
Date : 06/01/2022
Enseignantes : Mme Jihen KHALFALLAH Durée : 1H30
Mme Ameni KHACHEB
Documents : Non autorisés
Nombre de pages : 3
La clarté de la copie rendue sera prise en considération.

QCM (5 points) :

1. Laquelle de ces classes est la plus élevée dans la hiérarchie en Java?

A. java.lang.Exception
B. java.lang.Object
C. java.lang.Throwable
D. java.lang.Error

2. Laquelle de ces classes est en relation à toutes les exceptions qui peuvent être
capturées en utilisant catch?

A. Error
B. Exception
C. RuntimeException
D. Tout les réponses sont vrais

3. Lequel des énoncés suivants est un argument valable pour le constructeur


BufferedInputStream ?

A. File
B. FileReader
C. FileInputStream
D. RandomAccessFile

4. La sérialisation est un procédé qui permet :

A. De faire passer l'état d'un objet dans un flux


B. De convertir un objet en un autre objet

Page 1 / 6
C. De convertir un objet en un document XML

5. Un champ transient est :

A. Un champ dont la valeur ne peut être changée


B. Un champ ignoré lors d'une opération de sérialisation
C. Un champ employé dans un contexte de gestion des exceptions

Problème (15 points) :

Interface VendableKilo
package Pb;

public interface VendableKilo {


// cette méthode retourne le revenu de la vente
public abstract double vendre(double qte);
}

Interface VendablePiece

package Pb;

public interface VendablePiece {


// cette méthode retourne le revenu de la vente
public abstract double vendre(int qte);
}

Interface Solde

package Pb;

Page 2 / 6
public interface Solde {

public abstract void StartSolde(double Pourcentage);


public abstract void EndSolde(double Pourcentage);
}

Classe Article

package Pb;

public class Article


{
protected double prixAchat;
protected double prixVente;
private String Nom;
private String Fournisseur;

public Article(double pA, double pV, String n, String f) {


prixAchat = pA;
prixVente = pV;
Nom = n;
Fournisseur = f;
}

public double rendement() {


return (prixVente - prixAchat) / prixAchat;
}

public void info() {


System.out.println("Nom du produit:" + Nom);
System.out.println("Fournisseur: " + Fournisseur);
System.out.println("Prix d'achat: " + prixAchat);
System.out.println("Prix de vente: " + prixVente);
}
}

Classe ArticleElectromenager

package Pb;

public class ArticleElectromenager extends Article implements VendablePiece,


Solde
{
public int stock;

// constructeur
public ArticleElectromenager(double pA, double pV, String n, String f)
{
super(pA,pV,n,f);
stock = 0;
}

// nouvelles méthodes
public double RemplirStock(int qte) {
stock = stock + qte;
return prixAchat * qte;
}

Page 3 / 6
// méthode surécrite
public void info() {
super.info();
System.out.println("Le stock du produit est " + stock + "pièces.");
}

// implementation de l'interface vendablePiece


public double vendre(int qte) {
if (qte<stock) {
stock = stock - qte;
return qte * prixVente;
}
else {
System.out.println("Stock insuffisant.");
return 0;
}
}

// implementation de l'interface solde


public void StartSolde(double Pourcentage) {
prixVente = prixVente * Pourcentage/100;
}
public void EndSolde(double Pourcentage) {
prixVente = prixVente * Pourcentage/100;
}
}

Classe ArticlePrimeur

package Pb;

public class ArticlePrimeur extends Article implements VendableKilo


{
public double stock;

// constructeur
public ArticlePrimeur(double pA, double pV, String n, String f) {
super(pA,pV,n,f);
stock = 0.0;
}

// nouvelles méthodes
public double RemplirStock(double qte) {
stock = stock + qte;
return prixAchat * qte;
}

// méthode surécrite
public void info() {
super.info();
System.out.println("Le stock du produit est " + stock +
"kilogrammes.");
}

// implementation de l'interface vendableKilo


public double vendre(double qte) {
if (qte<stock) {
stock = stock - qte;

Page 4 / 6
return qte * prixVente;
}
else {
System.out.println("Stock insuffisant.");
return 0;
}
}
}

Classe Supermarché

package Pb;
import java.util.Vector;

public class Supermarché {

public double Revenu;


public double Depense;
public Vector<ArticleElectromenager> Ae;
public Vector<ArticlePrimeur> Ap;

// constructeur
public Supermarché() {
Ae = new Vector<>();
Ap = new Vector<>();
Revenu = 0;
Depense = 0;
}

// méthodes
public double rendement() {
return (Revenu - Depense) / Depense;
}

public void info() {


System.out.println("Les depenses du magasin: " + Depense);
System.out.println("Les revenus du magasin: " + Revenu);
System.out.println("Le rendement" + rendement());

for (int i=0; i<2; i++) Ae.elementAt(i).info();


for (int i=0; i<2; i++) Ap.elementAt(i).info();
}
}

Classe Main

package Pb;

public class Main {

public static void main (String[] args) {


Supermarché CBA1 = new Supermarché();

// les produits a vendre


CBA1.Ae.addElement(new ArticleElectromenager(27000, 35000, "télé",
"Samsung"));
CBA1.Ae.addElement(new ArticleElectromenager(5000, 15000, "radio",
"Sony"));

Page 5 / 6
CBA1.Ap.addElement(new ArticlePrimeur(100, 200, "tomate", "Elore
MgTsz"));
CBA1.Ap.addElement(new ArticlePrimeur(50, 500, "tomate", "Avanti
Sarl, Esapgne"));

// remplir les stocks


for (int i=0; i<2; i++)
CBA1.Depense += CBA1.Ae.elementAt(i).RemplirStock(50);
for (int i=0; i<2; i++)
CBA1.Depense += CBA1.Ap.elementAt(i).RemplirStock(100);

// avoir les info


CBA1.info();

}
}

Page 6 / 6

Vous aimerez peut-être aussi