J'ai besoin d'aide par lé orienté objéts Java

Résolu/Fermé
Cybertrack
Messages postés
3
Date d'inscription
dimanche 4 mars 2012
Statut
Membre
Dernière intervention
5 mars 2012
- 4 mars 2012 à 17:37
Cybertrack
Messages postés
3
Date d'inscription
dimanche 4 mars 2012
Statut
Membre
Dernière intervention
5 mars 2012
- 5 mars 2012 à 16:46
Bonsoir tout le monde, voila j'ai presque terminé un exercice sur Java qui traite oriente objet , mais j'ai trouvé dés difficulté dans le main , l'exercice a demandé de faire un menu
qui permet d'ajouter supprimer etc .. comme cela

1=Ajouter lecteur
2=Supprimer Electeur
3=recherche Electeur Par numero

1
veuillez ajouter le nom
veuillez ajouter le prenom

mais le problème quand l'utilisateur saisit par exemple 1 il s'affiche automatiquement veuillez ajouter le nom
veuillez ajouter le prenom

mais je veux qu'il s'affiche juste veuillez ajouter le nom puis quand l'utilisateur saisit il s'affiche le 2em message veuillez ajouter le prenom voila le code source

public static void main(String[] args) {
		// TODO Auto-generated method stub
		int rep;
		
		Scanner scr=new Scanner(System.in);
		ListeElectorale Electoral=new ListeElectorale();
		
		do{
		
		System.out.println("1=Ajouter lecteur \n2=Supprimer Electeur \n3=recherche Electeur Par numero \n4=Taux du vote \n5=Enregistrer La liste des électeur");
		rep=scr.nextInt();
		
		switch(rep){
		
		case 1:{
			
			System.out.println("veuillez ajouter le nom");
			String nom=scr.nextLine();
			System.out.println("veuillez ajouter le prenom");
			String prenom=scr.nextLine();
			System.out.println("veuillez ajouter la date naissance");
			int date=scr.nextInt();
			System.out.println("veuillez entrer la ville");
			String ville=scr.nextLine();
			System.out.println("veuillez entrer le numero de bureau de vote");
			int numerobureauvpte=scr.nextInt();
			
			 Electeur electeur=new Electeur(nom,prenom,date,ville,numerobureauvpte);
			
			if(Electoral.ajouterElecteur(electeur)){
				
				System.out.println("electeur a été ajouté");
				
			}
			
			else{
				
				System.out.println("erreur lors de l'ajoute");
				
			}
			
			
			
			break;
		}

2 réponses

KX
Messages postés
16540
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
22 mai 2022
2 957
4 mars 2012 à 17:47
C'est un effet de bord de la lecture clavier.
En lisant un entier avec nextInt, il lit également la fin de ligne, et il la "stocke" dans la pile, pour la consommer au premier nextLine (lorsque tu demandes le nom), c'est pour ça que tu passes directement au prénom.

Solution : rajoute un nextLine qui ne sert "à rien", juste après ton nextInt :
rep=scr.nextInt(); scr.nextLine();
Remarque : je suis sûr qu'en poussant un peu plus l'orienté objet dans ton code tu arriverais à faire une méthode lireElecteur qui permettrait de réduire la taille de ton main ;-)
1
Cybertrack
Messages postés
3
Date d'inscription
dimanche 4 mars 2012
Statut
Membre
Dernière intervention
5 mars 2012

4 mars 2012 à 19:58
Merci mr KX votre réponse a été utile j'ai une autre questionne svp comment créé une exception nommé ageexeption qui se déclenche si l'age est inferieure a 18

pouvez vous me donné un exemple ? je connais rien en exception :s
0
KX
Messages postés
16540
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
22 mai 2022
2 957
4 mars 2012 à 20:54
Il faut simplement rajouter ce code :

throw new AgeException(/*paramètres éventuels*/);

Il faut bien sûr que la classe AgeException surcharge la classe Exception.
0
Cybertrack
Messages postés
3
Date d'inscription
dimanche 4 mars 2012
Statut
Membre
Dernière intervention
5 mars 2012

5 mars 2012 à 16:46
merci une autre fois Mr Kx : )
0