pb en bluej

pb en bluej - Java - Programmation

Marsh Posté le 07-05-2008 à 17:16:14    

Bonjour,  
je débute en programmation et j'ai un projet à faire en langage objet (bluej). Il s'agit d'un tableau qui contient des animaux avec leurs caractéristiques et on veut différentes informations.  J'arrive à afficher le tableau dans son entier mais je n' arrive pas à afficher une seule case. Voici mon code
 // Affiche les informations sur un animal
 System.out.println("Voulez vous des renseignements sur un animal? veuillez répondre true (oui) ou false (non)" );
 a = Clavier.lireBoolean();
 
 
 if(a==true){
    System.out.println("veuillez entrer le nom de l'animal" );
    nom=Clavier.lireString();
     
    compteur=0;
    boolean terminer = true;
    while((compteur<100)||(!terminer)){
        resultat = tabzoo.tabanimal[compteur].getnomanimal();
        if (resultat.compareTo(nom)==0){
            tabzoo.tabanimal[compteur].affiche();
            terminer = false;
        }
        compteur=compteur+1;
    }
 
 if(compteur==100){
     System.out.println("Désolé mais cet animal n'est pas répertorié dans notre zoo." );
    }
}
 
En fait, quand je lance le programme, ça marche si je rentre mouton il m'affiche les caractéristiques et il plante il rouvre le programme principal et me met en jaune resultat = tabzoo.tabanimal[compteur].getnomanimal(); avec le code null pointer...
merci d'avance

Reply

Marsh Posté le 07-05-2008 à 17:16:14   

Reply

Marsh Posté le 07-05-2008 à 17:32:09    

est ce que tu initalise bien tes tableaux et tes classes?
 
