honrisse | galon97 a écrit :
bonjour! je fais un tp voici l'ennocer
Créer une classe Vendeur. Les champs de données de Vendeur incluent un identificateur (id) entier et un double représentant le montant annuel des ventes (montantVentes). Les méthodes de la classe Vendeur incluent un constructeur qui prend deux arguments qui correspondent aux champs de données, ainsi que les méthodes d’accès et de modification des deux champs de données.
Créer une application DemoVendeur qui permet à l’utilisateur de saisir les valeurs pour construire une collection de cinq (5) objets de type Vendeur puis donne le contrôle à l’utilisateur pour choisir parmi les actions suivantes :
(1) Pour afficher la liste des vendeurs ordonnées par les identificateurs;(2) Pour afficher la liste des vendeurs ordonnées par les montants annuels de
ventes;
(3) Pour afficher les informations du vendeur avec le montant annuel de ventes le
plus élevé;
(4) Pour afficher les informations du vendeur avec le montant annuel de ventes le
moins élevé;
(0) Pour quitter l’application.
voici ce que j'ai pu faire mais je suis un peux mêlé dans mon code.est ce que quelqu'un pourrait me guider merci
Code :
- public class Vendeur implements Comparable<Vendeur> {
- static enum Comparaison {
- AMOUNT(1,(v1, v2) Double.compare(v1.getMontantVentes(),
- v2.getMontantVentes())),
- ID(2,(v1, v2) Integer.compare(v1.getId(),v2.getId()));
- static Comparaison get(int i) {
- for (Comparaison comparaison : Comparaison.values())
- if (comparaison.i == i)
- return comparaison;
- return null;
- }
- Comparator<Vendeur> comparator;
- int i;
- private Comparaison(int i, Comparator<Vendeur> comparator) {
- this.i = i;
- this.comparator = comparator;
- }
- Comparator<Vendeur> getComparator() {
- return comparator;
- }
- }
- private int id;
- private double montantVentes;
- public int getId() {
- return id;
- }
- public double getMontantVentes() {
- return montantVentes;
- }
- //mutateurs
- public void setId(int newId)
- {
- id=newId;
- }
- public void setMontantVentes(int newMontantVentes)
- {
- montantVentes=newMontantVentes;
- }
- }
|
merci
|
Il manque le constructeur, montantVentes est un double mais le setteur a comme paramètre un entier, il manque une méthode d'affichage, pour comparer suivant plusieurs méthodes on peut utiliser l'interface comparator.
Exemple qui compare suivant l'id (pour comparer suivant le montant et utilise la même démarche), pour le (3) et (4), une fois que l'on a trié on peut facilement avoir accès à ces informations.
Code :
- import java.util.ArrayList;
- import java.util.Collections;
- import java.util.List;
- public class Vendeur {
- private int id;
- private double montantVentes;
- //Constructeur
- public Vendeur(int id, double montant) {
- setId(id);
- setMontantVentes(montant);
- }
- //Accesseurs
- public int getId() {
- return id;
- }
- public double getMontantVentes() {
- return montantVentes;
- }
- //Setteurs
- public void setId(int newId) {
- id = newId;
- }
- public void setMontantVentes(double newMontantVentes) {
- montantVentes = newMontantVentes;
- }
- //Affichage des informations
- @Override
- public String toString() {
- return "id=" + id + " ; montant des ventes=" + montantVentes;
- }
- public static void main(String[] args) {
- Vendeur v1 = new Vendeur(10, 50);
- Vendeur v2 = new Vendeur(4, 12.5);
- Vendeur v3 = new Vendeur(17, 115.8);
- Vendeur v4 = new Vendeur(6, 36.45);
- //Liste de vendeurs
- List<Vendeur> list = new ArrayList<Vendeur>();
- list.add(v1);
- list.add(v2);
- list.add(v3);
- list.add(v4);
- //Affichage de la liste
- System.out.println("liste :" );
- for(Vendeur v : list) {
- System.out.println(v);
- }
- Collections.sort(list, new IdComparator());
- System.out.println("\nliste triee par id :" );
- for(Vendeur v : list) {
- System.out.println(v);
- }
- }
- }
|
Code :
- import java.util.Comparator;
- public class IdComparator implements Comparator<Vendeur> {
- @Override
- public int compare(Vendeur v1, Vendeur v2) {
- return Integer.compare(v1.getId(), v2.getId());
- }
- }
|
|