IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Collection et Stream Java Discussion :

[Debutant]Tableau d'objet : trouver les valeur supérieur a un maximum


Sujet :

Collection et Stream Java

  1. #1
    Membre à l'essai
    Homme Profil pro
    Gestionnaire de parc micro-informatique
    Inscrit en
    Juin 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Gestionnaire de parc micro-informatique

    Informations forums :
    Inscription : Juin 2015
    Messages : 4
    Par défaut [Debutant]Tableau d'objet : trouver les valeur supérieur a un maximum
    Bonjour,

    Voila j'ai créé une application qui permet de générer des contrats d'assurances en fonction des entrées utilisateur, mais je dois afficher les noms des clients qui ont payés le contrat le plus élevé et la ça se complique. voila mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    public class CONTRAT
    {	protected String name ;
    	protected double surface ;
    	public double prixbase; 
    	public static double max ;
     
    	public CONTRAT ()
    		{System.out.print("Nom de la personne a assurer : ");
    			name = Lire.S();
    		System.out.print("Surface total de l'habitation a assurer : ");
    			surface = Lire.d();
     
     
     
    		if (surface <= 100)
    			{prixbase = surface * 8 ;}
    		else {prixbase = surface * 6;}
     
    		if(max<prixbase){max=prixbase;}
    		}
     
    	public double max() {return max;}
    	public double base() {return prixbase;}
     
     
    	public void afficher()
    		{	System.out.format("Le cout du contrat pour le client "+name+" est de : %.2f euros  \n ",prixbase);	
    			System.out.println(" ");}
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    public class CONTRAT_BIS extends CONTRAT
    {protected double valbien , supl;
     
    	public CONTRAT_BIS()
    	{System.out.print("Quel est la valeur des biens a assurer : ");
    	valbien = Lire.d();
     
     
    		supl = ( valbien * 0.02);
     
    		prixbase = prixbase + supl ;
     
    		if(max<prixbase){max=prixbase;}
    	 }
     
    	 public void afficher()
     
    		{System.out.format("Le cout du contrat pour le client "+name+" est de : %.2f euros  \n ",prixbase);
    		System.out.println(" ");}
    et l'application

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    import java.util.*;
    public class CLIENT
    {public static void main (String [] arg )
    	{int nb;
    	 CONTRAT x;
    	 CONTRAT_BIS y;
    	 char choix;
    	double b=0;
     
     
    		System.out.print ("Quel est le nombre de client a enregistrer : ");
    		nb = Lire.i();
     
    		CONTRAT [] tab = new CONTRAT [nb];
     
     
    		for(int i=0;i<nb;i++)
    		{System.out.print("Contrat numero "+(i+1)+" avec assurance O ou N : ");
    			choix = Lire.c();
     
    			if(choix == 'N') { x = new CONTRAT();
    							tab[i] = x;
    							}
     
    			if(choix == 'O') { y = new CONTRAT_BIS();
    							tab[i] = y;
    							}
    						}
    		System.out.println("**************");
     
    		for(int i=0;i<nb;i++) tab[i].afficher();
     
    		for(int i=0;i<nb;i++){ b=tab[i].max();}
    			System.out.println("Le contrat maximum a pour valeur :"+b);	
     
    		for(int i=0;i<nb;i++)	
    		{if(tab[i].max < x){System.out.print(" contrat "+tab[i]);}}
     
     
    	} 
    }
    je tourne en rond depuis 3 jours, quelqu'un pourrait il m'aider ?

    Cordialement

  2. #2
    Membre chevronné

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2014
    Messages
    262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Août 2014
    Messages : 262
    Par défaut
    Salut gathrog,

    Sincèrement mieux vaut lire tes explications que lire ton code !
    Je te conseil de relire les tutos du site pour mieux réorganiser ta conception de Java.
    Voici deux tutos sur ce site qui pourrait te guider :
    Débuter ici et là.

    J'apprends à pêcher du poisson comme toi !

  3. #3
    Membre chevronné

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2014
    Messages
    262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Août 2014
    Messages : 262
    Par défaut
    Je veux néanmoins t'aider à pouvoir exécuter ton programme.
    -Ligne 38 : Tu compares tab[i].max qui est un double à x qui est un objet
    Voîlà, je te propose de simplement remplacer dans la classe CLIENT les lignes [33-38] par ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
                   System.out.println("Le contrat maximum a pour valeur :" + CONTRAT.max);
                    for(int i = 0; i < tab.length; i++){
                        if(CONTRAT.max == tab[i].prixbase){
                            System.out.println("-Contrat " +  ( i + 1) + " par " + tab[i].name );
                        }
                    }
    Si toute fois ta classe Lire a été bien écrite alors tu devras obténir ce à quoi tu t'attends.
    Mais je te conseil fortement de te replonger dans la lecture parce que tu n'a pas vraiment compris
    la notion de Programmation Orientée Objet.

  4. #4
    Membre à l'essai
    Homme Profil pro
    Gestionnaire de parc micro-informatique
    Inscrit en
    Juin 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Gestionnaire de parc micro-informatique

    Informations forums :
    Inscription : Juin 2015
    Messages : 4
    Par défaut
    Merci lankoande , j'obtiens bien ce que je veux.

    J'ai débuté la programmation en debut d'année, et il est vrai que j'ai encore des difficultés sur la vision objet.

    Je te remercie pour ton aide et pour tes conseils, et je vais de ce pas me replonger dans les lectures des apprentissages de JAVA.

    Cordialement.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [E-03] trouver les valeurs inférieur et supérieur d'un nombre
    Par kristoch91 dans le forum Macros et VBA Excel
    Réponses: 38
    Dernier message: 30/10/2008, 15h28
  2. Réponses: 7
    Dernier message: 11/04/2008, 14h37
  3. Trouver les valeurs uniques d'un vecteur
    Par Ptinéwik dans le forum MATLAB
    Réponses: 3
    Dernier message: 21/01/2008, 16h14
  4. Comment trouver les valeurs manquante d'une série ?
    Par NicoNGRI dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 17/10/2006, 09h38
  5. [debutant] tableau d'objets
    Par harsh dans le forum Débuter
    Réponses: 6
    Dernier message: 22/05/2006, 17h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo