Se connecter

Informatique

Programmation

Sujet : java besoin d'aide
1
dali2000
Niveau 2
06 décembre 2017 à 21:24:26

Bonsoir a tous .
je veux creer une application en java qui gere un agenda,et je veux implementer une méthode modifierInformation (Personne p) qui, en fonction du nom d’une personne p, modifie les informations de p.
jai essayer dutiliser BufferedReader dans la class test mais ca na pas marche (je crois j'ai mal utiliser :( ) si quelqun peux m"aider ,un mille merci d'avance je suis encore debutante :hap:

admg
Niveau 9
06 décembre 2017 à 22:05:56

Quand tu dis "modifie", tu veux dire dans une base de données ? un fichier ?

Ta fonction modifierInformation() prend en paramètre un object Personne, tu veux trouver la personne qui a le même nom que ton objet "p" et la modifier ? J'ai bien compris ?

dali2000
Niveau 2
06 décembre 2017 à 22:52:56

oui,exactement :)

admg
Niveau 9
06 décembre 2017 à 23:16:23

Tu n'as pas répondu à ma première question, c'est plutôt important pour comprendre ce que tu cherches à faire !

Sous quelle forme est ta liste de personnes dans laquelle tu vas chercher "p" ?

dali2000
Niveau 2
07 décembre 2017 à 00:52:21

dsl,simple tableau ,pas Array list voici le code :
import java.io.*;
public class Test {
public static void main(String[]args)
{
Personne p =new Personne(" gaultier","jean paul","24 april 1952",02356720);
Personne p1 =new Personne(" Cotillard","Marion","30 September 1975",70566734);
p.toString();
p1.toString();
Personne[ ] tab= new Personne [100];
System.out.println("----------------");
tab[0]=p;
tab[1]=p1;
tab[2]=new Personne("leo","davinchi",00344567);

// private static final BufferedReader clavier = new BufferedReader(new InputStreamReader(System.in));
} }
je veux accepter des demandes d'ajout a lagenda entree au clavier (j'ai realiser methode AjoutPersonne) et autre pour modifier les informations de personne existant mais il faut q je verifie qu'il existe. un grand merci pour vos reponses :)

public class Agenda {
private String name;
private int nbrpersonne=0;
Personne []tab ;
public Agenda(String name)
{
this.name=name;

}
public void Afficher() {

for (int i=0;i<nbrpersonne;i++)
{
if(tab[i]!=null)
System.out.println(tab[i]);
}

}
public boolean AjouterPersonne(Personne P)
{
if(nbrpersonne<tab.length)
{
tab[nbrpersonne]=P;
nbrpersonne++;
return true;
}
else return false;
}

public void RechercherPersonne(String nom)
{
for( int i=0;i<nbrpersonne;i++)
{
if(tab[i].getNom()==nom);
{System.out.println(tab[i]);
break;
}
}
if(i=nbrpersonne)
System.out.println("cette personne n'est pas enregistrer "
+ "dans l'agenda, chercher ailleurs");

}
public void ModifierPersonne (Personne P) {
// RechercherPersonne(String P.getNom() );
}
}

admg
Niveau 9
07 décembre 2017 à 01:21:33

Oh ok, je vois un peu mieux. Ton Buffer Reader va te permettre de lire une string à la fois, donc il faut que tu fasses quelque chose comme demander le nom, puis le prénom, puis le numéro de téléphone, tu stock ça dans des variables de type String, et ensuite tu crée un objet Personne à partir de ces infos puis tu utilises ta méthode en faisant quelque chose de ce style


public void RechercherPersonne(String nom, String prenom, String date, String tel)
{
boolean found = false;
for( int i=0;i<nbrpersonne;i++)
{
if(tab[i].getNom()==nom);
tab[i].setPrenom(prenom);
tab[i].setDate(date);
tab[i].setTel(tel);
found = true
break;
}
if (!found) AjouterPersonne(new Personne (nom, prenom, date, tel));
}

c'est fait un peu à la va vite alors ne vas pas copier coller ça tel quel mais l'idée est là

dali2000
Niveau 2
07 décembre 2017 à 15:51:25

merci bcp pour votre reponse mais j'ai pas bien compris comment j"implemente cette methode dans ma class ,Date est de type int ,tel de type long ,comment les convertir en String ,et surtout comment implementer Buffer ryder dans ma class test,
bien si vous savez aussi comment retouner la date dune personne dans laffichage sous un format bien determine exp:12/5/2009.
Merci.

dali2000
Niveau 2
07 décembre 2017 à 16:27:32

ah ok,je viens debien comprendre mnt , j"ai bien insrer ca dans ma code ,il me reste comment implementer bufferreader dans ma class test ?? :question:

dali2000
Niveau 2
07 décembre 2017 à 17:02:08

daccord mnt j"ai resolu le probleme avec scanner que je le connais mieux mais jai une erreur q je narrive pas a resoudre dans la methode ajouter personne.
j vais publier le code pr vous voyez lerreur et m'aider a resoudre(please :-( )

