bonsoir , voici d'abord mes deux classe:
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
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); } }
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.
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; } }
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:
merci a vous
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]);
Partager