EXAMEN Programmation en JAVA - Mathieu Raynal

public String toString() : cette methode devra afficher la liste des produits ... Inserts all of the elements in the specified collection into this list, starting at the.
1MB taille 14 téléchargements 251 vues
M2 Bio-Informatique

10 novembre 2011 2 heures – documents autorisés

EXAMEN Programmation en JAVA Gestion d’un supermarché Le responsable d’un supermarché souhaite s’équiper d’un logiciel lui permettant de gérer son stock de produit et sa liste de ses clients (occasionnels et habités).

Exercice 1 Afin de réaliser ce logiciel en Java, nous avons identifié les classes suivantes que nous vous demandons de développer : 

Produit qui contient comme arguments : le nom du produit sous forme de chaine de caractères, un code barre et la quantité sous forme d’entier, le prix et la réduction (offerte aux clients munis d’une carte de fidélité) sous forme de réel. Cette classe devra contenir les constructeurs et méthodes suivantes :

public Produit(String nom,int code,int quantite,float, prix,floatreduc) public Produit(Produit p, int nb) : ce constructeur sert à construire un Produit avec les mêmes caractéristiques qu’un produit p, mais en modifiant la quantité qui sera de nb. public void ajouteQuantite(int nb) public void retireQuantite(int nb) : cette méthode devra lever une exception si la quantité à retirer est supérieure à la quantité présente. public String toString()



SimpleClient qui a comme attribut une ArrayList qui contient l’ensemble des produits qu’il achète en magasin. Cette classe devra contenir les Constructeurs et méthodes suivantes :

public SimpleClient() public void ajouteProduit(Produit p) public float prixChariot() public String toString() : cette methode devra afficher la liste des produits presents dans le chariot et afficher le prix à payer



ClientHabitue qui hérite de la classe SimpleClient et qui a comme attributs supplémentaires le nom et le prénom du client ainsi qu’une carte de reduction.

public ClientHabitue(String nom, String prenom, int num) public float prixChariot() : en plus de calculer le prix du chariot comme pour SimpleClient, cette méthode devra rajouter sur la carte de fidélité le total des réductions obtenues avec ces courses.

Exercie 2 Compléter la classe SuperMarche décrite ci-dessous import java.io.*; import java.util.*;

M2 Bio-Informatique

10 novembre 2011 2 heures – documents autorisés

public class SuperMarche implements Serializable { Hashtable stock; // la clé est le codeBarre du produit ArrayList listeHabitue; int prochainNumeroCarte; public SuperMarche() {

A COMPLETER } public void ajouteProduit() {

A COMPLETER } public Produit enleverProduitStock(int codeBarre, int quantite) {

A COMPLETER } public void ajouteHabitue() {

A COMPLETER } public void afficheStock() {

A COMPLETER } public void remplirPanierClient() {

A COMPLETER /* Méthode qui sert à remplir le chariot du client. La quantité de chaque produit ajouté au chariot doit être enlevée du stock. Vous devez prendre en compte si le client est un SimpleClient ou un ClientHabitué. Si c’est un SimpleClient, donnez-lui la possibilité de devenir un ClientHabitué. Vous devez afficher le prix du chariot du client à la fin. */ } }

Exercice 3 L’interface graphique ci-dessous permet de rentrer un nouveau produit.

M2 Bio-Informatique

10 novembre 2011 2 heures – documents autorisés

Avec l’aide du squelette de programme suivant, écrire la classe InterfaceAjoutProduit permettant d’obtenir l’interface proposée. import java.awt.*; import javax.swing.*; public class InterfaceAjoutProduit extends JFrame { public InterfaceAjoutProduit() { super(______________________________); setDefaultCloseOperation(DISPOSE_ON_CLOSE); Container content = _________________________________; Content.setLayout(new BorderLayout()); JPanel panelSaisie = new JPanel(________________________________); JPanel panelBouton = new JPanel(_______________________________); // Création des composants A COMPLETER // Positionnement des composants panelSaisie.add(____________________); panelSaisie.add(____________________); panelSaisie.add(____________________); panelSaisie.add(____________________); panelSaisie.add(____________________); panelSaisie.add(____________________); panelSaisie.add(____________________); panelSaisie.add(____________________); panelSaisie.add(____________________); panelSaisie.add(____________________); panelBouton.add(___________________); content.add(_____________,BorderLayout.CENTER); content.add(_____________,BorderLayout.SOUTH); pack(); setVisible(true); } }

M2 Bio-Informatique

10 novembre 2011 2 heures – documents autorisés

ANNEXES Classe CarteFidelite public class CarteFidelite { int numero; float montantReduc; public CarteFidelite(int num) { this.numero = num; montantReduc = 0.0f; } public void ajouteReduction(float reduc) { montantReduc += reduc; } }

ArrayList ArrayList()

Constructs an empty list with an initial capacity of ten. ArrayList(Collection