Problem en java

Résolu/Fermé
Mr alaa Messages postés 23 Date d'inscription vendredi 28 mars 2008 Statut Membre Dernière intervention 21 avril 2009 - 28 mars 2008 à 00:42
 LaMarmotte - 15 mai 2008 à 19:07
Bonjour,
svp j'ai un devoire en java que je doit remettre la semaine prochaine mais il est tres dificile pour un debutant je ne sais pas quoi faire si vous pouvez m'aide je serais ravie et merci d'avance
le voila:Devoir N° 1
1ère partie : Spécification d'une classe simple : la classe
"Compte Bancaire"
Objectif
L'objectif de cette partie du TD est de s'exercer à la spécification et à la programmation de classes
élémentaires. En particulier, il s'agit à partir d'un énoncé d'identifier et de définir les
caractéristiques d'une classe modélisant un concept donné.
1. "Cahier des charges"
Il s'agit de définir une classe JAVA permettant de modéliser des comptes bancaires. Cette classe
(Compte) doit permettre à une application de créer et utiliser autant de comptes bancaires que
nécessaires, chaque compte étant un objet, instance (ou exemplaire) de la classe Compte.
Un compte bancaire est identifié par un numéro de compte. Ce numéro de compte est un entier
positif permettant de désigner et distinguer sans ambiguïté possible chaque compte géré par
l'établissement bancaire. Chaque compte possède donc un numéro unique. Ce numéro est attribué
par la banque à l'ouverture du compte et ne peut être modifié par la suite. Dans un souci de
simplicité (qui ne traduit pas la réalité) on adoptera la politique suivante pour l'attribution des
numéros de compte : les comptes sont numérotés de 1 à n, n étant le nombre de comptes qui ont
été créés. Lorsqu’un nouveau compte est créé, le numéro qui lui est attribué est n+1.
Un compte est associé à une personne (civile ou morale) titulaire du compte, cette personne étant
décrite par son (nom, prénom). Une fois le compte créé, le titulaire du compte ne peut plus être
modifié.
La somme d'argent disponible sur un compte est exprimée en dh. Cette somme est désignée sous
le terme de solde du compte. Ce solde est un nombre décimal qui peut être positif, nul ou négatif.
Le solde d'un compte peut être éventuellement (et temporairement) être négatif. Dans ce cas, on
dit que le compte est à découvert. Le découvert d'un compte est nul si le solde du compte est
positif ou nul, il est égal à la valeur absolue du solde si ce dernier est négatif.
En aucun cas le solde d'un compte ne peut être inférieur à une valeur fixée pour ce compte. Cette
valeur est définie comme étant - (moins) le découvert maximal autorisé pour ce compte. Par
exemple pour un compte dont le découvert maximal autorisé est 2000 dh, le solde ne pourra pas
être inférieur à -2000 dh. Le découvert maximal autorisé peut varier d'un compte à un autre, il est
fixé arbitrairement par la banque à la création du compte et peut être ensuite révisé selon les
modifications des revenus du titulaire du compte.
Créditer un compte consiste à ajouter un montant positif au solde du compte.
Débiter un compte consiste à retirer un montant positif au solde du compte. Le solde résultant ne
doit en aucun cas être inférieur au découvert maximal autorisé pour ce compte.
Lors d'une opération de retrait, un compte ne peut être débité d'un montant supérieur à une valeur
désignée sous le terme de débit maximal autorisé. Comme le découvert maximal autorisé, le débit
maximal autorisé peut varier d'un compte à un autre et est fixé arbitrairement par la banque à la
création du compte. Il peut être ensuite révisé selon les modifications des revenus du titulaire du
compte.
Effectuer un virement consiste à débiter un compte au profit d'un autre compte qui sera crédité du
montant du débit.
Lors de la création d'un compte seul le nom du titulaire du compte est indispensable. En l'absence
de dépôt initial le solde est fixé à 0. Les valeurs par défaut pour le découvert maximal autorisé et
le débit maximal autorisé sont respectivement de 800dh et 1000 dh. Il est éventuellement possible
d'attribuer d'autres valeurs à ces caractéristiques du compte lors de sa création.
Toutes les informations concernant un compte peuvent être consultées : numéro du compte, nom
du titulaire, montant du découvert maximal autorisé, montant du débit maximal autorisé, situation
du compte (est-il à découvert ?), montant du débit autorisé (fonction du solde courant et du débit
maximal autorisé).
2. Travail demandé
1. A partir du "cahier des charges" précédent élaborer une spécification d'une classe Java
modélisant un compte bancaire. Il s'agira en analysant le texte ci-dessus de : - définir les
attributs (variables d'instance, variables de classe) de la classe Compte, - d'identifier les
méthodes publiques proposées par la classe Compte. Pour chaque méthode on prendra soin, outre
la définition de sa signature, de spécifier son comportement sous la forme d'un commentaire
documentant. - de proposer un ou plusieurs constructeurs pour la classe Compte. Là aussi on
complétera la donnée de la signature de chaque constructeur avec un commentaire documentant
détaillant son utilisation.
2. Réaliser une implémentation en langage Java de la classe précédemment spécifiée.
3. Ecrire un programme de test permettant de :
Créer un compte c1, au (prénom, nom) de J. DUPONT avec un solde initial de 1 000 dh
Créer un compte c2, au (prénom, nom) de C. DURANT avec un solde initial de 50 000 dh, un
débit maximal autorisé de 6000dh et un découvert maximal autorisé de 5000 dh.
D'afficher les caractéristiques des comptes c1 et c2 (c'est à dire les informations suivantes :
numéro du compte, nom du titulaire, découvert maximal autorisé, débit maximal autorisé, solde
du compte et si le compte est à découvert un message le signalant explicitement).
Retirer 300dh du compte c1.
Retirer 600dh du compte c2.
Déposer 500dh sur le compte c1.
D'afficher les caractéristiques des comptes c1 et c2.
Virer 1000dh du compte c2 vers le compte c1.
D'afficher les caractéristiques des comptes c1 et c2.
A voir également:

