KioskeaKioskeaCommentCaMarcheInscrivez-vous, c'est gratuit !
Mardi 20 mai 2008 - 21:39:24

Pb exercice Java (poo)

Rechercher : dans
Pb exercice Java (poo)
par mido-mido-mido
 Fil de Discussions
Statut : Non résolu
mercredi 24 octobre 2007 à 09:58:43
Bonjour,
Je suis encore débutante en Java et je dois faire un exercice que je ne comprends pas trop: je vous communique l'exercice et mon travail (meme si j'ai pas fait grand chose et j'espère que vous allez m'aider pour le reste) et merci d'avance
Exercice
voici le programme source de la classe Livre:

Public class Livre
{
//données membres
private String titre, auteur;
private int nbPages;

//Constructeur
public Livre (String unAuteur, String unTitre)
{
auteur= unAuteur;
titre=unTitre;
}

//accesseur
public String getAuteur()
{return auteur;}

//modificateur
public void setNbPages (int nb)
{nbPages=nb;}}

Manipulation1
Ajouter une méthode main()pour:
*creer deux livres,
*afficher les auteurs de ces deux livres.

Maniupulation2
Modifier la classe Livre:
*Ajouter un accesseur (guetteur)pour la variable titre et la variable nbPages
*Ajouter un modificateur pour les variables auteur et titre
*changer le modificateur de nbPages: il ne doit changer le nombre de pages que si on lui passe en parametre un nombre positif,sinon il affche un message d'erreur.
Dans la methode main():
*definissez un nombre de pages pour chacun des deux livres,
*afficher ces nombres de pages
*Calculer le nombre de pages total de ces deux livres et affichez-le

Manipulation3
*ecrivez une classe TestLivre avec une seule méthode main() qui fait la meme chose que la methode main() de la classe Livre
*compiler et executer la methode main() de la classe TestLivre?

Manipulation4 methode toString()
*dans la classe Live, ajouter une methode afficheToi() qui affiche les informations concernant un livre(auteur,titre et nombre de pages).Utilisez la méthode afficheToi() dans la methode main() e testLivre.
*Ajouter l'instruction Ssytem.out.println(livre) où lel ivre désigne un des livres que vous avez crée, que se passe t'il?
*Ajouter une methode toString() qui renvoie une chaine d carateres decrivant le livre .que fait alors l'instruction Systeme .out.println(livre?).

Manipulation5:les constructeurs
Ajouter trois constructeurs dans la classe Livre:
1.sans aucun parametre donné
2.pour un auteur et un titre donne
2.pour un auteur,un titre et un nombre de pages données
utilisez ces trois constructeurs(et eventuellement d'autre methodes)pour creer trois livres de 300pages dans la methode main() de TestLivre

Manipulation6:Controle des variables private par les modificateurs
1.Ajouter un primaux livres avec 2méthodes getPrix et setPrix pour obtenir le prix et le midifier.Ajouter au moins un contructeur qui prend le prix en parametre.si le prix d'un livre n'a pas ete fixé, la description du livre(to string())devra indiquer "prix pas encore fixé".Attention, un livre peut etre gratuit.
2.On bloque completement le prix:un prix ne peut etre saisie qu'une seule fois et ne peutetre modifie ensuite(une tentative de modifier le prix ne fait quafficher un message d'erreur).
reecrivez la methde setPrix(et autres coses si besoin est).Ajoutez une methode "isPrixFixe" qui renvoie vrai si le prix a deja éte fixé.Faut'il ecrire une methode "setPrixFixe" pour modifier la variable booleenne ?

Mon travail:

class Livre
{
//données membres
private String titre, auteur;
private int nbPages;

//Constructeur
public Livre (String unAuteur, String unTitre)
{
auteur= unAuteur;
titre=unTitre;
}

//accesseur
public String getAuteur()
{return auteur;}

//modificateur
public void setNbPages (int nb)
{
if (nb>0)
nbPages=nb;
else
System.out.println("erreur");
}

//creation de deux livres et affichages de leurs auteurs
public static void main (String[]args)
{
//creation des deux livres
Livre Livre1=new Livre("auteur","titre");
Livre Livre2=new Livre("auteur","titre");
//Affichage des auteurs des deux nouveaux livres
System.out.println(Livre1.auteur);
System.out.println(Livre2.auteur);
}
//Accesseur pour la variable Livre
public String get Livre()
{
return Livre;
}
//Accesseur pour la variable NbPage
public int get NbPages()
{
return NbPages;
}
//Setteur pour la variable auteur
String set auteur (String A)
{
Auteur=A;
}
}
Configuration: Windows XP
Internet Explorer 7.0
Répondre à mido-mido-mido  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par c-moi, le mercredi 24 octobre 2007 à 11:20:18 Fil de Discussions
Bonjour,

