bonsoir , voici d'abord mes deux classe:


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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
public class Livre {
  private String titre, auteur;
  private int nbPages;
  private double prix;
 
  public Livre(String unAuteur, String unTitre) {
    auteur = unAuteur;
    titre = unTitre;
  }
 
  public String getAuteur() {
    return auteur;
  }
  public String getTitre() {
    return titre;
  }
  public int getNbPages() {
    return nbPages;
  }
 
  public double getPrix() {
    return prix;
  }
 
  public void setAuteur(String unAuteur) {
    auteur = unAuteur;
  }
  public void setTitre(String unTitre) {
    titre = unTitre;
  }
  public void setNbPages(int n) {
    if (n > 0) {
      nbPages = n;
    }
    else {
      System.err.println("Erreur : nombre de pages négatif !");
    }
  }
 
  public void setPrix(double unPrix) {
    if (unPrix >= 0.0) {
      prix = unPrix;
    }
    else {
      System.err.println("Erreur : prix négatif !");
    }
  }
 
  public String toString() {
    return "Livre: titre " + titre + ", auteur "
      + auteur + ", nb pages " + nbPages + ", prix "
      + prix;
  }
 
  public static void main(String[] args) {
    Livre l1 = new Livre("Victor Hugo", "Notre Dame de Paris");
    l1.setNbPages(150);
    l1.setPrix(80.0);
    Livre l2 = new Livre("Emile Zola", "La bête humaine");
    l2.setNbPages(170);
    l2.setPrix(150.0);
    System.out.print("Livre de " + l1.getAuteur());
    System.out.println(" avec " + l1.getNbPages() + " pages.");
    System.out.print("Livre de " + l2.getAuteur());
    System.out.println(" avec " + l2.getNbPages() + " pages.");
    System.out.println(l1);
    System.out.println(l2);
  }
}
classe etagere:
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
 
public class Etagere {
	private int nblivre;// nombre de livre
	private Livre tab[];
	private  int a=0;// indice
 
	public Etagere(int nb)
	{nblivre=nb;
	tab=new Livre[nb];
 
	}
 
	void ajouter(Livre l)
	{if(a<nblivre)
     	{tab[a]=new Livre(l.getAuteur(),l.getTitre()) ;
		a++;
		System.out.println("le livre a bien eté ajouté");
	    }
	 else  System.out.println("l'etagere est remplie");
 
	}
	 public Livre getLivre(int i)
	 { if( i<nblivre)
		 return tab[i];
	 else return null ;
 
	 }
 
	  public int chercher(String tit,String aut)
	 {int i=0;
	 while(i<a)
	 {if(tab[i].getTitre()==tit && tab[i].getAuteur()==aut)
		 return i+1;
	 else i++;
 
	 }
	return 0;
 
	 }
	  public int []chercherLivre(String tit, String aut)
	  {int i=0;
	  int j=0;
	   while(i<a)
	   { if(this.tab[i].getAuteur()==aut && this.tab[i].getTitre()==tit)
	   		{ j++;
	   		 i++;   }
	   else 
		   i++;
 
	   }
		int[] tabb=new int [j];
		i=0;
		int l=0;
		while(i<a)
		{ if(this.tab[i].getAuteur()==aut && this.tab[i].getTitre()==tit)
			{tabb[l]=i;
		      l++;}
		else 
			i++;
 
		}
		System.out.println("la taille du tableau est "+tabb.length);
		return tabb;
 
	  }
 
}
mon probleme se situe dans la methode :public int []chercherLivre(String tit, String aut) (derniere methode de la classe etagere )ou je donne en parametre un auteur et un titre (de livre) et en sortie je devrais avoir les position de ses livres dans l'etagere.
donc normalemnt j'aurai un tableau de int en sortie , or mon programme plante .
remarque: comment faire pour recuperer un tableau en sortie.

voici mon test(main()) ou j'ai pu ajouté des livres dans l'etagere:

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
Etagere E=new Etagere(5);
 
		Livre l1=new Livre("Feri","Tferi");
		Livre l2=new Livre("fai","tfai");
		Livre l3=new Livre("fai","tfai");
		Livre l4=new Livre("nari","tnari");
		Livre l5=new Livre("fai","tfai");
		Livre l6=new Livre("sara","tsara");
		E.ajouter(l1);
		E.ajouter(l2);
		E.ajouter(l3);
		E.ajouter(l4);
		E.ajouter(l5);
		E.ajouter(l6);
 
 
		Livre a=E.getLivre(0);
		a.getAuteur();
		a.getTitre();
		System.out.println("hauteur et titre   "+a.getAuteur() +"\t"+a.getTitre());
		System.out.println("la position du livre est "+E.chercher("tfai","fai"));
 
 
		int tab1[]= E.chercherLivre("tfai", "fai");
		System.out.println("la taille du tableau est "+tab1.length);
		//System.out.println("la taille du tableau est "+tab1[0]);
merci a vous