|
Trouver une ressource
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
Sujet : besoin d'aide pour mon programme java [ Divers / Débutant(e) ] (pouyoudu17)
Informations & options pour cette discussion
|
mardi 22 mai 2007 à 23:06:24 |
besoin d'aide pour mon programme java

pouyoudu17
|
Bonjour, J'ai fait un programme java pour faire un annuaire mais il y a quelques erreurs.  Par exemple, je ne peux pas modifier le nom de la personne. Lorsque je supprime la base de données, "null" s'inscrit. Est ce que quelqu'un pourrait m'aider ? Voici mon programme : import java.io.Serializable;
public class Article implements Serializable { private static final long serialVersionUID = -7871316436220619545L;
String nom; String prenom; int num_rue; String adresse; int code_postal; String ville; String adresse_mail; int portable; int fixe; int travail; int fax;
public Article(String n, String p, int u, String a, int c, String v, String m, int po, int f, int t, int f2) {nom = n; prenom = p; num_rue = u; adresse = a; code_postal = c; ville = v; adresse_mail = m;portable = po; fixe = f; travail = t; fax = f2;}
public String toString() { return nom+" "+prenom+" "+num_rue+" "+adresse+" "+code_postal+" "+ville+" "+adresse_mail; } } import java.io.*; import java.util.*;
public class Bdd implements Serializable { private static final long serialVersionUID = -2840911939125432267L; Map map; public Bdd() { map = new TreeMap(); // ou HashMap (plus rapide mais clé non triées) } public String toString() { Article unArticle; Set ts = map.keySet(); Iterator it = ts.iterator(); String sBdd = "--------------------------------------------------------------------------------\r\n"; while (it.hasNext()) { unArticle = (Article) map.get(it.next()); sBdd += unArticle + "\r\n"; } sBdd += "--------------------------------------------------------------------------------"; return (sBdd); } public boolean add(Article article) { if (!map.containsKey(article.nom)) { map.put(article.nom, article); return true; } return false; } public Article getArticle(String keys) { Article unArticle = (Article) map.get(keys); if (unArticle == null) unArticle = new Article(keys, "Pas de fiche référencée à ce nom", 0, keys, 0, keys, keys, 0, 0, 0, 0); return unArticle; } public boolean remove(String nom) { if (map.containsKey(nom)) { map.remove(nom); return true; } return false; } public boolean modify (String nom, int id, Object o) { if (map.containsKey(nom)) { Article unArticle = (Article) map.get(nom); map.remove(nom); switch (id) { case 1 : unArticle.nom = (String)o; break; case 2 : unArticle.fixe= ((Integer)o).intValue(); break; default : return false; } map.put(nom,unArticle); return true; } return false; }}public class Test { public static Bdd read() throws IOException, ClassNotFoundException { ObjectInputStream ofR = new ObjectInputStream(new FileInputStream( "Data.dat")); return (Bdd) ofR.readObject(); }
public static void write(Bdd bdd) throws IOException { ObjectOutputStream ofW = new ObjectOutputStream(new FileOutputStream( "Data.dat")); ofW.writeObject(bdd); }
public static void main(String[] args) {String nom; String prenom; int num_rue; String adresse; int code_postal; String ville; String adresse_mail; int portable; int fixe; int travail; int fax; Vector vpers = new Vector(); Bdd bdd = new Bdd(); boolean variable = true; while(true) { try { while (variable = true) { System.out.println("1 : Ajouter article"); System.out.println("2 : Retirer article"); System.out.println("3 : Modifier article"); System.out.println("4 : Afficher la base de donnée"); System.out.println("5 : Afficher un article"); System.out.println("6 : Effacer la base de donnée");
switch (KeyBoard.readChar("1, 2, 3, 4, 5, 6, ? ")) { case '1': nom = KeyBoard.readString("Nom : "); prenom = KeyBoard.readString("Prénom : "); num_rue = KeyBoard.readInt("Numéro de rue : "); adresse = KeyBoard.readString("Adresse : "); code_postal = KeyBoard.readInt("Code postal : "); ville = KeyBoard.readString("Ville : "); adresse_mail = KeyBoard.readString("Adresse mail : "); portable = KeyBoard.readInt("Numéro de téléphone portable : "); fixe = KeyBoard.readInt("Numéro de téléphone domicile : "); travail = KeyBoard.readInt("Numéro de téléphone travail : "); fax = KeyBoard.readInt("Numéro de téléphone fax : "); bdd.add(new Article(nom, prenom, num_rue, adresse, code_postal, ville, adresse_mail, portable, fixe, travail, fax)); write(bdd); // Enregistre la nouvelle fiche break; case '2': nom = KeyBoard.readString("nom de la personne recherchée : "); bdd.remove(nom); System.out.println(bdd.getArticle(nom)); write(bdd); // Enregistre les modifications break; case '3': nom = KeyBoard.readString("nom de la personne recherchée : "); System.out.println(bdd.getArticle(nom)); int champ = KeyBoard.readInt("champ à modifier ?(1 pour nom, 2 pour téléphone fixe) "); switch (champ) { case 1 : nom = KeyBoard.readString("nom : "); bdd.modify(nom, 1, nom); write(bdd); // Enregistre les modifications break; case 2 : fixe = KeyBoard.readInt("fixe : "); bdd.modify(nom, 2, new Integer(fixe)); write(bdd); // Enregistre les modifications break; } break; case '4': System.out.println(bdd); break; case '5': nom = KeyBoard.readString("nom de la personne à chercher : "); System.out.println(vpers); break; case '6': System.out.println("Souhaitez-vous effacer la base de donnée O/N ?"); variable = ! KeyBoard.readOuiNon(); break; default: System.out.println("Entrez un autre choix."); break; } } } catch (IOException e) { System.out.println("Exceptions :" + e); }}}}public class KeyBoard { public static String readString(String prompt) throws IOException { System.out.print(prompt); BufferedReader ligne_in = new BufferedReader(new InputStreamReader( System.in)); String ligne = ligne_in.readLine(); return ligne; } public static int readInt(String prompt) throws IOException { System.out.print(prompt); BufferedReader ligne_in = new BufferedReader(new InputStreamReader( System.in)); int ligne = 0; return ligne; } public static char readChar(String prompt) throws IOException { System.out.print(prompt); BufferedReader ligne_in = new BufferedReader(new InputStreamReader( System.in)); char ligne = ligne_in.readLine().charAt(0); return ligne; } public static boolean readOuiNon(String prompt) throws IOException { System.out.print(prompt); System.out.flush(); return readOuiNon(); } public static boolean readOuiNon() throws IOException { String ch = null; ch = readString(ch); return (ch.equals("o") || ch.equals("O")); } private static void erreurEntree(Exception e, String type_erreur) { System.out.println("Erreur de lecture : " + type_erreur); System.out.println(e); e.printStackTrace(); System.exit(1); }}Merci d'avance...   
|
|
|
|
mercredi 23 mai 2007 à 08:54:16 |
Re : besoin d'aide pour mon programme java

dvoraky
|
Bon désolé, je suis pas un expert. De ce que j'ai vu : - dans une classe quand tu définis des attributs à la classe, tu ne mets ni public, ni private. Je pense (je dis bien je pense) qu'il serait préférable de mettre des private et de créer des accesseurs par la suite sur ces attributs. - tu auras remarqué que tes KeyBoard.readInt n'attende pas que tu saisisses quelque chose au clavier. A mon avis, t'as un problème de tampon. Essai en vidant ton tampon parce que, je pense, que lors de la saisie de oui / non, il n'attend pas et donc dans ch (String ch = null) il reste null. Tu vois ce que je veux dire?
C'est après des heures de codage que j'ai compris pourquoi les mecs de Java ont choisi une tasse de café comme logo!
|
|
|
|
mercredi 23 mai 2007 à 20:25:28 |
Re : besoin d'aide pour mon programme java

pouyoudu17
|
Bonjour,  pour vider mon tampon, faut -il que je rajoute la ligne suivante dans ma classe Bdd simplement ? Bdd.flush(); Merci d'avance. 
|
|
|
|
jeudi 24 mai 2007 à 09:38:39 |
Re : besoin d'aide pour mon programme java

dvoraky
|
Euh... essaie :) Non, mais bon après chaque saisie, je pense qu'il faudrait vider le tampon. Donc dans tes fonctions readString, readInt... Essaie de creuser cette idée là, je ne te garantie pas que c'est une bonne piste, mais bon c'est déjà ca ;) Bonne chance ++
C'est après des heures de codage que j'ai compris pourquoi les mecs de Java ont choisi une tasse de café comme logo!
|
|
|
|
jeudi 24 mai 2007 à 16:37:13 |
Re : besoin d'aide pour mon programme java

pouyoudu17
|
En faite, je ne pense pas qu'il faut vider le tampon dans chaque fonction readString, readInt, ... car sinon java ne pourrait pas retourner ce qui a été saisi au clavier lorsqu'il lira la base de données. Donc, je ne pense pas que ce soit la bonne méthode...
|
|
|
|
jeudi 24 mai 2007 à 16:48:40 |
Re : besoin d'aide pour mon programme java

dvoraky
|
Ben tu mets ce que tu lis dans des variables... je ne sais pas, moi je le voit comme ca. De plus, vu qu'il n'attend pas du tout que tu saisisses quelques choses pour readOuiNon, ben c'est forcément à cause du tampon.
C'est après des heures de codage que j'ai compris pourquoi les mecs de Java ont choisi une tasse de café comme logo!
|
|
|
Cette discussion est classé dans : public, int, string, system, bdd
Répondre à ce message
Sujets en rapport avec ce message
applet print [ par neo1260 ]
Salut, c encore moi avec mon probléme d'applet, j'ai laissé tombé la classe interne mais il me met une erreude compilation au niveau du book.append (p
methode paint appelée mais qui ne peint rien [ par seb87 ]
bonjour, je me bats toujour avec mes images.ma nouvelle question est a propos de la surdefinition de paint.j'ai une image sur laquelle je dessine des
HELP HELP HELP !!!!!!!! [ par poupoule00 ]
Boonjour et merci d'avance de me repondre. J'ai un projet a faire en jCreator qui consiste a entrer une date(jourdelasemaine, numero du jour, mois, an
JTable éditeur de couleur [ par jc_romeo ]
BonjourJe voudrais faire une JTable avec le fait que quand on clique sur une des cases on puisse changer sa couleur de fond.j'ai donc créer la classe:
non-static variable this cannot be referenced from a static context [ par organik ]
Bonjour..j'ai un souci à la compilation d'un programme... j'ai le message d'erreur : "non-static variable this cannot be referenced from a static con
char et if [ par Skyffer3 ]
public class Tableauchar { public static void main(String args[]) { String a = "allo"; int b = a.length(); char[] x = new char[b]; for(int i=0 ; i ch
AIDE sur Connexion BDD MySQL [ par zeldoi5 ]
Bonjour tout le monde!Je sais que le problème dont je vais parler a déjà été traité plusieurs fois... Mais impossible de me connecter à ma base de don
jtable [ par KERKENNAH ]
bonjour;je suis un etudiant et je besoin d'aide a propos de jtable je veux ajouter 2 boutton à mon travail un qui ajoute une ligne dans jtable et l'au
Piles [ par Flooby ]
Bonjour, je suis vraiment debutant en JAVA et j'ai besoin d'aide pour mon cours d'algo car j'ai un exposé a rendre demain.J'aimerai effectuer l'implem
Implementation d'une pile [ par Flooby ]
Bonjour, je suis vraiment debutant en JAVA et j'ai besoin d'aide pour mon cours d'algo car j'ai un exposé a rendre demain.J'aimerai effectuer l'implem
Livres en rapport
|
Téléchargements
Logiciels à télécharger sur le même thème :
|