Dans ton main, je te conseille de créer des "Livre" avec un nom d'auteur et de titre différent.

Qui aurait l'idée de s'appeler "auteur" et de nommer son livre "titre" ? Tu peux mettre "toto" en auteur et "Toto au Pérou" en titre par exemple ;-)

Est ce que c'est ton premier langage de programmation ? Il faut bien faire attention à la notion de variable et de donnée membre.

Regarde l'accesseur pour l'auteur :

 public String getAuteur()
{return auteur;} 


Ici, "auteur" correspond à la donnée membre de l'objet dont la méthode "getAuteur()" est appelée. Typiquement, on ne peut pas accéder directement au contenu de "auteur" (regarde le "private" dans la déclaration de ta classe).

Ainsi, tu ne peux pas écrire "Livre1.auteur" car ce n'est pas une donnée publique. C'est pour cela que tu dois appeler l'accesseur "getAuteur".

Concernant les accesseurs que tu as écris...
Un accesseur permet comme son nom l'indique d'accéder à une donnée membre.

 public String get Livre()
{
return Livre;
}


"Livre" correspond à quelle donnée ? Je ne vois pas de membre "Livre" dans la classe "Livre" ^^

//Accesseur pour la variable NbPage
public int get NbPages()
{
return NbPages;
}


NbPages n'est pas une données membre.
nbPages
oui :)
Il faut faire attention aux espace : pas d'espace dans un nom, vu que c'est un séparateur pour le compilo :p


//Setteur pour la variable auteur
String set auteur (String A)
{
Auteur=A;
} 


Pareil pour le coup de la majuscule et de l'espace.


Une question pour toi : étant donnée un objet "livre1" de type "Livre" et une méthode "getAuteur()" sais tu comment appeler cette méthode par rapport à l'objet "livre1" ?

(Quand je dis objet, je parle d'instance de la classe Livre)

Bon apprentissage,

c-moi
Répondre à c-moi

2


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par mido-mido-mido, le mercredi 24 octobre 2007 à 15:35:56 Fil de Discussions
salut
je rectifie alors mon travail mais svp j'ai pas trop compris ca
public String getAuteur()
{return auteur;}

Ici, "auteur" correspond à la donnée membre de l'objet dont la méthode "getAuteur()" est appelée. Typiquement, on ne peut pas accéder directement au contenu de "auteur" (regarde le "private" dans la déclaration de ta classe).

Ainsi, tu ne peux pas écrire "Livre1.auteur" car ce n'est pas une donnée publique. C'est pour cela que tu dois appeler l'accesseur "getAuteur".

Concernant les accesseurs que tu as écris...
Un accesseur permet comme son nom l'indique d'accéder à une donnée membre.


ca veut dire que je dois afficher les deux auteurs des deux livres que j'ai creer et qui son ali et adrien je fais ca Livre1.Adrien et Livre2.Ali
j'ai changer tout ce qui est en gras dans mon travail et pour le SetAuteur comment faire si on veut changer les deux nom des deux livres.
Merci beaucoup


class Livre
{
//données membres
private String titre, auteur;
private int nbPages;

//Constructeur
public Livre (String unAuteur, String unTitre)
{
auteur= unAuteur;
titre=unTitre;
}

//accesseur
public String getAuteur()
{return auteur;}

//modificateur
public void setNbPages (int nb)
{
if (nb>0)
nbPages=nb;
else
System.out.println("erreur");
}

//creation de deux livres et affichages de leurs auteurs
public static void main (String[]args)
{
//creation des deux livres
Livre Livre1=new Livre("Adrien","la nature");
Livre Livre2=new Livre("Ali","initiation programmation");
//Affichage des auteurs des deux nouveaux livres
System.out.println(Livre1.Adrien);
System.out.println(Livre2.Ali);
}
//Accesseur pour la variable Livre
public String get Livre()
{
return Livre;
}
//Accesseur pour la variable NbPage
public int get NbPages()
{
return NbPages;
}
//Setteur pour la variable auteur
String set Auteur(String A)
{
Auteur=A;
}
}
Répondre à mido-mido-mido

3


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par mido-mido-mido, le mercredi 24 octobre 2007 à 20:20:02 Fil de Discussions
Bonjour,
up
Répondre à mido-mido-mido

4


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par lilidona, le vendredi 7 décembre 2007 à 16:23:15 Fil de Discussions
vous pouvez trouver la correction de la classe Livre dans le lien suivant:http://deptinfo.unice.fr/~grin/mescours/linfo/poo/tp/tp1/index.html
Répondre à lilidona

5


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par shaymouaa, le vendredi 7 mars 2008 à 00:34:44 Fil de Discussions
shui en premiere année "développement informatique", et pour ce qui concerne ta question, g fai quelques pats ds ton programme:

public class livre {
private String auteur, titre;
private int nbpage;
public livre(String auteur,String titre) {
this.auteur=auteur;
this.titre=titre;
}

//constructeur
public livre(int nbpage){
this.nbpage=nbpage;
}
//accesseur
public String getAuteur() {
return auteur;
}
//modificateur
public void setAuteur(String auteur) {
this.auteur = auteur;
}
public String getTitre() {
return titre;
}
public void setTitre(String titre) {
this.titre = titre;
}
//pour la conditon
public void setNbpage(int nbpage) {
if(nbpage>=0){
this.nbpage = nbpage;
}
else{
System.out.println("erreur");
}
}
public int getNbpage() {
return nbpage;
}
}
*************************************************
voilà le main:
import biputil2.*;
public class test_livre {
public static void main(String[] args) {
livre l1=new livre("ali","xx");
livre l2=new livre(24);
l1.setAuteur("ali");
l1.setTitre("xx");
l2.setAuteur("ahmad");
l2.setTitre("yy");
l1.setNbpage(20);
l2.setNbpage(40);

System.out.println(l1.getAuteur()+","+l1.getTitre()+","+l1.getNbpage()­);
System.out.println(l2.getAuteur()+","+l2.getTitre()+","+l2.getNbpage()­);


}
}
****************** vaut mieux créer une autre classe qui s'appelle test_livre par exemple, et tu peux l'executer pour voir les resultas bon courage *****************
Répondre à shaymouaa

6


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par TAWFIK, le mardi 18 mars 2008 à 13:05:01 Fil de Discussions
S.V.P
Je veut une solution pour cette exercice
Gestion d'une liste de client dans une banque

Il est demandé de créer une liste ou vous avez toutes les informations nécessaires concernant des comptes clients dans une banque.
Un client est connu par son :numéro de compte,nom,prénom,adresse,solde et la date de création du compte (jour,mois,année).Le numéro du compte est composé de6 caractéres (ex : CP0001 ).
On veut aussi gérer la liste des operations effectuées sur un compte client.haque opération doit contenir les informations suivantes : la date d'opération, le type d'opération (débiter ou créditer solde ) et le montant (somme d'argent ) de l'opération.
NB :
-Débiter compte : retirer un montant (de l'argent ) de ce compte
-créditer compte : ajouter un montant à ce compte.

Toutes les comptes clients seront stockés dans une liste nommée banque.
Les traitements (fonctions ) qu'il faut faire :
* Créer la liste des comptes (en utilisant une structure banque).
* Ajouter un compte dans la liste des comptes (donnée en paramétre).
* Supprimer un compte de la liste.
* Consulter la liste des comptes.
* Chercher un client par son numéro compte.
* Afficher les informations d'un client.
* Ajouter une opération sur le compte d'un client.
* Afficher la liste des opérations effectuées sur le compte d'un client.
* Toutes autres fonction que vous considérez utiles ...

Il faut toujours donner le choix à l'utilisateur. Ex àtitre d'exemple : création d'un menu
Choisissez le traitement à faire :
1- Ajouter un compte client.
2- Supprimer un compte client.
3- Afficher un ompte client.
4- Afficher la liste des clients.
5- Afficher la liste des clients.
6- Ajouter une opération sur le compte d'un client.
7- Afficher les opérations effectuées sur le compte d'un client.
8- Qutter.

NB :
- Utiliser les classes suivantes : Date,compte_client,Operation,Banque
- Tester le fonctionnement dans une classe nommée TestBanque
- Assurer l'encapsulation des données le maximum que possible.






MERCI
Répondre à TAWFIK

7


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par serin222, le samedi 29 mars 2008 à 17:32:00 Fil de Discussions
salut
Répondre à serin222

8


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par totorekiaa, le lundi 31 mars 2008 à 14:55:22 Fil de Discussions
bonjour


c v
.
Répondre à totorekiaa

9


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par Raph707, le mercredi 9 avril 2008 à 20:15:14 Fil de Discussions
Par ici, un site qui peut t'aider :

http://www.debutantprogjava.com/
Répondre à Raph707

10


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par totorekiaa, le vendredi 11 avril 2008 à 18:28:44 Fil de Discussions
voila c'est mon propre travaille



public class banque {
private String nom;
private String prenom;
private String adresse;
private String date;
private String nomnumero_compte;
private double solde;
private banque suiv;
public banque()//constructeur par default
{nom=ali;
prenom=bouba;
adresse=gafsa 2100;
date=01janvier2006;
numreo_compte=cp0001;
solde=70000;
suiv=null;
}
public void setnom(String x){nom=x;}//fonction d'alteration
public void setprenom(String y){prenom=y;}
public void setadresse(String z){adresse=z;}
public void setnumero_compte(String t){String numero_compte = t;}
public void setdate(String k){date=k;}
public void setsolde(double s){solde=s;}
public void setsuiv(String ls){suiv=ls;}
public String getnom(){return nom;}
public String getprenom(){return prenom;}
public String getadresse(){return adresse;}
public String getnumero_compte(){String numero_compte;
return numero_compte;}
public String getdate(){return date;}
public double getsolde(){return solde;}
public banque getsuiv(){return suiv;}
}
public class Date()//class date
{
private int jour;
private int mois;
private int annee;
public Date(int j,int m,int a){this.jour=j;this.mois=m;this.annee=a;}
}
public class compte_client()
{private banque tete;
public compte_client(){tete=null;}
public void ajoute(String x,String y,String z,String t,double s,String k )
{banque ls=new banque();
ls.setnom(x);
ls.setprenom(y);
ls.setadresse(z);
ls.setnumero_compte(t);
ls.setsolde(s);
ls.setdate(k);
ls.setsuiv(ls);
tete=ls;
}
public void affich()
{banque ls;
for(ls=tete;ls!=null;ls=ls.getsuiv())
System.out.println("le compte numero:"+ls.getnumero_compte()+"c'est pour monsieur ou madame:"+ls.getnom()+ls.getprenom()+"qui habite dans"+ls.getadresse()+"et leurs dates de creation est:"+ls.getdate()+"et leurs solde est:"+ls.getsolde());
}
public banque recherche (String k)
{banque ls;
for(ls=tete;ls!=null&&ls.getnumero_compte()!=k;ls=ls.getsuiv());
return ls;}
public void supprimer(String k)
{banque p=recherche(k);
if(p!=null){banque ls=tete;while (ls.getsuiv()!=p) ls=ls.getsuiv();
ls.setsuiv(p.getsuiv());
}
else
System.out.println("suppression impossible");
}
}
public class operation
{
private String date_operation;
private String type_operation;
private double montant_operation;
public operation(){this.date_operation=this.date;
this.type_operation=debiter;
this.montant_operation=0;}
public void setdate_operation(daet d){date_operation=d;}
public void settype_operation(String b){type_operation=b;}
public void setmontant_operation(double h){montant_operation=h;}
public void getdate_operation(){return date_operation;}
public void gettype_operation(){return type_operation;}
public void getmontant_operation(){return montant_operation;}
}
public void ajout_operation(banque ls,String t,double h,Srting date)
{if((t==debiter)&&(ls.getsolde()>ls.getmontant()))
{ls.setsolde(ls.getsolde()-ls.getmontant());
System.out.println(+ls.getnom()+"a retirer "+ls.getmontant()+"de la compte de"+ls.getnom()+""+ls.getprenom()+"et cette operation a ete effectuée au"+ls.getdate_operation());}
else if(t==crediter)
{ls.setsolde(ls.getsolde()+ls.getmontant());
System.out.println("ajouter"+ls.getmontant()+"au faveur de "+ls.getnom()+""+ls.getprenom()+"et cette operation a ete effectuée le"+ls.getdate_operation());
}
else
System.out.println("type d'operation non valide");
}
}
public class testbanque
{
public static void main(String args[])
{do
System.out.println("donner le jour de creation du compte");
j=Clavier.lireInt();
System.out.println("donner le mois de ceration du compte");
m=Clavier.lireInt();
System.out.println("donner l'annee de ceration du compte");
a=Clavier.lireInt();
}
while((a%4!=0&&m==2&&j==29)//((m==4)//(m==6)//(m==9)//(m==11)&& j=31)//(j<1)//(j>31)//(m<1)//(m>12));
System.out.println("donner le nom du client");
x=Clavier.lireint();
System.out.println("donner son prenom");
y=Clavier.lireInt();
System.out.println("donner son adresse");
z=Clavier.lireInt();
do{System.out.println("donner le numero du compte et il ne faut pas trouver deux comptes au plus ayant le meme numero ");
t=Clavier.lireInt();}while (numrero_compte.length<0&&numero_compte.length>6);
}
}
Répondre à totorekiaa

11


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par moheddine_mansouri_i3_fsg, le vendredi 11 avril 2008 à 18:49:10 Fil de Discussions
bonne sewar à tous vous
s'il vous pelais aider moi s'il vous pelais je suis tres pauvre
je suis ton frère
Répondre à moheddine_mansouri_i3_fsg

12


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par zgouda, le vendredi 11 avril 2008 à 21:50:46 Fil de Discussions
st monsieur le pauvre ici c'est un forum pr aider les gens qui sont bloqués dans leurs prg aller cherche une societe qui aide les aveugles et les pauvres com toi monsieur en t cas voila 1 euro achete toi du pain et de fromage
Répondre à zgouda

13


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par zgouda, le vendredi 11 avril 2008 à 21:56:26 Fil de Discussions
st MANSOURI MOHEDDINE sil vous plait echki el rabbi ya bouhali wella zeda enta theb negravoulek l'internet fi cd ,chacun pr soi dieu pr tout monsieur le pauvre!!!!!!!! cherche un autre cite pr te regoler espece de !!!!!!!mais merde
vraiment te ne me laisse ps le choix vz etes malade montale ::::!!!!! pour l'amour de dieu casse toi d'ici!!!
Répondre à zgouda

14


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par moheddine_mansouri_i3_fsg, le vendredi 11 avril 2008 à 21:58:41 Fil de Discussions
JE SUIS UN TRES TRISTESSE MESSIER ZGOUDA
TON PAROLE MA FAIT MAL A MA VIE
MOI JE SUIS TRES BON ET JE CHERCHE UNE FEMME POUR ALLER A LA FRANCE ET FAIRE LE PAPIER ET PUIS JE SAUVE A ITALIE C4EST MON BUT DON LA VIE
Répondre à moheddine_mansouri_i3_fsg

16


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par zgouda, le vendredi 11 avril 2008 à 22:06:37 Fil de Discussions
si tu veus tu peus ensuite il ne reste pas des pommes dans la vie qui tombent amoureux d' es le premier regard en + si tu crois que t'set un homme !!!! c'est incroyable moi je ne crois pas monsieur ,s'il vous plais quelle langue parle tu mais bezarre j'espere bien que ton reve se realise,,,?????,HA HA HA HA HA HA ?????
Répondre à zgouda

15


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par moheddine_mansouri_i3_fsg, le vendredi 11 avril 2008 à 22:06:00 Fil de Discussions
J'AI 24 ANS J'HABITE A METLAOUI MAIS JE VEUT HABITE A FRANCA CAR ELLE EST MIEUX
ET DE PLUS A LA FRANCA JE PEUT GAGIER BEUCUOP DES PAIN
CAR JE SUIS TRES FIN MAINTENANT ET TU NE SAIS PAS COMMENT
JE SUIS UN TRES JOLIE GARCON
CONTACTER MOI LES FILLE DE LA FRANCA
BEAUCOUP BEAUCOUP TRES VITE ...
Répondre à moheddine_mansouri_i3_fsg

17


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par zgouda, le vendredi 11 avril 2008 à 22:23:34 Fil de Discussions
st mon amour je suis une jolie fille j'habite a paris (a coute de la toureffel) je t'aime moheddine mon amour je suis tres riche et j'ai beaucoup d'argent mon petit viens dans mes bras coco et ne regretera jamais tu sera plus riche et plus famous que billgates en + je te donne de l'argent pr acheter du pain et des légumes???
je vous dis pr la derniere fois que si tu continu les injures et les paroles insignif tu sera automatiquement rejeter par la fenetre ???? oui tu te crois sur mirka ou sur perfspot merde que dieu te ??????
espece de salope
Répondre à zgouda

18


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par moheddine_mansouri_i3_fsg, le vendredi 11 avril 2008 à 22:52:43 Fil de Discussions
ya zegouda ma 3adech tgolli bouheli rani machini bouheli
cherrrrrrrr
Répondre à moheddine_mansouri_i3_fsg

19


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par moheddine_mansouri_i3_fsg, le vendredi 11 avril 2008 à 22:56:04 Fil de Discussions