Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1168 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  Aide Tableau Java

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Aide Tableau Java

n°1965237
ziliass
Posté le 12-02-2010 à 05:01:17  profilanswer
 

Bonjour,
Merci de me dire si ce code est correct ou pas.et comment l'optimiser.
 
Quelques détails sur le code :
 
-J'ai déjà créé les class suivantes ocuments,Livre,Manuels,Romans,Revues,Dictionnaire.(avec tout ce qu'il faut).
-je veux créer une class Biblio(qui gère un tableau de documents) avec les méthodes suivantes :
- Constructeur Tableau.
- Afficher les documents du tableau.
- Afficher les auteurs(sachant que Auteur est un attribut de la class livre).
- Ajout d'un document.
 -Permet de renvoyer le i eme document.
- Supprimer un document référencé par doc et renvoie true ,(false en cas d’échec).
 
 
Merci pour vos réponses.
 
CODE JAVA:
 

Code :
  1. import java.util.Scanner;
  2.  
  3.  
  4. public class Biblio {
  5.     
  6.     Documents tab[];
  7.     
  8.  
  9.     public Biblio(int capacite)
  10. {
  11.     tab = new Documents[capacite];
  12. }
  13.  
  14.  
  15.     
  16.     public void afficherDocument()
  17. {
  18.     
  19.     for (int i = 0; i< tab.length;i++)
  20.     {
  21.         System.out.println(tab[i]);
  22.     }
  23. }
  24.  
  25.  
  26. public void afficherAuteur()
  27. {
  28.     int capacite=tab.length;
  29.     tab =new Documents[capacite];
  30.     
  31.     for(int i =0 ; i< tab.length; i++)
  32.     {
  33.         System.out.println(tab[i].getNum_enregistrement());
  34.         if (tab[i] instanceof Livre)
  35.         
  36.         System.out.println(" "+((Livre)tab[i]).getAuteur());    
  37.         
  38.         else
  39.         
  40.         System.out.println(" " );    
  41.             
  42.     }
  43. }
  44.  
  45.  
  46. public boolean ajouter(Documents doc)
  47. {
  48. for(int i=0; i < tab.length;i++)
  49. {
  50.     if(tab[i].numEnregistrement==(doc.numEnregistrement))
  51.     
  52.         
  53.         return true;    
  54.     
  55.     else  tab[i]=doc;    
  56.            
  57. }
  58. return false;      
  59.     
  60. }
  61.  
  62.  
  63. public Documents document(int i)
  64. {
  65.     Scanner sc = new Scanner(System.in);
  66.     int var=sc.nextInt();
  67.     
  68.     for(int j=0; j < tab.length;j++)
  69.     {
  70.         if(tab[j].numEnregistrement==var)
  71.             return document(i);
  72.     }
  73.     return null;            
  74. }
  75.  
  76.  
  77. public boolean supprimer(Documents doc)
  78. {
  79.     for(int i=0; i < tab.length;i++)
  80.     {
  81.         if(tab[i].numEnregistrement==(doc.numEnregistrement))
  82.         
  83.             return true;    
  84.         
  85.         for(int j=i;j<tab.length;j++)
  86.             tab[j]=tab[j-1];
  87.                 
  88.     }
  89.            return false;          
  90.     
  91. }
  92.  
  93. }



Message édité par gilou le 12-02-2010 à 09:51:47
mood
Publicité
Posté le 12-02-2010 à 05:01:17  profilanswer
 

n°1965645
cbeyls
Hail to the King, Baby
Posté le 13-02-2010 à 02:34:21  profilanswer
 

On n'a pas accès à la classe Document donc on ne sait pas ce qu'elle offre ni ce qu'est le champ numEnregistrement.
 
Hélas toutes les méthodes que je vois là sont fausses, il n'y a que le constructeur qui est correct et encore, il manque une initialisation: le nombre de documents actuellement insérés dans la bibliothèque doit être stocké dans la classe et initialisé à 0.
 
Pour supprimer un document passé en paramètre, il faut juste que tu parcoures le tableau de Document de 0 au nombre de documents actuellement insérés, en comparant à chaque fois le document en cours à celui passé en paramètre et en t'arrêtant dès que tu le trouves. Pour savoir comment comparer 2 objets Document, il faut connaître la définition de la classe Document. Si par exemple la méthode equals() est implémentée, il suffit de l'appeler. Sinon il faut comparer un champ faisant office de "clé primaire". Dans le cas particulier où un objet Document est toujours représenté par la même instance dans le système (plutôt rare), une simple comparaison d'instances (==) suffit.

n°1966132
pop-pan
yay!
Posté le 15-02-2010 à 14:49:47  profilanswer
 

idées rapides apres lecture rapide :
 
public class Biblio extends ArrayList{
}
 
je te suggere de regarder ArrayList (http://java.sun.com/j2se/1.4.2/docs/api/java/util/ArrayList.html) pour comprendre pourquoi
 
Ensuite on connait pas ta classe Document, mais peut etre que  
 
interface Document{  
    public String getAuthor();    
}
 
et  
 
public class Livre implements Document{
    private String author;
    public String getAuthor(){
        return this.author;
    }
}
 
ca pourrait t'aider.
 
[edit]
attention ca marchera pas forcement de suite. mais le principe c'est qu'en java ca sert a rien de reinventer la roue, le mieux c'est toujours de lire la doc.
d'ailleurs l'idéal ca serait que tu regardes du coté des "generics" et Collection<> ou List<>
 
[/edit]


Message édité par pop-pan le 15-02-2010 à 14:56:45

---------------
[VDS] rail vesa, bras ecran, support TV / [ACH] des machins

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  Aide Tableau Java

 

Sujets relatifs
Besoin de votre aide : exécuter avec les droits admins ?Aide avec le "boutisme"
Besoin d'aide : éxécuter avec les droits admin + précision a respecter[OK] Problème de connexion entre Java (par Eclipse) et MAMP
Aide en JavaRecherche tableau
Besoin d'aide pour un scriptExtraction des métadonnées encoder en rdf avec java
Besoin d'aide en PHPaide déclaration de tableau en java
Plus de sujets relatifs à : Aide Tableau Java


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR