princesseconfitureaicha
Messages postés13Date d'inscriptionsamedi 23 février 2008StatutMembreDernière intervention 7 juin 2009
-
4 déc. 2008 à 19:36
dvoraky
Messages postés744Date d'inscriptiondimanche 1 avril 2007StatutMembreDernière intervention 9 mai 2010
-
7 déc. 2008 à 18:09
j ai un probléme svp aidez moi ???
voilà l'ennonce de mon exercice:
on se propose de gérer une liste de clients d'une entreprise
ecrire une classe java qui permet de:
remplir une tableau de clients
AFFICHER la liste des clients
Trier le liste de clients
Ajouter un client
Supprimer un client et declarer le reste à gauche
ma solution
CLASS CLIENT
import java.util.Scanner;
public class Client{
static String Nom;
static String Prenom;
static int age;
static int cmpt=0;
static Client []tab=new Client[100];
public Client(String nom, String prenom, int age) {
Nom = nom;
Prenom = prenom;
this.age = age;
}
public Client() {
}
public static void remplir(){
Scanner in=new Scanner(System.in);
char car =' ';
int i=0;
do{
System.out.println("Entrer le nom du client ?");
Nom=in.next();
System.out.println("Entrer le prenom du client ?");
Prenom=in.next();
System.out.println("Entrer l'age du client ?");
age=in.nextInt();
Client c=new Client(Nom,Prenom,age);
tab[i]=new Client(Nom,Prenom,age);
i++;
cmpt++;
System.out.println("voulez vous continuez à saisir ?");
car=in.next().charAt(0);
}while(car!='n' && car!='N');
}
public String toString(){
return "************Client************\rNom Client : "+Nom+"\r Prenom Client : "+Prenom+"\r Age Client : "+age+"\r*******************************";
}
public static void Afficher(){
for (int i = 0; i <cmpt; i++) {
System.out.println(tab[i].toString());
}
}
public static void trier(){
}
public static void AjouterClient(){
Scanner in=new Scanner(System.in);
int i=0;
System.out.println("Entrer le nom du client ?");
Nom=in.next();
System.out.println("Entrer le prenom du client ?");
Prenom=in.next();
System.out.println("Entrer l'age du client ?");
age=in.nextInt();
Client c=new Client(Nom,Prenom,age);
tab[cmpt++]=new Client(Nom,Prenom,age);
System.out.println("votre Client a bien été ajouter Merci !!");
}
bon bréve quand je saisit par exemple 3 clients puis je veux les afficher par la methode afficher il m'affiche le dernier clients que j'ai saisit 3 fois
voilà l execution
********Menu***********
1.Remplir un tableau de clients
2.Afficher la liste des clients
3.Trier la liste des clients
4.Ajouter un client
5.Supprimer un client et décaler le reste à gauche
6.Quitter
******* ******************
entrez votre choix SVP ?
1
Entrer le nom du client ?
moukhliss
Entrer le prenom du client ?
hind
Entrer l'age du client ?
25
voulez vous continuez à saisir ?
o
Entrer le nom du client ?
koufi
Entrer le prenom du client ?
malika
Entrer l'age du client ?
23
voulez vous continuez à saisir ?
n
********Menu***********
1.Remplir un tableau de clients
2.Afficher la liste des clients
3.Trier la liste des clients
4.Ajouter un client
5.Supprimer un client et décaler le reste à gauche
6.Quitter
******* ******************
entrez votre choix SVP ?
2
************Client************
Nom Client : koufi
Prenom Client : malika
Age Client : 23
*******************************
************Client************
Nom Client : koufi
Prenom Client : malika
Age Client : 23
*******************************
********Menu***********
1.Remplir un tableau de clients
2.Afficher la liste des clients
3.Trier la liste des clients
4.Ajouter un client
5.Supprimer un client et décaler le reste à gauche
6.Quitter
******* ******************
entrez votre choix SVP ?
dvoraky
Messages postés744Date d'inscriptiondimanche 1 avril 2007StatutMembreDernière intervention 9 mai 20108 5 déc. 2008 à 10:14
Salut,
Ton programme est mal conçu.
Regarde, un client ne peut avoir la liste des clients, tu es d'accord non? Pourtant tu fais ça. Chaque Client a un tableau de client.
C'est pas bon.
Il te faut faire une autre classe qui elle va contenir tout ce qui est relatif à une liste de client, véritablement quoi.
Un client n'a besoin comme méthode que de son constructeur à 3 attributs et le toString.
Dans la classe ListeClient, il y aura tout ce qui est en rapport avec la liste des clients : remplir, ajouter, enlever, trier, afficher, ...
Pour une liste de client, on ne va pas faire une tableau comme ceci :
Client [] listeClient = ...
On va faire une liste en utilisant les classes de Java prévues à cet effet :
ArrayList<Client> listeClient = new ArrayList<Client>();
Cela veut dire qu'on construit une List mais à l'intérieur, on ne pourra mettre que des objets du type Client.
Pour rajouter un client tu n'as qu'à faire :
listeClient.add(new Client(nom, prenom, age));
De plus, en faisant avec un ArrayList<Client>, ça va te permettre de pouvoir trier facilement.
Déjà, essayes de faire une nouvelle classe ListeClient, ça sera beaucoup mieux
<hr width="100%" size="2" />
C'est après des heures de codage que j'ai compris pourquoi les créateurs de Java ont choisi une tasse de café comme logo...
dvoraky
Messages postés744Date d'inscriptiondimanche 1 avril 2007StatutMembreDernière intervention 9 mai 20108 5 déc. 2008 à 21:34
Pense à marquer le sujet résolu, s'il te plaît
Amuses toi bien,
++
<hr size="2" width="100%" /> C'est après des heures de codage que j'ai compris pourquoi les créateurs de Java ont choisi une tasse de café comme logo...
dvoraky
Messages postés744Date d'inscriptiondimanche 1 avril 2007StatutMembreDernière intervention 9 mai 20108 7 déc. 2008 à 18:09
C'est parfait, tu as très bien compris comment il fallait faire avec ce forum.
Si seulement tout le monde pouvait faire comme toi, ça serait l'idéel
<hr size="2" width="100%" /> C'est après des heures de codage que j'ai compris pourquoi les créateurs de Java ont choisi une tasse de café comme logo...
princesseconfitureaicha
Messages postés13Date d'inscriptionsamedi 23 février 2008StatutMembreDernière intervention 7 juin 2009 5 déc. 2008 à 15:30
merci pour votre aide oui ta raison il faut organisé mon code mais si tu me dis d'utiliser un arraylist c pas convenable si en lisant l enonce en haut ils ont demander de ramplir un tableau (et le but de ce exercice c manipuler les tableaux) c pas logique d 'utiliser les collections n es ce pas
aicha
Vous n’avez pas trouvé la réponse que vous recherchez ?
dvoraky
Messages postés744Date d'inscriptiondimanche 1 avril 2007StatutMembreDernière intervention 9 mai 20108 5 déc. 2008 à 16:19
Ben si, parce que les tableaux... c'est nul.
Les listes, c'est de pur objets Java qui sont prévues pour ça, ça sert à rien de se compliquer la vie avec des tableaux qui sont pas tip top alors qu'il existe des solutions toutes faites qui permettront beaucoup plus de choses (notament le tri de la liste...)
En tout cas, de toute façon, que tu fasses avec un ArrayList ou pas, il te faut faire une autre classe dans la quelle tu vas avoir la listeClients comme je t'ai dis précédemment.
<hr width="100%" size="2" />
C'est après des heures de codage que j'ai compris pourquoi les créateurs de Java ont choisi une tasse de café comme logo...
princesseconfitureaicha
Messages postés13Date d'inscriptionsamedi 23 février 2008StatutMembreDernière intervention 7 juin 2009 5 déc. 2008 à 16:31
oui tu as raison mais c pas moi qui decide je suis obligé de travail avec un tableau c un ordre de mon formateur est ce que tu me comprends je sais que ca sera mieux de travail avec un arrayliste ou un vecteur mais ..
bon voilà j ai un peu améliorer mon code et j'ai réussi tous les mthodes apart le tri malgré que j ai implementer l interface comparable Methode comparto mais quand j execute le tri il me donne un tableau on désordre qui ni suit ni notion tri croissant ni decroissant ???
VOILà MA CLASS CLIENT ::
import
java.util.Arrays;
import
java.util.Comparator;
import
java.util.Scanner;
public
class Client
implementsComparable{String
Nom;String
Prenom;
int age;
int cmpt= 0;Client []
tab=
new Client[100];
public
Client(String nom, String prenom,
int age) {
Nom = nom;
Prenom = prenom;
this .
age = age;}
public
Client() {}
public
void remplir(){Scanner in=
new Scanner(System.
in );
char car =
' ';
int i= 0;
do {System.
out .println(
"Entrer le nom du client ?");
Nom =in.next();System.
out.println(
"Entrer le prenom du client ?");
Prenom= in.next();System.
out .println(
"Entrer l'age du client ?");
age =in.nextInt();Client c=
new Client(
Nom,
Prenom,
age);
tab[i] =
new Client(
Nom,
Prenom,
age);i++;
cmpt++;System.
out .println(
"voulez vous continuez à saisir ?");car = in.next().charAt(0);
dvoraky
Messages postés744Date d'inscriptiondimanche 1 avril 2007StatutMembreDernière intervention 9 mai 20108 5 déc. 2008 à 16:40
Ben même combat.
Sors moi ce tableau de Client de la classe Client, ça n'a rien à faire ici.
Ensuite, dans ton compareTo, je vois que tu as oublié des "c." genre pour le nom et prenom.
Après, je dois avouer que j'ai pas regardé tout le code, mais fait deja ces modif là et on verra après
<hr width="100%" size="2" />
C'est après des heures de codage que j'ai compris pourquoi les créateurs de Java ont choisi une tasse de café comme logo...
dvoraky
Messages postés744Date d'inscriptiondimanche 1 avril 2007StatutMembreDernière intervention 9 mai 20108 5 déc. 2008 à 17:35
Je ne comprends pas... A aucun moment tu compares le client courant et le client suivant (tab[i] et tab[j]) ...
il te faut utiliser le compareTo dans un if
<hr size="2" width="100%" /> C'est après des heures de codage que j'ai compris pourquoi les créateurs de Java ont choisi une tasse de café comme logo...