7 réponses

Et voici la réponse à ton problème :
/**
 * Cette classe représente un compte client
 */
public class Compte {
    //Attributs de la classe
    /** numéro de compte */
    private int numeroDeCompte;
    /** Nom du client */
    private String nom;
    /** Prenom du client */
    private String prenom;
    /** solde restant */
    private float solde = 0;
    /** plafond de découvert, 2000 par défaut */
    public float decouvertMax = 800;
    /** débit maximal autorisé */
    public float debitMax = 1000;

    //Constructeurs
    /**
     * Constructeur minimal de l'objet compte, les paramètres suivants sont necéssaires pour obliger
     * la présences de ces infos à l'ouverture d'un nouveau compte
     * Ces informations sont ensuite déclaré private pour qu'on ne puisse pas les modifier. C'est pour cela que
     * l'on crée des accesseurs (getXXX).
     * @param numero # de compte
     * @param nom Nom du client
     * @param prenom Prenom du client
     */
    public Compte(int numero, String nom, String prenom) {
        this.numeroDeCompte = numero;
        this.nom = nom;
        this.prenom = prenom;
    }

    /**
     * Constructeur permettant d'ajouter le découvert max
     * @param decouvertMax
     */
    public Compte(int numero, String nom, String prenom, float decouvertMax) {
        this(numero, nom, prenom);
        this.decouvertMax = decouvertMax;
    }

    /**
     * @param debitMax Débit maximal autorisé
     */
    public Compte(int numero, String nom, String prenom, float decouvertMax, float debitMax) {
        this(numero, nom, prenom, decouvertMax);
        this.debitMax = debitMax;
    }
    //Accesseur et mutateur
    /** @return Nom du client */
    public String getNom() {
        return nom;
    }

    /** @return Numéro de compte */
    public int getNumeroDeCompte() {
        return numeroDeCompte;
    }

    /**@return Prenom du client */
    public String getPrenom() {
        return prenom;
    }

    /** @return Solde présent sur le compte */
    public float getSolde() {
        return solde;
    }

    /** @return 0 si le compte n'est pas à découvert, la somme dû sinon */
    public float decouvert() {
        if (solde >= 0) {
            return 0;
        } else {
            return -solde;
        }
    }

    /**
     * Permet de retirer de l'argent
     * @param somme Somme à débiter (positif)
     */
    public void debiter(float somme) {
        if (somme >= debitMax || decouvertMax >= decouvert() || somme > 0) {
            return;
        } //On ne fait rien dans ces cas là
        else {
            solde -= somme; //On retire la somme indiqué du solde
        }

    }

