IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Java Discussion :

nouveau probleme filmothèque


Sujet :

Langage Java

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 58
    Par défaut nouveau probleme filmothèque
    salut tout le monde donc j'ai presque fini mon application filmotheque sauf que ça plante à un moment donné, il ya tout qui marche comme je veux sauf quand j'entre un numero de film à supprimer ça me le supprime mais ça n'afficher pas la contenu de ma filmotheque après, je sais pas pourquoi voici le code les gars:
    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
    Mafilmotheque.java
    package ftech.Class;
     
    public class MaFilmotheque {
     
    	public static void insérer()
    	{
    		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')
    		{
    				System.out.print("saisissez le titre de votre film:");
    				String tit=Lire.S();
    				System.out.print("saisissez l'année de sortie de votre film:");
    				int ann=Lire.i();
    				System.out.print("saisissez le nom du réalisateur de votre film:");
    				String réa=Lire.S();
    				System.out.print("saisissez le genre de votre film:");
    				String gen=Lire.S();
    				Film f= new Film(tit,ann,réa,gen);
    				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();	
    		L.supprimer();
    		//L.affficher();
     
     
    	}
     
     
    	public static void main(String [] arg) {
     
    		insérer();
     
     
     
     
     
     
     
     
    }
    }
    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
    ListeFilms.java
    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) {
     
    		if (t.add(f)) {
    			System.out.print("l'ajout s'est bien deroulé\n");
    			return true;
    		} else {
    			System.out.print("l'ajout n'est pas effectué\n");
    			return false;
    		}
     
    	}
     
    	public void affficher() {
    		Iterator<Film> it = t.iterator();
    		while (it.hasNext())
    			System.out.println(((Film) (it.next())).toString());
    	}
     
    	public void supprimer() {
    		int num = 1;
    		Iterator<Film> it = t.iterator();
    		while (it.hasNext()) {
    			Film f = (Film) (it.next());
    			System.out.println(f + " ------> " + num);
    			num++;
    		}
    		System.out
    				.println("saisissez le numéro du film que vous désirez supprimer de la collection:");
     
    		int m = Lire.i();
     
    		it = t.iterator();
    		num = 1;
    		while (it.hasNext()) {
    			if (num == m) {
     
    				boolean b; 
    				b = t.remove(it.next());
     
    				if (b) {
    					System.out.print("le film numéro " + num
    							+ " a bien été supprimé");
    				} else {
    					System.out.print("le film numéro" + num
    							+ "n'a pas été supprimé");
    				}
    			}
    			num++;
    			affficher();
    		}
     
     
    	}
    }
    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
    Film.java
     
    package ftech.Class;
     
    public class Film implements Comparable<Film>{
     
    	private String titre;
    	private int année;
    	private String réalisateur;
    	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 Film(String tit,int ann,String réa,String gen)
    {
    	titre=tit;
    	année=ann;
    	réalisateur=réa;
    	genre=gen;
    }
     
     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 = getTitre().compareTo(f.getTitre());
    	return
    	comptitre != 0 ? comptitre : getRéal().compareTo(f.getRéal());
    }
    }
    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
    115
    Lire.java
    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);
    		}
     }
    }
    et grand merci

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 58
    Par défaut aidez moi svp !!!
    bonjour,
    bon ça fait 2 jours que j'ai publié mon problème de filmothèque.
    je voudrais savoir si j'ai enfreint des règles et c'est pour cela que personne ne se decide de me filer un coup de main, ou bien juste un pure hasard

  3. #3
    Membre expérimenté Avatar de Torg666
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2008
    Messages
    230
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2008
    Messages : 230
    Par défaut
    Ben faut dire que ton code est pas franchement clean (indentation a chier) et en plus il ne respecte pas les conventions de nomage des fonctions et variables, alors forcement ca encourage pas a y jeter un oeil

    Sinon:
    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
     
    it = t.iterator();
    num = 1;
    while (it.hasNext()) {
     if (num == m) {
      boolean b; 
      b = t.remove(it.next());
      if (b) {
       System.out.print("le film numéro " + num+ " a bien été supprimé");
      } else {
       System.out.print("le film numéro" + num+ "n'a pas été supprimé");
      }
     }
     num++;
     affficher();
    }
    Ca va marcher si et seulement si m==1, dans tous les autres cas ca supprime le mauvais film. Le it.hasNext() ne te fais pas parcourrir ton iterator.
    Par contre je vois pas trop pour il ne t'affiche rien, a priori si il te reste quelque chose dans ton iterator il devrai l'afficher.
    Sinon moi je te conseillerai d'utiliser un identifiant unique (un peu comme dans les Base de données relationnelles) pour tes films plutôt que de gérer ca avec des compteurs.

  4. #4
    Membre Expert
    Avatar de visiwi
    Profil pro
    Inscrit en
    Février 2008
    Messages
    1 052
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 1 052
    Par défaut
    Le problème vient du fait que tu ne sort jamais de ta boucle dans ta méthode supprimer. introduit un break après ton if (b).

  5. #5
    Membre Expert
    Avatar de visiwi
    Profil pro
    Inscrit en
    Février 2008
    Messages
    1 052
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 1 052
    Par défaut
    J'ai modifier mon dernier post car j'avais faire référence à une ligne de code erronée.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 58
    Par défaut remerciment
    merci les amis pour votre aide je tacherai de m'ameliorer

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 13/09/2007, 09h30
  2. [c#]Nouveau probleme avec dataset et combobox
    Par misa dans le forum Windows Forms
    Réponses: 2
    Dernier message: 11/05/2006, 10h37
  3. Nouveau probleme aussi avec des gifs animés
    Par inferno66667 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 12
    Dernier message: 06/02/2006, 17h58
  4. Nouveau probleme de mise en page avec IE
    Par Death83 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 8
    Dernier message: 22/10/2005, 14h47
  5. [CSS] Nouveau probleme avec *
    Par m312 dans le forum Mise en page CSS
    Réponses: 7
    Dernier message: 12/08/2005, 20h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo