| 11 samunta, le 9 mar 2008 à 22:38:54Bonjour a tous jai un pb on ma demandé de faire l'exercices suivant je sius nouveau dans ce site je ss débutante je souhaite que vous m'aidié a resoudre ce exercice c urgaent je serrai tres contente merci d'avance
Le compte
Question 1.1: La classe Compte
La première étape est d'écrire une classe Compte. Celle-ci doit contenir deux attributs privés:
son numéro et son solde, ainsi que six méthodes publiques:
void depot(float valeur); /* pour faire un dépôt sur le compte. */
void retrait(float valeur); /* pour faire un retrait sur le compte.*/
float getSolde(); /* pour obtenir la valeur du solde */
void setSolde(float solde); /* pour donner au solde une valeur */
String getNumero() ; /* pour obtenir le numéro de compte */
void setNumero(String numero); /* pour donner au numéro une valeur une fois pour toute */
Le client
Question 2.1: La classe Client
Jusque là, les attributs des objets que nous avons étudiés était des types primitifs (int, float...).
Il est également possible d'utiliser un objet comme attribut d'un autre objet.
Ici, chaque client possède un compte. Chaque objet client doit donc avoir un objet compte comme attribut. Il suffit de le déclarer dans la classe au même titre que n'importe quel autre attribut:
private Compte compte = new Compte();
Vous devez maintenant écrire la classe Client. La classe client doit posséder deux attributs privés:
son nom et son compte. Elle doit également posséder trois méthodes: getNom, qui renvoie le nom du client, creerCompte(String numero, float solde) qui permet d’initialiser un compte, et getSolde qui renvoie le solde du client, depot(float valeur), et retrait( float valeur).
Question 2.2: Le nom du client
Comme vous l'avez remarqué, chaque client possède un attribut nom, une méthode pour renvoyer le nom du client, mais aucun moyen de choisir le nom du client. Pour arranger, nous allons utiliser une méthode qui permettra de choisir un nom une fois pour toute.
Appeler cette méthode setNom(String valeur)
Question 1.2: Pour faire un virement
Jusque là, les fonctions et les méthodes que nous utilisions avaient pour arguments des types primitifs, c'est-à-dire des int, des float... C'est le cas par exemple de la méthode depot que nous avons écrite à la classe précédente. Nous allons maintenant voir qu'il est possible d'utiliser un objet comme argument d'une méthode.
Nous allons ajouter une méthode à la classe Client qui aura pour effet de faire un virement vers un compte d’un autre Client. Cette méthode aura donc deux arguments: la somme à déplacer, et le client destinataire:
void virer(float valeur, Client destinataire)
La banque
Question 3.1: La classe banque
Une banque peut contenir plusieurs clients.
Créez une classe Banque, possédant entre autre les méthodes ajouterClient(string nomDuClient,float soldeInitial),
et afficherBilan() qui affiche un bilan général de tous les clients.
Question 3.2: Un fonctionnement interactif
Pour cela ajouter une classe interactionBanque qui hérite de la classe Banque.
Ajouter à cette dernière une méthode interaction() qui entame un dialogue avec l'utilisateur
pour faire fonctionner la banque. Voici un exemple de dialogue tel qu'il doit apparaître. Les
réponses de l'utilisateur sont précédées par le signe -.
Quelle opération voulez-vous effectuer?
1) Ajouter un client
2) Effectuer une opération sur un client
3) Afficher un bilan général
- 1
Entrez le nom du client:
- M. Foulane
Le client M. Dupont a été créé.
Quelle opération voulez-vous effectuer?
1) Ajouter un client
2) Effectuer une opération sur un client
3) Afficher un bilan général
- 2
Quel client?
1) M. Foulane //afficher les nom des clients
- 1
Quelle operation voulez-vous effectuer sur le client M. Foulane?
1) Afficher le solde
2) Faire un retrait
3) Faire un dépôt
4) Faire un virement
...
Pour mieux structurer votre programme, il vous est conseiller de créer plusieurs méthodes
intermédiaires" pour répondre à cette question. Par exemple, une méthode interactionAjoutClient() pourra s'occuper de demander le nom du nouveau client à l'utilisateur et de l'ajouter et une méthode interactionOperationClient() pourra s'occuper des opérations sur un client, et appeler si besoin est d'autres méthode plus spécifiques. Répondre à samunta | 12 k7fry, le 21 avr 2008 à 01:20:59St smantha voila un code q vz povz l'exploiter pour resoudre ton probleme
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 à k7fry | 21 lili, le 26 nov 2008 à 20:29:44je suis desolée mais j'ai le meme problème que vous et c'est d'une solution que je solicitais. merci Répondre à lili |
|
| 22 schmuck, le 30 nov 2008 à 15:49:43Bnjr j pense ke j px vs aidez,eske ce exercice est en JAVA??si c le cas g la corrigé Répondre à schmuck |
| 23 schmuck, le 30 nov 2008 à 15:53:18Package biputil2;
import java.io.*;
import java.util.*;
public class Client extends Compte implements Serializable{
String nom;
String prenom;
int age;
Compte compte;
/*constructeur*/
public Client(String nom,String prenom,int age,String n2compte,float solde){
super(n2compte,solde);
this.nom=nom;
this.prenom=prenom;
this.age=age;
}
/*get*/
public String getNom(){return nom.toUpperCase();}
public String getPrenom(){return prenom;}
public int getAge(){return age;}
/*set*/
public void setNom(String nom){this.nom=nom;}
public void setPrenom(String prenom){this.prenom=prenom;}
public void setAge(int age){this.age=age;}
/*tostring*/
public String tostring()
{
return "Nom: "+this.getNom()+"\nPrenom: "+this.getPrenom()+"\nAge: "+this.getAge()+"ans"+"\nNum2Compte: "+this.getN2compte()+"\nSolde: "+this.getSolde()+"DHS\n" ;
}
}
//CLASSE COMPTE/
class Compte implements Serializable
{
String n2compte;
float solde;
public Compte(String n2compte,float solde) {
this.n2compte=n2compte;
this.solde=solde;
}
public String getN2compte(){return n2compte;}
public float getSolde(){return solde;}
public void setSode(float solde){this.solde=solde;}
}
//CLASSE DE VERMENT/
class M
{
String nom,prenom,n2compte;//nom,prenom ,num de compte
int age,choix1;//age
float solde,sa;//solde
String n2cr,n2cr1,ok;//num de compte recherché
Client c,c1;
Vector v=new Vector();
Scanner IN=new Scanner(System.in);
//Methode ajouter
public void ajouter(){
c=new Client(nom,prenom,age,n2compte,solde);
try{
System.out.println ("Entrer le Nom du client:");
c.nom=IN.next();
System.out.println ("Entrer le Prenom du client:");
c.prenom=IN.next();
System.out.println ("Entrer l'age du client :");
c.age=IN.nextInt();
System.out.println ("Entrer le numero de compte");
c.n2compte=IN.next();
System.out.println ("Entrer le solde");
System.out.println ("un solde supérieur a 100dh svp");
do{ c.solde=IN.nextFloat();
}
while(c.solde<100);}catch(Exception ex){System.out.println (ex);
}
v.add(c);
}
//methode afficher tout
public void afficher() {
Enumeration E=v.elements();
int j=0;
while(E.hasMoreElements()){
Client c=(Client)E.nextElement();//on read et on stock
j++;
System.out.println ("Client n°:"+j);
System.out.println (c.tostring());
}
}
//Methode de rechercher
public void rechercher() {
boolean trouve=false;
int i;
System.out.println ("Entrer le numero de compte de Client Rechercher");
try{n2cr=IN.next();}catch(Exception e){System.out.println (e.toString());}
for ( i = 0; i<v.size(); i++){
Client c=(Client)v.elementAt(i);
if(n2cr.equals(c.getN2compte())){
System.out.println (c.tostring());
trouve=true;
break;}
}if (trouve==false){
System.out.println ("echec \nnumero de compte est introuvable veuillez resaisie!");}
}
//modifier un compte
public void modifier() {
int i;
boolean trouve=false;
Client c=new Client(nom,prenom,age,n2compte,solde);
System.out.println ("Entrer le numero de compte a modifier");
try{n2cr=IN.next();}catch(Exception e){System.out.println (e);}
for ( i = 0; i<v.size(); i++){
c=(Client)v.elementAt(i);
if(n2cr.equals(c.getN2compte())){
try{
System.out.println ("Entrer le nouveau Nom:");
c.nom=IN.next();
System.out.println ("Entrer le nouveau Prenom");
c.prenom=IN.next();
System.out.println ("Entrer le nouveau l'age:");
do{try{c.age=new Integer (IN.nextInt());}
catch(Exception e1){System.out.println ("Entrer un int et positif et different a 0");}}while(c.age<=0);
c.n2compte=n2cr;
System.out.println ("Entrer le nouveau solde");
do{try{c.solde=new Float(IN.nextFloat());}
catch(Exception e){System.out.println (e);}}while(c.solde<100);
}catch(Exception e){System.out.println (e); }
trouve=true;
break; }
} if(trouve==false){
System.out.println ("echec \nnumero de compte est introuvable veuillez resaisie!");
}
}
//affiche apré virement
public void soldePlus(){
int i;
System.out.println ("Entrer le numero de compte");
try{n2cr=IN.next();}catch(Exception e){System.out.println (e);}
for ( i = 0; i<v.size(); i++){
c=(Client)v.elementAt(i);
if(n2cr.equals(c.getN2compte())){
c=(Client) v.elementAt(i);
System.out.println ("Votre solde actuel est:"+c.getSolde()+"\nCombien voulez vous verser sur votre solde");
do{try{sa=new Float (IN.nextFloat());}catch(Exception e){System.out.println (e);}}
while(sa<0);
solde=sa+c.getSolde();
c.setSode(solde);
System.out.println ("votre nouvel informations");
System.out.println (c.tostring());}
else
System.out.println ("le Client n'existe pas");
}
}
//affiche apré virement
public void soldeMoins() {
int i;
System.out.println ("Entrer le num de compte");
try{n2cr=IN.next();}catch(Exception e){System.out.println (e);}
for ( i = 0; i<v.size(); i++){
c=(Client)v.elementAt(i);
if(n2cr.equals(c.getN2compte())){
c=(Client) v.elementAt(i);
System.out.println ("Votre solde actuel est:"+c.getSolde()+"\nCombien voulez vous tirer");
System.out.println ("veuillez retirer une valeur inferieur ou egale a votre solde");
do{try{sa=new Float (IN.nextFloat());}catch(Exception e){System.out.println (e);}
}while(c.getSolde()<sa);
solde=c.getSolde()-sa;
c.setSode(solde);
System.out.println ("votre nouvel informations");
System.out.println (c.tostring());}
else
System.out.println ("le Client n'existe pas");
}
}
/*
public void virment()
{
System.out.println ("Entrer le numero de compte de Client qui veut passe de l'argent");
try{n2cr=IN.next();}catch(Exception e){System.out.println (e);}
System.out.println ("Entrer le numero de compte de Client qui va recevoir la virement");
try{n2cr1=IN.next();}catch(Exception e){System.out.println (e);}
if((h.containsKey(n2cr)) &&(h.containsKey(n2cr)))
{
c=(Client) h.get(n2cr);
System.out.println ("Votre solde actuel Mr "+c.getNom()+" est:"+c.getSolde()+"\nCombien voulez vous virer");
System.out.println ("une valeur inferieur ou egal a votre solde");
do{
try{sa=new Float (IN.nextFloat());}catch(Exception e){System.out.println (e);}
} while(c.getSolde()<sa);
s=c.getSolde()-sa;
c.setSode(s);
c1=(Client) h.get(n2cr1);
System.out.println ("Votre ancienne solde Mr "+c1.getNom()+" est:"+c1.getSolde()+"\net votre nouveau solde est:");
s=sa+c1.getSolde();
c1.setSode(s);
System.out.println (c1.getSolde());
System.out.println ("Virment complet");
}
else
System.out.println ("Verifiez vous donnée svp");
}
*/
public void supprimer()
{ int i;
System.out.println ("Entrer le numero de compte que vous voulez supprime");
try{n2cr=IN.next();}catch(Exception e){System.out.println (e);}
for ( i = 0; i<v.size(); i++){
c=(Client)v.elementAt(i);
if(n2cr.equals(c.getN2compte()))
{
System.out.println ("voulez vous vraiment supprimer ce compte o/n");
do{
try{ok=IN.next();}catch(Exception e){System.out.println (e);}
if((ok.equals("o")) || (ok.equals("O"))) {
v.remove(i);
System.out.println ("---------suppression complete---------");
}
if((ok.equals("n")) || (ok.equals("N")))
System.out.println ("le compte est n'est pas supprimé");
}while((!ok.equals("o")) && (!ok.equals("O")) &&(!ok.equals("n")) && (!ok.equals("N")));
}
else
System.out.println ("compte a supprimé n'existe pas");
}
}
public void menuP()
{
System.out.println ("~~~~~~~~~~~~~~~~~~~~~Menu~~~~~~~~~~~~~~~~~~~~~~");
System.out.println ("Crée un compte................................1");
System.out.println ("Afficher les comptes..........................2");
System.out.println ("Chercher un compte............................3");
System.out.println ("Modifier un compte............................4");
System.out.println ("Solde.........................................5");
System.out.println ("Supprimer.....................................6");
System.out.println ("Sauvgarder....................................7");
System.out.println ("Quitter.......................................8");
System.out.println ("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
}
public void menuV()
{
do{
System.out.println ("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
System.out.println ("Verser......................................................1");
System.out.println ("Tirer.......................................................2");
System.out.println ("Virment.....................................................3");
System.out.println ("Retourne au menu Principale.................................4");
System.out.println ("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
System.out.println ("votre choix");
try{ choix1=new Integer(IN.nextInt());}catch(Exception e){
System.out.println (e);}
switch(choix1){
case 1: soldePlus();break;
case 2: soldeMoins();break;
// case 3: virment();break;
}
}while(choix1!=4);
}/*
public void save(){
try{
File F=new File("base.xls");
FileWriter Fw=new FileWriter(F);
BufferedWriter Bw=new BufferedWriter(Fw);
Enumeration k=h.keys();
while(k.hasMoreElements()){
String cle;
cle=(String)k.nextElement();//on read et on stock
c=(Client) h.get(cle);
Bw.write(c.tostring());
Bw.write('\n');
}
Bw.close();
} catch (IOException e){System.out.println (e.getMessage());}
}*/
}
//LE MENU:
package biputil2;
import biputil2.Keyboard;
class P
{
public static void main(String [] arg)
{
M t=new M();
while(true){
t.menuP();
int choix=Keyboard.getInt();
switch (choix) {
case 1: t.ajouter(); break;
case 3: t.rechercher(); break;
case 2: t.afficher();break;
case 4: t.modifier(); break;
case 5: t.menuV();break;
case 6: t.supprimer(); break;
// case 7:t.save();break;
case 8: System.out.println ("\n~~~~~~~~~~~~Merci d'utiliser un produit NADIR~~~~~~~~~~~~~");System.exit(0);break;
default :
}}
}
} Répondre à schmuck |
|