    /**
     * Permet d'ajouter de l'argent
     * @param somme
     */
    public void crediter(float somme) {
        if(somme<0)return;
        else solde+=somme;
    }
    /** permet de sortir les informations clients sur la console */
    @Override
    public String toString(){
        String message = "Compte n°"+numeroDeCompte+" appartenant à "+nom+" "+prenom+" \n";//\n permet de passer à la ligne
        message+="Ayant un solde de "+solde+".";
        return message;
    }
    
    //On crée à présent la porte d'entrée du programme
    public static void main(String[] args){
       int i = 0;
        Compte c1 = new Compte(i,"Dupont","Jean");
        c1.crediter(1000);
        i++;
        //ect.....
    }
}
19
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
28 mars 2008 à 00:58
Hello,

Je crois que tu fais fausse route, ici personne ne fera tes exercices à ta place, sinon à quoi il serviraient ;-)
Par contre on es là pour t'aider!

Donc essaie d'abord de faire quelque chose par toi même et si tu as des questions on est là.

Bonne chance.
1
Mr alaa Messages postés 23 Date d'inscription vendredi 28 mars 2008 Statut Membre Dernière intervention 21 avril 2009 8
28 mars 2008 à 01:02
merci mais je ne demade pas a faire mon exercice mais j'arrive pas a le comprendre par ce que c la premiere foie que je voi de tel exercice c tout
0
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
28 mars 2008 à 01:07
Dis nous ce qui te gêne dans cet exercice.
Tu as déjà fait du java? Qu'est ce que tu as déjà vu dans ce langage en cours?
0
carry-happiness Messages postés 5 Date d'inscription mercredi 2 avril 2008 Statut Membre Dernière intervention 5 avril 2008 1
5 avril 2008 à 02:52
meme problem en vb ????????????????????????????
1
Godboss Messages postés 69 Date d'inscription lundi 4 février 2008 Statut Membre Dernière intervention 18 juin 2009 18
28 mars 2008 à 00:54
Ecoute nous ne somme pas là pour te faire ton TP, nous voulons bien t'aider à résoudre un problème ou une partie où tu bloques.
De toutes façon le meilleur moyen d'apprendre à programmer c'est de programmer alors lance toi essaye d'avancer et revient quand tu bloque. Si tu as un problème je veut bien t'aider, ton sujet n'est pas très difficile pour mon niveau.
Les classe à implémenter sont explicitement énoncer ainsi que leurs attributs et leur méthodes
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
surfeur0000 Messages postés 5 Date d'inscription mercredi 26 mars 2008 Statut Membre Dernière intervention 28 mars 2008
28 mars 2008 à 01:03
Bonjour,

g déjà fait projet sous eclipse , si ça te tente , ecris moi sur cette adresse et je te l'envoie : ciao .

PS : jad_surf_6@hotmail.com
0
Le temps que je rédige le programme d'autres personnes ont répondus. Je regrette presque de l'avoir fait parce que c'est vrai qu'il y a comme un air de feignantisme. Passe la réponse à toute ta promo. Je ne répond pas à toi mais à tous ceux qui on le problème.
De formation, je n'ai fait que quelques heures de java, j'ai donc eut à peu près le même problème que toi en TP. Et je me souvient de la ruée aux questions 2 heures avant le partiel m'avait un peu exaspéré : des mecs qui n'avait jamais été en cours /TD me posait des questions genre : "Je ne comprend pas pourquoi tu mets des { et des fois des (...."
Bref, j'espère que tu ne fais pas parti de ceux-là.
0
Mr alaa Messages postés 23 Date d'inscription vendredi 28 mars 2008 Statut Membre Dernière intervention 21 avril 2009 8
29 mars 2008 à 00:17
merciiiiiii infiniment pour ton aide et je suis tres reconnaissant et merci encors une fois pour tes conseils et je vais te demande une faveur si tu veut nous aidee des conseil pour atteindre un bon niveau en programmation comme vous.
0
le solde d'un compte bancaire peut il être 0 après l'ouverture du compte?
0
Oui, le solde est à 0. Lors de la déclaration du champs, je l'ai instancié :
private double solde = 0;
En principe "private double solde;" aurait suffit car les primitifs ( = non objet) sont instanciés avec une valeur de 0.
0