bonjour,
je débute en java du coup j'ai commencé par faire une application qui gere des films, et pour cela j'ai utilisé les TreeSet je sais que c'est pas la plus simple des façons mais j'avais envie de relever le défi sauf que je suis vraiment bloqué.
C'est au moment ou je veux ajouter un film, quand j'en ajoute un ça marche et j'arrive à l'afficher mais quand j'en ajoute un deuxième il vient écraser le premier car quand j'affiche ce qu'il y a dans ma liste de films je trouve que le dernier.
je vous mets le code à votre disposition. merci de m'aider:
MaFilmotheque.java
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 package ftech.Class; public class MaFilmotheque { public static void creer() { } public static void main(String [] arg) { ListeFilms L= new ListeFilms(); L.initialise(); int i=0; System.out.print("voulez vous ajouter un film ?\n"); char rep; rep=Lire.c(); while(rep == 'o') { Film f= new Film(); f.saisir(); L.ajoute(f); i++; System.out.print("le film numero "+i+" a bien été ajouté\n"); System.out.print("voulez vous ajouter un autre film ?\n"); rep=Lire.c(); } L.affficher(); } }
ListeFilms.java
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 package ftech.Class; import java.util.*; public class ListeFilms { public TreeSet <Film> t; public void initialise(){ t=new TreeSet<Film>(); } public boolean ajoute(Film f){ t.add(f); return true; } public void affficher(){ Iterator<Film> it=t.iterator(); while (it.hasNext()) System.out.println(((Film)(it.next())).toString()); } }
Film.java
et une classe qui gère le flux entrant:
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 package ftech.Class; public class Film implements Comparable<Film>{ static private String titre; static private int année; static private String réalisateur; static private String genre; public void saisir(){ System.out.print("saisissez le titre de votre film:"); titre=Lire.S(); System.out.print("saisissez l'année de sortie de votre film:"); année=Lire.i(); System.out.print("saisissez le nom du réalisateur de votre film:"); réalisateur=Lire.S(); System.out.print("saisissez le genre de votre film:"); genre=Lire.S(); } public void afficher(){ System.out.print("le titre du film est: "+titre+ "\n"); System.out.print("l'année de sortie du film est: "+année+ "\n"); System.out.print("le réalisateur du film est: "+réalisateur+ "\n"); System.out.print("le genre du film est: "+genre+ "\n"); } public void setFilm(String tit, int ann, String réa, String genr){ titre= tit; année= ann; réalisateur= réa; genre= genr; } public String getTitre(){ return titre; } public int getAnn(){ return année; } public String getRéal(){ return réalisateur; } public String getGenre(){ return genre; } public String toString(){ return (titre+" "+année+" "+réalisateur+" "+genre); } public int compareTo(Film f){ int comptitre = f.getTitre().compareTo(f.getTitre()); return comptitre != 0 ? comptitre : f.getRéal().compareTo(f.getRéal()); } }
Lire.java
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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114 package ftech.Class; import java.io.*; public class Lire { public static String S() // Lire un String { String tmp = ""; char C='\0'; try { while ((C=(char) System.in.read()) !='\n') { if (C != '\r') tmp = tmp+C; } } catch (IOException e) { System.out.println("Erreur de frappe"); System.exit(0); } return tmp; } // fin de S() public static byte b() // Lire un entier byte { byte x=0; try { x=Byte.parseByte(S()); } catch (NumberFormatException e) { System.out.println("Format numérique incorrect"); System.exit(0); } return x ; } public static short s() // Lire un entier short { short x=0; try { x=Short.parseShort(S()); } catch (NumberFormatException e) { System.out.println("Format numérique incorrect"); System.exit(0); } return x ; } public static int i() // Lire un entier { int x=0; try { x=Integer.parseInt(S()); } catch (NumberFormatException e) { System.out.println("Format numérique incorrect"); System.exit(0); } return x ; } public static long l() // Lire un entier long { long x=0; try { x=Long.parseLong(S()); } catch (NumberFormatException e) { System.out.println("Format numérique incorrect"); System.exit(0); } return x ; } public static double d() // Lire un double { double x=0.0; try { x=Double.valueOf(S()).doubleValue(); } catch (NumberFormatException e) { System.out.println("Format numérique incorrect"); System.exit(0); } return x ; } public static float f() // Lire un float { float x=0.0f; try { x=Float.valueOf(S()).floatValue(); } catch (NumberFormatException e) { System.out.println("Format numérique incorrect"); System.exit(0); } return x ; } public static char c() // Lire un caractere { String tmp=S(); if (tmp.length()==0) return '\n'; else { return tmp.charAt(0); } } }







Répondre avec citation
Partager