import java.util.Scanner;
public class Agenda {
private String name;
private int nbrpersonne=0;
Personne []tab ;

public Agenda(String name)
{
this.name=name;
nbrpersonne++;

}
public void Afficher() {

for (int i=0;i<nbrpersonne;i++)
{
if(tab[i]!=null)
System.out.println(tab[i]);
}

}
public boolean AjouterPersonne(Personne P)
{
if(nbrpersonne<tab.length)
{
tab[nbrpersonne]=P;
nbrpersonne++;
return true;
}
else return false;
}
public void MofifierPersonne(String nom, String prenom, String date, int tel)
{
boolean found = false;
for( int i=0;i<nbrpersonne;i++)
{
if(tab[i].getNom()==nom);
tab[i].setPrenom(prenom);
tab[i].setNaissance(date);
tab[i].setTel(tel);
found = true;
break;
}
if (!found) AjouterPersonne(new Personne (prenom,nom,tel));
}

public void RechercherPersonne(String nom)
{

for( int i=0;i<nbrpersonne;i++)
{
if(tab[i].getNom().toLowerCase()==nom.toLowerCase());
{System.out.println(tab[i]);
break;
}

if(i=nbrpersonne) {
System.out.println("cette personne n'est pas enregistrer "
+ "dans l'agenda, chercher ailleurs");}
}
}
}
et voici la class Test
import java.util.Scanner;
import java.io.*;
public class Test {
public static void main(String[]args)
{
Personne p =new Personne(" gaultier","jean paul","24 april 1952",02356720);
Personne p1 =new Personne(" Cotillard","Marion","30 September 1975",70566734);
p.toString();
p1.toString();
Personne[ ] tab= new Personne [100];
System.out.println("----------------");
tab[0]=p;
tab[1]=p1;
tab[2]=new Personne("leo","davinchi",00344567);
Scanner sc=new Scanner(System.in);
System.out.println("Entrer le Prenom :");
String prenom=sc.nextLine();
System.out.println("Entrer le Nom :");
String nom=sc.nextLine();
System.out.println("Entrer le numero de telephone :");
int tel=sc.nextInt();
AjouterPersonne(new Personne(prenom,nom,tel));

}}

admg
Niveau 9
07 décembre 2017 à 20:24:58

Quel est le message d'erreur?

dali2000
Niveau 2
07 décembre 2017 à 21:13:37

le dernier instruction if dans la cmethode rechercher personne(msg:incompatibilite de type): if(i=nbrpersonne) {//nbrpersonne erreur
System.out.println("cette personne n'est pas enregistrer "
+ "dans l'agenda, chercher ailleurs");}
}
et lautre dans la classe test appel de methode Ajouter personne(msg:methode pas definie pour la classe test)

admg
Niveau 9
07 décembre 2017 à 22:10:09

Le 07 décembre 2017 à 21:13:37 dali2000 a écrit :
le dernier instruction if dans la cmethode rechercher personne(msg:incompatibilite de type): if(i=nbrpersonne) {//nbrpersonne erreur
System.out.println("cette personne n'est pas enregistrer "
+ "dans l'agenda, chercher ailleurs");}
}
et lautre dans la classe test appel de methode Ajouter personne(msg:methode pas definie pour la classe test)

possiblement
if (i=nbPersonne)
devrait être
if (i==nbPersonne)
=> double égal pour une comparaison, le simple est pour une affectation

ensuite, ta méthode Ajouterpersonne fait partie de la classe Agendan donc tu dois faire quelque chose comme


Agenda agenda = new Agenda(*****);
Personne p = new Personne(****);
agenda.ajouterPersonne(p);
dali2000
Niveau 2
07 décembre 2017 à 23:06:44

(i==nbrpersonne) merci admg mais ici lerreur persiste avec noveau message (Unreachable code)

admg
Niveau 9
07 décembre 2017 à 23:10:00

ça pourrait être à cause de ça :


if(tab[i].getNom().toLowerCase()==nom.toLowerCase());
{System.out.println(tab[i]);
break;
}

tu as un point virgule après ton if, donc c'est considéré comme une instruction, ensuite tu arrives à "break" et donc la suite du code n'est pas exécutée, d'où le "unreachable code"

dali2000
Niveau 2
12 décembre 2017 à 01:27:34

Bonsoir admg merci pr vos reponses ,ce morceau de code ne veus pas marcher meme exemple audessus
public void MofifierPersonne(Personne p)
{
boolean found = false;
for( int i=0;i<nbrpersonne;i++)
{
if(tab[i].getNom()==p.getNom()) {
tab[i].setPrenom(p.getPrenom());
tab[i].setNaissance(p.getNaissance());
tab[i].setTel(p.getTel());
found = true;
break;

if (found) AjouterPersonne( Personne p);
}}

1
Sujet : java besoin d'aide
   Retour haut de page
Consulter la version web de cette page