et puis ta boucle pour moi il y a une erreur
c'est
 while((compteur<100)&&(terminer)){ /*tant que tu as pas tout liste et que tu l'a pas trouvé)
 
et est tu sur d'avoir forcement 100 animaux dans ta table

Message cité 1 fois
Message édité par infoman64 le 07-05-2008 à 17:33:01
Reply

Marsh Posté le 07-05-2008 à 18:25:49    

infoman64 a écrit :

Code :
  1. while((compteur<100)&&(terminer)){ //tant que tu as pas tout liste et que tu l'a pas trouvé)



Ca montre que la variable "terminer" est mal utilisée: elle devrait être initialisée à false et passée à true quand l'élément a été trouvé.

 

D'ailleurs lnd88,

 
  • Java a une instruction break permettant de sortir facilement d'une boucle, il n'y a aucune raison de ne pas l'utiliser. Donc au lieu de modifier un flag booléen, appeler break qui fait directement sortir du while
  • Un tableau Java, ça a une longueur, et ça connaît cette longueur (contrairement aux arrays C). En rapport avec la question d'infoman64, il serait de bon ton d'utiliser cette longueur plutôt qu'une taille fixée probablement fausse
  • Un for est bien plus adapté qu'un while pour itérer de cette manière sur un array
  • Si c'est toi qui a créé la classe Animal (quel que soit son nom), tu devrais probablement mieux respecter les Java Naming Conventions, elles ne sont pas très compliquées et ça simplifiera ta vie comme celle des gens relisant ton code
  • Utilise la balise [ code=java] (fermée avec [ /code]) (sans les espaces) pour poster du code, afin d'avoir une séparation claire entre le texte et le code, et la coloration syntaxique du code


Message édité par masklinn le 07-05-2008 à 18:26:02

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 07-05-2008 à 19:11:20    

merci pour ces infos,
maintenant il m'affiche les caractèristiques mais il ne m'affiche plus le system.out.println "desolé.. et me dit a nouveau null pointer exception que je demande un animal qui n'est pas dans le tableau

Reply

Marsh Posté le 07-05-2008 à 20:15:34    

Masklinn , a raison , utilise pour parcourir ton tableau les instructions  
nextelements, hasmore(je pense pas que ce soit celle la pour le tableau mais c le meme style)
 
et remontre nous ton code avec les corrections.

Reply

Marsh Posté le 07-05-2008 à 21:03:16    

ok merci

Reply

Marsh Posté le 07-05-2008 à 21:30:18    

voilà les premieres modif que j'ai fait et en fait c'est le second if qui fonctionne plus mais il me met l'erreur au niveau de resultat = tabzoo.tabanimal[compteur].getnomanimal();
 
 // Affiche les informations sur un animal
 System.out.println("Voulez vous des renseignements sur un animal? veuillez répondre true (oui) ou false (non)" );
 a = Clavier.lireBoolean();
 
 
 if(a==true){
    System.out.println("veuillez entrer le nom de l'animal" );
    nom=Clavier.lireString();
     
    compteur=0;
   
    while((compteur<100)){
        resultat = tabzoo.tabanimal[compteur].getnomanimal();
        if (resultat.compareTo(nom)==0){
            tabzoo.tabanimal[compteur].affiche();
            break;
        }
       
        else{
            compteur=compteur+1;
        }      
     
}
 if(compteur==100){
     System.out.println("Désolé mais cet animal n'est pas répertorié dans notre zoo." );
    }
}

Reply

Marsh Posté le 07-05-2008 à 22:23:59    

peut tu montrer le code pour initialiser tout, stp , et le codes des classes
car pour moi je pense que tu parcours trop ton tableau ou que tu initialise mal  
et mon nous ton erreur,
 
mais tous ton code on trouvera plus facilement l'erreur

Reply

Marsh Posté le 07-05-2008 à 22:36:53    

public class Programmeprincipal
{public static void main(){
 
 
 ensembleanimaux tabzoo;
 String nom;
 int compteur;
 String nomani;
 String descriptionani;
 String nomssgrpe;
 String desssgrpe;
 String nomgrpe;
 String desgrpe;
 String nomclas;
 String desclas;
 String nomemb;
 String desemb;
 boolean rep;
 boolean a;
 boolean b;
 String resultat;
 
 // Création du tableau
 tabzoo = new ensembleanimaux();
 
 // Base de données
 tabzoo.ajouteranimal("chimpanzé", "intelligent", "simien", "marche debout", "primate", "adapté à la vie dans les arbres, mange de tout", "mammifère", "corps couvert de poils, température constante, vivipare, allaitement, respiration aérienne", "vertébré", "animal ayant un squelette interne" );
 tabzoo.ajouteranimal("gorille", "grand, vigoureux", "simien", "marche debout", "primate", "adapté à la vie dans les arbres, mange de tout", "mammifère", "corps couvert de poils, température constante, vivipare, allaitement, respiration aérienne", "vertébré", "animal ayant un squelette interne" );
 tabzoo.ajouteranimal("gibbon", "gracieux", "simien", "marche debout", "primate", "adapté à la vie dans les arbres, mange de tout", "mammifère", "corps couvert de poils, température constante, vivipare, allaitement, respiration aérienne", "vertébré", "animal ayant un squelette interne" );
 tabzoo.ajouteranimal("maki", "élégant", "lemurien", "vie nocturne, griffes", "primate", "adapté à la vie dans les arbres, mange de tout", "mammifère", "corps couvert de poils, température constante, vivipare, allaitement, respiration aérienne", "vertébré", "animal ayant un squelette interne" );
 tabzoo.ajouteranimal("lion", "crinière, fauve", "félidé", "vie nocturne", "carnivore", "mange de la viande, griffes", "mammifère", "corps couvert de poils, température constante, vivipare, allaitement, respiration aérienne", "vertébré", "animal ayant un squelette interne" );  
 tabzoo.ajouteranimal("panthère", "tacheté", "félidé", "vie nocturne", "carnivore", "mange de la viande, griffes", "mammifère", "corps couvert de poils, température constante, vivipare, allaitement, respiration aérienne", "vertébré", "animal ayant un squelette interne" );
 tabzoo.ajouteranimal("tigre", "tigré, blanc et roux", "félidé", "vie nocturne", "carnivore", "mange de la viande, griffes", "mammifère", "corps couvert de poils, température constante, vivipare, allaitement, respiration aérienne", "vertébré", "animal ayant un squelette interne" );
 tabzoo.ajouteranimal("chat", "domestiqué, petit", "félidé", "vie nocturne", "carnivore", "mange de la viande, griffes", "mammifère", "corps couvert de poils, température constante, vivipare, allaitement, respiration aérienne", "vertébré", "animal ayant un squelette interne" );
 tabzoo.ajouteranimal("chien", "familier", "canidé", "vie diurne", "carnivore", "mange de la viande, griffes", "mammifère", "corps couvert de poils, température constante, vivipare, allaitement, respiration aérienne", "vertébré", "animal ayant un squelette interne" );
 tabzoo.ajouteranimal("loup", "rusé, prédateur", "canidé", "vie diurne", "carnivore", "mange de la viande, griffes", "mammifère", "corps couvert de poils, température constante, vivipare, allaitement, respiration aérienne", "vertébré", "animal ayant un squelette interne" );
 tabzoo.ajouteranimal("renard", "solitaire", "canidé", "vie diurne", "carnivore", "mange de la viande, griffes", "mammifère", "corps couvert de poils, température constante, vivipare, allaitement, respiration aérienne", "vertébré", "animal ayant un squelette interne" );
 tabzoo.ajouteranimal("souris", "grise ou blanche", "pas de nom de sous groupe ", "pas de description de sous groupe ", "rongeur", "mange des végétaux, grande fécondité", "mammifère", "corps couvert de poils, température constante, vivipare, allaitement, respiration aérienne", "vertébré", "animal ayant un squelette interne" );  
 tabzoo.ajouteranimal("écureuil", "roux", "pas de nom de sous groupe ", "pas de description de sous groupe ", "rongeur", "mange des végétaux, grande fécondité", "mammifère", "corps couvert de poils, température constante, vivipare, allaitement, respiration aérienne", "vertébré", "animal ayant un squelette interne" );
 tabzoo.ajouteranimal("hamster", "abajoues", "pas de nom de sous groupe ", "pas de description de sous groupe ", "rongeur", "mange des végétaux, grande fécondité", "mammifère", "corps couvert de poils, température constante, vivipare, allaitement, respiration aérienne", "vertébré", "animal ayant un squelette interne" );
 tabzoo.ajouteranimal("mouton", "laine", "pas de nom de sous groupe ", "pas de description de sous groupe ", "ruminant", "mange de l'herbe", "mammifère", "corps couvert de poils, température constante, vivipare, allaitement, respiration aérienne", "vertébré", "animal ayant un squelette interne" );
 tabzoo.ajouteranimal("cerf", "ramures", "pas de nom de sous groupe ", "pas de description de sous groupe ", "ruminant", "mange de l'herbe", "mammifère", "corps couvert de poils, température constante, vivipare, allaitement, respiration aérienne", "vertébré", "animal ayant un squelette interne" );
 tabzoo.ajouteranimal("girafe", "long cou", "pas de nom de sous groupe ", "pas de description de sous groupe ", "ruminant", "mange de l'herbe", "mammifère", "corps couvert de poils, température constante, vivipare, allaitement, respiration aérienne", "vertébré", "animal ayant un squelette interne" );
 tabzoo.ajouteranimal("cigogne", "blanche et noir", "pas de nom de sous groupe ", "pas de description de sous groupe ", "échassier", "pattes très longues, long bec", "oiseau", "corps couvert de plumes, ovipare, respiration aérienne, température constante, adapté au vol", "vertébré", "animal ayant un squelette interne" );
 tabzoo.ajouteranimal("faucon", "prédateur", "pas de nom de sous groupe ", "pas de description de sous groupe ", "rapace", "vie diurne, mange de la viande, griffes", "oiseau", "corps couvert de plumes, ovipare, respiration aérienne, température constante, adapté au vol", "vertébré", "animal ayant un squelette interne" );
 tabzoo.ajouteranimal("épervier", "pas de description de l'animal", "pas de nom de sous groupe ", "pas de description de sous groupe ", "rapace", "vie diurne, mange de la viande, griffes", "oiseau", "corps couvert de plumes, ovipare, respiration aérienne, température constante, adapté au vol", "vertébré", "animal ayant un squelette interne" );
 tabzoo.ajouteranimal("esturgeon", "marin", "pas de nom de sous groupe ", "pas de description de sous groupe ", "pas de nom de groupe ", "pas de description de groupe ", "poisson", "corps couvert d'écailles, température variable, ovipare, respiration aquatique", "vertébré", "animal ayant un squelette interne" );
 tabzoo.ajouteranimal("requin", "marin, prédateur", "pas de nom de sous groupe ", "pas de description de sous groupe ", "pas de nom de groupe ", "pas de description de groupe " , "poisson", "corps couvert d'écailles, température variable, ovipare, respiration aquatique", "vertébré", "animal ayant un squelette interne" );
 tabzoo.ajouteranimal("carpe", "rivière", "pas de nom de sous groupe ", "pas de description de sous groupe ", "pas de nom de groupe ", "pas de description de groupe ", "poisson", "corps couvert d'écailles, température variable, ovipare, respiration aquatique", "vertébré", "animal ayant un squelette interne" );
 tabzoo.ajouteranimal("coccinelle", "rouge et noir, prédateur", "pas de nom de sous groupe", "pas de description de sous groupe", "coléoptère", "métamorphose complète", "insecte", "respiration aérienne, corps divisé en trois segments, antennes, trois paires de pattes, deux paires d'ailes", "arthropodes", "corps formé de segments" );
 tabzoo.ajouteranimal("ver luisant", "lumineux", "pas de nom de sous groupe", "pas de description de sous groupe", "coléoptère", "métamorphose complète", "insecte", "respiration aérienne, corps divisé en trois segments, antennes, trois paires de pattes, deux paires d'ailes", "arthropodes", "corps formé de segments" );
 tabzoo.ajouteranimal("abeille", "jaune et noir", "pas de nom de sous groupe", "pas de description de sous groupe", "hyménoptère", "métamorphose complète, aiguillon vénimeux", "insecte", "respiration aérienne, corps divisé en trois segments, antennes, trois paires de pattes, deux paires d'ailes", "arthropodes", "corps formé de segments" );
 tabzoo.ajouteranimal("fourmi", "batailleuse", "pas de nom de sous groupe", "pas de description de sous groupe", "hyménoptère", "métamorphose complète, aiguillon vénimeux", "insecte", "respiration aérienne, corps divisé en trois segments, antennes, trois paires de pattes, deux paires d'ailes", "arthropodes", "corps formé de segments" );
 tabzoo.ajouteranimal("homard", "marin", "pas de nom de sous groupe", "pas de description de sous groupe", "pas de nom de groupe", "pas de description de groupe", "crustacés", "vit dans l'eau, grandit par mues successives", "arthropodes", "corps formé de segments" );
 tabzoo.ajouteranimal("écrevisse", "rivière", "pas de nom de sous groupe", "pas de description de sous groupe", "pas de nom de groupe", "pas de description de groupe", "crustacés", "vit dans l'eau, grandit par mues successives", "arthropodes", "corps formé de segments" );
 
 
 //presentation
 System.out.println(" Bienvenue sur ce programme. Vous allez pouvoir afficher le tableau des animaux enregistrés, ajouter un nouvel animal ou avoir des informations sur un animal en particulier (présent dans le tableau). Veuillez appuyer sur entrer à chaque nouvelle réponse" );
 System.out.println(" " );
 
 // nb animaux
// tabzoo.tabanimal[compteur].compter();
 
 // Affiche les informations sur un animal
 System.out.println("Voulez vous des renseignements sur un animal? veuillez répondre true (oui) ou false (non)" );
 a = Clavier.lireBoolean();
 
 
 if(a==true){
    System.out.println("veuillez entrer le nom de l'animal" );
    nom=Clavier.lireString();
     
    compteur=0;
   
    while((compteur<100)){
        resultat = tabzoo.tabanimal[compteur].getnomanimal();
        if (resultat.compareTo(nom)==0){
            tabzoo.tabanimal[compteur].affiche();
            break;
        }
       
        else{
            compteur=compteur+1;
        }      
     
}
 if(compteur==100){
     System.out.println("Désolé mais cet animal n'est pas répertorié dans notre zoo." );
    }
}
 
// informations sur subdivision
//System.out.println("Voulez vous des renseignements sur une subdivision? veuillez répondre true (oui) ou false (non)" );
 //e = Clavier.lireBoolean();
 
 //if(e==true){
     //System.out.println("Laquelle? vertébré, arthropodes, primates " );
   //  f= Clavier.lireBoolean();
     
      //  if  
     
     
     
 // Entrer un nouvel animal
 System.out.println("Voulez vous entrer un nouvel animal? veuillez répondre true (oui) ou false (non)" );
 rep = Clavier.lireBoolean();
 
 if(rep==true){
     System.out.println("Veuillez entrer le nom d'un animal" );
     nomani = Clavier.lireString();
     System.out.println("Veuillez entrer la desription de l'animal" );
     descriptionani = Clavier.lireString();
     System.out.println("Veuillez entrer le nom du sous groupe auquel il appartient" );
     nomssgrpe = Clavier.lireString();
     System.out.println("Veuillez entrer la description du sous groupe" );
     desssgrpe = Clavier.lireString();
     System.out.println("Veuillez entrer le nom du groupe auquel il appartient" );
     nomgrpe = Clavier.lireString();
     System.out.println("Veuillez entrer la description du groupe auquel il appartient" );
     desgrpe = Clavier.lireString();
     System.out.println("Veuillez entrer le nom de sa classe" );
     nomclas = Clavier.lireString();
     System.out.println("Veuillez entrer la description de la classe à laquelle il appartient" );
     desclas = Clavier.lireString();
     System.out.println("Veuillez entrer le nom de l'embranchement" );
     nomemb = Clavier.lireString();
     System.out.println("Veuillez entrer la description de l'embranchement auquel il appartient" );
     desemb = Clavier.lireString();
     tabzoo.ajouteranimal(nomani, descriptionani, nomssgrpe, desssgrpe, nomgrpe, desgrpe, nomclas, desclas, nomemb, desemb);
 
    }
     
     
 
// Affiche tout le tableau
 System.out.println(" " );
 System.out.println("Voulez vous afficher tout le tableau? veuillez répondre true (oui) ou false (non)" );
 b = Clavier.lireBoolean();
 
 if(b==true){
      tabzoo.afficheanimaux();  
    }    
   
 }  
}  
   
 public class Programmeprincipal
{public static void main(){
 
 
 ensembleanimaux tabzoo;
 String nom;
 int compteur;
 String nomani;
 String descriptionani;
 String nomssgrpe;
 String desssgrpe;
 String nomgrpe;
 String desgrpe;
 String nomclas;
 String desclas;
 String nomemb;
 String desemb;
 boolean rep;
 boolean a;
 boolean b;
 String resultat;
 
 // Création du tableau
 tabzoo = new ensembleanimaux();
 
 // Base de données
 tabzoo.ajouteranimal("chimpanzé", "intelligent", "simien", "marche debout", "primate", "adapté à la vie dans les arbres, mange de tout", "mammifère", "corps couvert de poils, température constante, vivipare, allaitement, respiration aérienne", "vertébré", "animal ayant un squelette interne" );
 tabzoo.ajouteranimal("gorille", "grand, vigoureux", "simien", "marche debout", "primate", "adapté à la vie dans les arbres, mange de tout", "mammifère", "corps couvert de poils, température constante, vivipare, allaitement, respiration aérienne", "vertébré", "animal ayant un squelette interne" );
 tabzoo.ajouteranimal("gibbon", "gracieux", "simien", "marche debout", "primate", "adapté à la vie dans les arbres, mange de tout", "mammifère", "corps couvert de poils, température constante, vivipare, allaitement, respiration aérienne", "vertébré", "animal ayant un squelette interne" );
 tabzoo.ajouteranimal("maki", "élégant", "lemurien", "vie nocturne, griffes", "primate", "adapté à la vie dans les arbres, mange de tout", "mammifère", "corps couvert de poils, température constante, vivipare, allaitement, respiration aérienne", "vertébré", "animal ayant un squelette interne" );
 tabzoo.ajouteranimal("lion", "crinière, fauve", "félidé", "vie nocturne", "carnivore", "mange de la viande, griffes", "mammifère", "corps couvert de poils, température constante, vivipare, allaitement, respiration aérienne", "vertébré", "animal ayant un squelette interne" );  
 tabzoo.ajouteranimal("panthère", "tacheté", "félidé", "vie nocturne", "carnivore", "mange de la viande, griffes", "mammifère", "corps couvert de poils, température constante, vivipare, allaitement, respiration aérienne", "vertébré", "animal ayant un squelette interne" );
 tabzoo.ajouteranimal("tigre", "tigré, blanc et roux", "félidé", "vie nocturne", "carnivore", "mange de la viande, griffes", "mammifère", "corps couvert de poils, température constante, vivipare, allaitement, respiration aérienne", "vertébré", "animal ayant un squelette interne" );
 tabzoo.ajouteranimal("chat", "domestiqué, petit", "félidé", "vie nocturne", "carnivore", "mange de la viande, griffes", "mammifère", "corps couvert de poils, température constante, vivipare, allaitement, respiration aérienne", "vertébré", "animal ayant un squelette interne" );
 tabzoo.ajouteranimal("chien", "familier", "canidé", "vie diurne", "carnivore", "mange de la viande, griffes", "mammifère", "corps couvert de poils, température constante, vivipare, allaitement, respiration aérienne", "vertébré", "animal ayant un squelette interne" );
 tabzoo.ajouteranimal("loup", "rusé, prédateur", "canidé", "vie diurne", "carnivore", "mange de la viande, griffes", "mammifère", "corps couvert de poils, température constante, vivipare, allaitement, respiration aérienne", "vertébré", "animal ayant un squelette interne" );
 tabzoo.ajouteranimal("renard", "solitaire", "canidé", "vie diurne", "carnivore", "mange de la viande, griffes", "mammifère", "corps couvert de poils, température constante, vivipare, allaitement, respiration aérienne", "vertébré", "animal ayant un squelette interne" );
 tabzoo.ajouteranimal("souris", "grise ou blanche", "pas de nom de sous groupe ", "pas de description de sous groupe ", "rongeur", "mange des végétaux, grande fécondité", "mammifère", "corps couvert de poils, température constante, vivipare, allaitement, respiration aérienne", "vertébré", "animal ayant un squelette interne" );  
 tabzoo.ajouteranimal("écureuil", "roux", "pas de nom de sous groupe ", "pas de description de sous groupe ", "rongeur", "mange des végétaux, grande fécondité", "mammifère", "corps couvert de poils, température constante, vivipare, allaitement, respiration aérienne", "vertébré", "animal ayant un squelette interne" );
 tabzoo.ajouteranimal("hamster", "abajoues", "pas de nom de sous groupe ", "pas de description de sous groupe ", "rongeur", "mange des végétaux, grande fécondité", "mammifère", "corps couvert de poils, température constante, vivipare, allaitement, respiration aérienne", "vertébré", "animal ayant un squelette interne" );
 tabzoo.ajouteranimal("mouton", "laine", "pas de nom de sous groupe ", "pas de description de sous groupe ", "ruminant", "mange de l'herbe", "mammifère", "corps couvert de poils, température constante, vivipare, allaitement, respiration aérienne", "vertébré", "animal ayant un squelette interne" );
 tabzoo.ajouteranimal("cerf", "ramures", "pas de nom de sous groupe ", "pas de description de sous groupe ", "ruminant", "mange de l'herbe", "mammifère", "corps couvert de poils, température constante, vivipare, allaitement, respiration aérienne", "vertébré", "animal ayant un squelette interne" );
 tabzoo.ajouteranimal("girafe", "long cou", "pas de nom de sous groupe ", "pas de description de sous groupe ", "ruminant", "mange de l'herbe", "mammifère", "corps couvert de poils, température constante, vivipare, allaitement, respiration aérienne", "vertébré", "animal ayant un squelette interne" );
 tabzoo.ajouteranimal("cigogne", "blanche et noir", "pas de nom de sous groupe ", "pas de description de sous groupe ", "échassier", "pattes très longues, long bec", "oiseau", "corps couvert de plumes, ovipare, respiration aérienne, température constante, adapté au vol", "vertébré", "animal ayant un squelette interne" );
 tabzoo.ajouteranimal("faucon", "prédateur", "pas de nom de sous groupe ", "pas de description de sous groupe ", "rapace", "vie diurne, mange de la viande, griffes", "oiseau", "corps couvert de plumes, ovipare, respiration aérienne, température constante, adapté au vol", "vertébré", "animal ayant un squelette interne" );
 tabzoo.ajouteranimal("épervier", "pas de description de l'animal", "pas de nom de sous groupe ", "pas de description de sous groupe ", "rapace", "vie diurne, mange de la viande, griffes", "oiseau", "corps couvert de plumes, ovipare, respiration aérienne, température constante, adapté au vol", "vertébré", "animal ayant un squelette interne" );
 tabzoo.ajouteranimal("esturgeon", "marin", "pas de nom de sous groupe ", "pas de description de sous groupe ", "pas de nom de groupe ", "pas de description de groupe ", "poisson", "corps couvert d'écailles, température variable, ovipare, respiration aquatique", "vertébré", "animal ayant un squelette interne" );
 tabzoo.ajouteranimal("requin", "marin, prédateur", "pas de nom de sous groupe ", "pas de description de sous groupe ", "pas de nom de groupe ", "pas de description de groupe " , "poisson", "corps couvert d'écailles, température variable, ovipare, respiration aquatique", "vertébré", "animal ayant un squelette interne" );
 tabzoo.ajouteranimal("carpe", "rivière", "pas de nom de sous groupe ", "pas de description de sous groupe ", "pas de nom de groupe ", "pas de description de groupe ", "poisson", "corps couvert d'écailles, température variable, ovipare, respiration aquatique", "vertébré", "animal ayant un squelette interne" );
 tabzoo.ajouteranimal("coccinelle", "rouge et noir, prédateur", "pas de nom de sous groupe", "pas de description de sous groupe", "coléoptère", "métamorphose complète", "insecte", "respiration aérienne, corps divisé en trois segments, antennes, trois paires de pattes, deux paires d'ailes", "arthropodes", "corps formé de segments" );
 tabzoo.ajouteranimal("ver luisant", "lumineux", "pas de nom de sous groupe", "pas de description de sous groupe", "coléoptère", "métamorphose complète", "insecte", "respiration aérienne, corps divisé en trois segments, antennes, trois paires de pattes, deux paires d'ailes", "arthropodes", "corps formé de segments" );
 tabzoo.ajouteranimal("abeille", "jaune et noir", "pas de nom de sous groupe", "pas de description de sous groupe", "hyménoptère", "métamorphose complète, aiguillon vénimeux", "insecte", "respiration aérienne, corps divisé en trois segments, antennes, trois paires de pattes, deux paires d'ailes", "arthropodes", "corps formé de segments" );
 tabzoo.ajouteranimal("fourmi", "batailleuse", "pas de nom de sous groupe", "pas de description de sous groupe", "hyménoptère", "métamorphose complète, aiguillon vénimeux", "insecte", "respiration aérienne, corps divisé en trois segments, antennes, trois paires de pattes, deux paires d'ailes", "arthropodes", "corps formé de segments" );
 tabzoo.ajouteranimal("homard", "marin", "pas de nom de sous groupe", "pas de description de sous groupe", "pas de nom de groupe", "pas de description de groupe", "crustacés", "vit dans l'eau, grandit par mues successives", "arthropodes", "corps formé de segments" );
 tabzoo.ajouteranimal("écrevisse", "rivière", "pas de nom de sous groupe", "pas de description de sous groupe", "pas de nom de groupe", "pas de description de groupe", "crustacés", "vit dans l'eau, grandit par mues successives", "arthropodes", "corps formé de segments" );
 
 
 //presentation
 System.out.println(" Bienvenue sur ce programme. Vous allez pouvoir afficher le tableau des animaux enregistrés, ajouter un nouvel animal ou avoir des informations sur un animal en particulier (présent dans le tableau). Veuillez appuyer sur entrer à chaque nouvelle réponse" );
 System.out.println(" " );
 
 // nb animaux
// tabzoo.tabanimal[compteur].compter();
 
 // Affiche les informations sur un animal
 System.out.println("Voulez vous des renseignements sur un animal? veuillez répondre true (oui) ou false (non)" );
 a = Clavier.lireBoolean();
 
 
 if(a==true){
    System.out.println("veuillez entrer le nom de l'animal" );
    nom=Clavier.lireString();
     
    compteur=0;
   
    while((compteur<100)){
        resultat = tabzoo.tabanimal[compteur].getnomanimal();
        if (resultat.compareTo(nom)==0){
            tabzoo.tabanimal[compteur].affiche();
            break;
        }
       
        else{
            compteur=compteur+1;
        }      
     
}
 if(compteur==100){
     System.out.println("Désolé mais cet animal n'est pas répertorié dans notre zoo." );
    }
}
 
// informations sur subdivision
//System.out.println("Voulez vous des renseignements sur une subdivision? veuillez répondre true (oui) ou false (non)" );
 //e = Clavier.lireBoolean();
 
 //if(e==true){
     //System.out.println("Laquelle? vertébré, arthropodes, primates " );
   //  f= Clavier.lireBoolean();
     
      //  if  
     
     
     
 // Entrer un nouvel animal
 System.out.println("Voulez vous entrer un nouvel animal? veuillez répondre true (oui) ou false (non)" );
 rep = Clavier.lireBoolean();
 
 if(rep==true){
     System.out.println("Veuillez entrer le nom d'un animal" );
     nomani = Clavier.lireString();
     System.out.println("Veuillez entrer la desription de l'animal" );
     descriptionani = Clavier.lireString();
     System.out.println("Veuillez entrer le nom du sous groupe auquel il appartient" );
     nomssgrpe = Clavier.lireString();
     System.out.println("Veuillez entrer la description du sous groupe" );
     desssgrpe = Clavier.lireString();
     System.out.println("Veuillez entrer le nom du groupe auquel il appartient" );
     nomgrpe = Clavier.lireString();
     System.out.println("Veuillez entrer la description du groupe auquel il appartient" );
     desgrpe = Clavier.lireString();
     System.out.println("Veuillez entrer le nom de sa classe" );
     nomclas = Clavier.lireString();
     System.out.println("Veuillez entrer la description de la classe à laquelle il appartient" );
     desclas = Clavier.lireString();
     System.out.println("Veuillez entrer le nom de l'embranchement" );
     nomemb = Clavier.lireString();
     System.out.println("Veuillez entrer la description de l'embranchement auquel il appartient" );
     desemb = Clavier.lireString();
     tabzoo.ajouteranimal(nomani, descriptionani, nomssgrpe, desssgrpe, nomgrpe, desgrpe, nomclas, desclas, nomemb, desemb);
 
    }
     
     
 
// Affiche tout le tableau
 System.out.println(" " );
 System.out.println("Voulez vous afficher tout le tableau? veuillez répondre true (oui) ou false (non)" );
 b = Clavier.lireBoolean();
 
 if(b==true){
      tabzoo.afficheanimaux();  
    }    
   
 }  
}  
   
 
 public class Programmeprincipal
{public static void main(){
 
 
 ensembleanimaux tabzoo;
 String nom;
 int compteur;
 String nomani;
 String descriptionani;
 String nomssgrpe;
 String desssgrpe;
 String nomgrpe;
 String desgrpe;
 String nomclas;
 String desclas;
 String nomemb;
 String desemb;
 boolean rep;
 boolean a;
 boolean b;
 String resultat;
 
 // Création du tableau
 tabzoo = new ensembleanimaux();
 
 // Base de données
 tabzoo.ajouteranimal("chimpanzé", "intelligent", "simien", "marche debout", "primate", "adapté à la vie dans les arbres, mange de tout", "mammifère", "corps couvert de poils, température constante, vivipare, allaitement, respiration aérienne", "vertébré", "animal ayant un squelette interne" );
 tabzoo.ajouteranimal("gorille", "grand, vigoureux", "simien", "marche debout", "primate", "adapté à la vie dans les arbres, mange de tout", "mammifère", "corps couvert de poils, température constante, vivipare, allaitement, respiration aérienne", "vertébré", "animal ayant un squelette interne" );
 tabzoo.ajouteranimal("gibbon", "gracieux", "simien", "marche debout", "primate", "adapté à la vie dans les arbres, mange de tout", "mammifère", "corps couvert de poils, température constante, vivipare, allaitement, respiration aérienne", "vertébré", "animal ayant un squelette interne" );
 tabzoo.ajouteranimal("maki", "élégant", "lemurien", "vie nocturne, griffes", "primate", "adapté à la vie dans les arbres, mange de tout", "mammifère", "corps couvert de poils, température constante, vivipare, allaitement, respiration aérienne", "vertébré", "animal ayant un squelette interne" );
 tabzoo.ajouteranimal("lion", "crinière, fauve", "félidé", "vie nocturne", "carnivore", "mange de la viande, griffes", "mammifère", "corps couvert de poils, température constante, vivipare, allaitement, respiration aérienne", "vertébré", "animal ayant un squelette interne" );  
 tabzoo.ajouteranimal("panthère", "tacheté", "félidé", "vie nocturne", "carnivore", "mange de la viande, griffes", "mammifère", "corps couvert de poils, température constante, vivipare, allaitement, respiration aérienne", "vertébré", "animal ayant un squelette interne" );
 tabzoo.ajouteranimal("tigre", "tigré, blanc et roux", "félidé", "vie nocturne", "carnivore", "mange de la viande, griffes", "mammifère", "corps couvert de poils, température constante, vivipare, allaitement, respiration aérienne", "vertébré", "animal ayant un squelette interne" );
 tabzoo.ajouteranimal("chat", "domestiqué, petit", "félidé", "vie nocturne", "carnivore", "mange de la viande, griffes", "mammifère", "corps couvert de poils, température constante, vivipare, allaitement, respiration aérienne", "vertébré", "animal ayant un squelette interne" );
 tabzoo.ajouteranimal("chien", "familier", "canidé", "vie diurne", "carnivore", "mange de la viande, griffes", "mammifère", "corps couvert de poils, température constante, vivipare, allaitement, respiration aérienne", "vertébré", "animal ayant un squelette interne" );
 tabzoo.ajouteranimal("loup", "rusé, prédateur", "canidé", "vie diurne", "carnivore", "mange de la viande, griffes", "mammifère", "corps couvert de poils, température constante, vivipare, allaitement, respiration aérienne", "vertébré", "animal ayant un squelette interne" );
 tabzoo.ajouteranimal("renard", "solitaire", "canidé", "vie diurne", "carnivore", "mange de la viande, griffes", "mammifère", "corps couvert de poils, température constante, vivipare, allaitement, respiration aérienne", "vertébré", "animal ayant un squelette interne" );
 tabzoo.ajouteranimal("souris", "grise ou blanche", "pas de nom de sous groupe ", "pas de description de sous groupe ", "rongeur", "mange des végétaux, grande fécondité", "mammifère", "corps couvert de poils, température constante, vivipare, allaitement, respiration aérienne", "vertébré", "animal ayant un squelette interne" );  
 tabzoo.ajouteranimal("écureuil", "roux", "pas de nom de sous groupe ", "pas de description de sous groupe ", "rongeur", "mange des végétaux, grande fécondité", "mammifère", "corps couvert de poils, température constante, vivipare, allaitement, respiration aérienne", "vertébré", "animal ayant un squelette interne" );
 tabzoo.ajouteranimal("hamster", "abajoues", "pas de nom de sous groupe ", "pas de description de sous groupe ", "rongeur", "mange des végétaux, grande fécondité", "mammifère", "corps couvert de poils, température constante, vivipare, allaitement, respiration aérienne", "vertébré", "animal ayant un squelette interne" );
 tabzoo.ajouteranimal("mouton", "laine", "pas de nom de sous groupe ", "pas de description de sous groupe ", "ruminant", "mange de l'herbe", "mammifère", "corps couvert de poils, température constante, vivipare, allaitement, respiration aérienne", "vertébré", "animal ayant un squelette interne" );
 tabzoo.ajouteranimal("cerf", "ramures", "pas de nom de sous groupe ", "pas de description de sous groupe ", "ruminant", "mange de l'herbe", "mammifère", "corps couvert de poils, température constante, vivipare, allaitement, respiration aérienne", "vertébré", "animal ayant un squelette interne" );
 tabzoo.ajouteranimal("girafe", "long cou", "pas de nom de sous groupe ", "pas de description de sous groupe ", "ruminant", "mange de l'herbe", "mammifère", "corps couvert de poils, température constante, vivipare, allaitement, respiration aérienne", "vertébré", "animal ayant un squelette interne" );
 tabzoo.ajouteranimal("cigogne", "blanche et noir", "pas de nom de sous groupe ", "pas de description de sous groupe ", "échassier", "pattes très longues, long bec", "oiseau", "corps couvert de plumes, ovipare, respiration aérienne, température constante, adapté au vol", "vertébré", "animal ayant un squelette interne" );
 tabzoo.ajouteranimal("faucon", "prédateur", "pas de nom de sous groupe ", "pas de description de sous groupe ", "rapace", "vie diurne, mange de la viande, griffes", "oiseau", "corps couvert de plumes, ovipare, respiration aérienne, température constante, adapté au vol", "vertébré", "animal ayant un squelette interne" );
 tabzoo.ajouteranimal("épervier", "pas de description de l'animal", "pas de nom de sous groupe ", "pas de description de sous groupe ", "rapace", "vie diurne, mange de la viande, griffes", "oiseau", "corps couvert de plumes, ovipare, respiration aérienne, température constante, adapté au vol", "vertébré", "animal ayant un squelette interne" );
 tabzoo.ajouteranimal("esturgeon", "marin", "pas de nom de sous groupe ", "pas de description de sous groupe ", "pas de nom de groupe ", "pas de description de groupe ", "poisson", "corps couvert d'écailles, température variable, ovipare, respiration aquatique", "vertébré", "animal ayant un squelette interne" );
 tabzoo.ajouteranimal("requin", "marin, prédateur", "pas de nom de sous groupe ", "pas de description de sous groupe ", "pas de nom de groupe ", "pas de description de groupe " , "poisson", "corps couvert d'écailles, température variable, ovipare, respiration aquatique", "vertébré", "animal ayant un squelette interne" );
 tabzoo.ajouteranimal("carpe", "rivière", "pas de nom de sous groupe ", "pas de description de sous groupe ", "pas de nom de groupe ", "pas de description de groupe ", "poisson", "corps couvert d'écailles, température variable, ovipare, respiration aquatique", "vertébré", "animal ayant un squelette interne" );
 tabzoo.ajouteranimal("coccinelle", "rouge et noir, prédateur", "pas de nom de sous groupe", "pas de description de sous groupe", "coléoptère", "métamorphose complète", "insecte", "respiration aérienne, corps divisé en trois segments, antennes, trois paires de pattes, deux paires d'ailes", "arthropodes", "corps formé de segments" );
 tabzoo.ajouteranimal("ver luisant", "lumineux", "pas de nom de sous groupe", "pas de description de sous groupe", "coléoptère", "métamorphose complète", "insecte", "respiration aérienne, corps divisé en trois segments, antennes, trois paires de pattes, deux paires d'ailes", "arthropodes", "corps formé de segments" );
 tabzoo.ajouteranimal("abeille", "jaune et noir", "pas de nom de sous groupe", "pas de description de sous groupe", "hyménoptère", "métamorphose complète, aiguillon vénimeux", "insecte", "respiration aérienne, corps divisé en trois segments, antennes, trois paires de pattes, deux paires d'ailes", "arthropodes", "corps formé de segments" );
 tabzoo.ajouteranimal("fourmi", "batailleuse", "pas de nom de sous groupe", "pas de description de sous groupe", "hyménoptère", "métamorphose complète, aiguillon vénimeux", "insecte", "respiration aérienne, corps divisé en trois segments, antennes, trois paires de pattes, deux paires d'ailes", "arthropodes", "corps formé de segments" );
 tabzoo.ajouteranimal("homard", "marin", "pas de nom de sous groupe", "pas de description de sous groupe", "pas de nom de groupe", "pas de description de groupe", "crustacés", "vit dans l'eau, grandit par mues successives", "arthropodes", "corps formé de segments" );
 tabzoo.ajouteranimal("écrevisse", "rivière", "pas de nom de sous groupe", "pas de description de sous groupe", "pas de nom de groupe", "pas de description de groupe", "crustacés", "vit dans l'eau, grandit par mues successives", "arthropodes", "corps formé de segments" );
 
 
 //presentation
 System.out.println(" Bienvenue sur ce programme. Vous allez pouvoir afficher le tableau des animaux enregistrés, ajouter un nouvel animal ou avoir des informations sur un animal en particulier (présent dans le tableau). Veuillez appuyer sur entrer à chaque nouvelle réponse" );
 System.out.println(" " );
 
 // nb animaux
// tabzoo.tabanimal[compteur].compter();
 
 // Affiche les informations sur un animal
 System.out.println("Voulez vous des renseignements sur un animal? veuillez répondre true (oui) ou false (non)" );
 a = Clavier.lireBoolean();
 
 
 if(a==true){
    System.out.println("veuillez entrer le nom de l'animal" );
    nom=Clavier.lireString();
     
    compteur=0;
   
    while((compteur<100)){
        resultat = tabzoo.tabanimal[compteur].getnomanimal();
        if (resultat.compareTo(nom)==0){
            tabzoo.tabanimal[compteur].affiche();
            break;
        }
       
        else{
            compteur=compteur+1;
        }      
     
}
 if(compteur==100){
     System.out.println("Désolé mais cet animal n'est pas répertorié dans notre zoo." );
    }
}
 
// informations sur subdivision
//System.out.println("Voulez vous des renseignements sur une subdivision? veuillez répondre true (oui) ou false (non)" );
 //e = Clavier.lireBoolean();
 
 //if(e==true){
     //System.out.println("Laquelle? vertébré, arthropodes, primates " );
   //  f= Clavier.lireBoolean();
     
      //  if  
     
     
     
 // Entrer un nouvel animal
 System.out.println("Voulez vous entrer un nouvel animal? veuillez répondre true (oui) ou false (non)" );
 rep = Clavier.lireBoolean();
 
 if(rep==true){
     System.out.println("Veuillez entrer le nom d'un animal" );
     nomani = Clavier.lireString();
     System.out.println("Veuillez entrer la desription de l'animal" );
     descriptionani = Clavier.lireString();
     System.out.println("Veuillez entrer le nom du sous groupe auquel il appartient" );
     nomssgrpe = Clavier.lireString();
     System.out.println("Veuillez entrer la description du sous groupe" );
     desssgrpe = Clavier.lireString();
     System.out.println("Veuillez entrer le nom du groupe auquel il appartient" );
     nomgrpe = Clavier.lireString();
     System.out.println("Veuillez entrer la description du groupe auquel il appartient" );
     desgrpe = Clavier.lireString();
     System.out.println("Veuillez entrer le nom de sa classe" );
     nomclas = Clavier.lireString();
     System.out.println("Veuillez entrer la description de la classe à laquelle il appartient" );
     desclas = Clavier.lireString();
     System.out.println("Veuillez entrer le nom de l'embranchement" );
     nomemb = Clavier.lireString();
     System.out.println("Veuillez entrer la description de l'embranchement auquel il appartient" );
     desemb = Clavier.lireString();
     tabzoo.ajouteranimal(nomani, descriptionani, nomssgrpe, desssgrpe, nomgrpe, desgrpe, nomclas, desclas, nomemb, desemb);
 
    }
     
     
 
// Affiche tout le tableau
 System.out.println(" " );
 System.out.println("Voulez vous afficher tout le tableau? veuillez répondre true (oui) ou false (non)" );
 b = Clavier.lireBoolean();
 
 if(b==true){
      tabzoo.afficheanimaux();  
    }    
   
 }  
}  
 
 
 
 
 
 
 
 

Reply

Marsh Posté le 07-05-2008 à 22:37:43    

stp mais ton code en citation en tant que code c'est plus simple a voir les parties de codes  
puis je sais pas si c'estune impression j'ai l'impression que tu as fait deux fois un copié colle
Merci


Message édité par infoman64 le 07-05-2008 à 22:39:47
Reply

Marsh Posté le 07-05-2008 à 22:37:43   

Reply

Marsh Posté le 07-05-2008 à 22:38:37    

désolé pour le nombre de fois une erreur de manipulation  

Reply

Marsh Posté le 07-05-2008 à 22:51:10    

deja tu parcours ton tableau de 0 a 100 pour l'index , alors que tu as pas 100 entrée
utilise le code ci dessous au moins tu te précoupe pas de la taille de ton tableau
 
 

Code :
  1. for (int i = 0; i < monTableau.length; i++) {
  2.     int element = monTableau[i];
  3.     // traitement
  4. }


si tu veut uiliser avec le While

Code :
  1. int i = 0;
  2. while(i < monTableau.length){
  3.     int element = monTableau[i];
  4.     // traitement
  5. i++
  6. }


Message édité par infoman64 le 07-05-2008 à 22:51:37
Reply

Marsh Posté le 08-05-2008 à 21:03:34    

Bonsoir,
alors j'ai fait une méthode get qui me permet de réccupérer la valeur du compteur du tableau pr ne pas parcourir les cases vides. ça marche mais quand je demande un animal qui n'est pas dans le tableau  il passe directement à la question suivante sans afficher "désolé..." voici le code
 
// Affiche les informations sur un animal
 System.out.println("Voulez vous des renseignements sur un animal? veuillez répondre true (oui) ou false (non)" );
 a = Clavier.lireBoolean();
 
 
 if(a==true){
        System.out.println("veuillez entrer le nom de l'animal" );
        nom=Clavier.lireString();
             
            for(i=0;i<tabzoo.getcompteur();i=i+1){
                resultat = tabzoo.tabanimal[i].getnomanimal();
                if (resultat.compareTo(nom)==0){
                    tabzoo.tabanimal[i].affiche();
                  }      
                }        
 if(i>tabzoo.getcompteur()){
   System.out.println("Désolé mais cet animal n'est pas répertorié dans notre zoo." );
   
}
}

Reply

Marsh Posté le 09-05-2008 à 09:11:11    

normal met supérieur egale
 if(i>=tabzoo.getcompteur()){  
 
vu que tu t'arrete a inférieur stricte


Message édité par infoman64 le 09-05-2008 à 09:11:24
Reply

Marsh Posté le 09-05-2008 à 13:06:26    

oui j'ai mis un inférieur stricte car avec un <= ca plante mais du cout il ne pren pas en compte la dernière case...

Reply

Marsh Posté le 09-05-2008 à 14:03:33    

ton getcompteur c'est toi qui l'a fait je pense
tu as quoi dans ta methode
 
utilise .length(), c'est une methode propre au tableau, car je pense que ton getcompteur doit pas te renvoyer la bonne valeur, tu as du te trompé dans ton code de ta methode
 
montre moi ta methode getcompteur()

Reply

Marsh Posté le 09-05-2008 à 14:16:36    

infoman64 a écrit :

utilise .length(), c'est une methode propre au tableau


 :non:

 

C'est bien #length, mais c'est un attribut pas une méthode:

$ cat > Test.java
class Test {
    public static void main(final String[] args) {
        final String[] items = {"foo", "bar", "baz"};
        System.out.println(items.length);
    }      
}
^C
$ javac -Xlint:all Test.java
$ java Test
3


Message édité par masklinn le 09-05-2008 à 14:18:09

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 09-05-2008 à 14:32:28    

oui oui désolé  
tu as tout a fait raison,
mais bon ca te donne la taille de ton tableau, c'est le principal.

Reply

Marsh Posté le 10-05-2008 à 13:59:48    

Bonjour, merci pour ces info
en ce qui concerne ma méthode getcompteur elle est dans la classe ensembleanimaux et voici son code
 
animal[] tabanimal;
int compteur;
 
 
public ensembleanimaux(){// creation du tableau
tabanimal=new animal[100];
compteur=0;
}
 
public void ajouteranimal(String valnomanimal, String valdescriptionanimal, String valnomsousgroupe, String valdescriptionsousgroupe, String valnomgroupe, String valdescriptiongroupe, String valnomclasse, String valdescriptionclasse, String valnomembranchement, String valdescriptionembranchement){
tabanimal[compteur]= new animal(valnomanimal,valdescriptionanimal,valnomsousgroupe,valdescriptionsousgroupe,valnomgroupe,valdescriptiongroupe,valnomclasse,valdescriptionclasse,valnomembranchement,valdescriptionembranchement);
compteur=compteur+1;  
}
 
public void afficheanimaux(){
int i;
 for (i=0;i<compteur;i=i+1){
     tabanimal[i].affiche();
     }
    }
public int getcompteur(){
return(compteur);
}
 
}

Reply

Marsh Posté le 10-05-2008 à 14:18:42    

Si tu continues à ne pas utiliser la balise code je te report à la modération, tes posts sont insupportables.

 

edit: et je t'ai déjà suggéré de suivre les conventions de nommage java, ça aidera tout le monde.


Message édité par masklinn le 10-05-2008 à 14:19:58

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 11-05-2008 à 17:17:00    

désolépour l'affichage... c'est bon tous fonctionne correctement merci d'avoir pris du temps pour me répondre
lnd

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed