[Tutor] Simple bank account oriented object

Marco Rompré marcodrompre at gmail.com
Mon Apr 5 22:31:30 CEST 2010


Hi im doin a programmin course at university and in one on my exercise i
have to do that

I had to define a class CompteBancaire(CompteBancaire is bankaccount in
french), that would allow me to create objects Compte1, Compte2,etc.

     The following methods need to be defined
      - depot(somme)         would allow me to add cash to my account
balance
      - retrait(somme)        would allow me to withdraw some cash from my
account
      - ajouterInterest()      would allow me to add interest
      - affiche()                 would allow me to display the account
owner and his account balance

the retrait(somme) method is not supposed to let the account balance being
negative.



3.2

Create a sub-class to CompteBancaire and name it  CompteEtudiant. Each
CompteEtudiant (student account) should have a $1000CAD credit line. Write a
builder or constructor for this new class. Surcharge the retrait(somme)
method to make sure that the student can withdraw to their limit.
Test the class

Here's my code for now this is 3.1and 3.2 in the same code

Please help me i think im on the right track but i need some guidance in the
dark. lol

Thank you tutors


#Exercice 3,2 - Gestion d'un compte bancaire pour étudiant avec marge de
crédit disponible de 1000$CDN

class CompteBancaire:
    "définition d'un compte bancaire"

    def __init__(self,nom,solde,interet):       #Nous allons instancier et
initialiser les objets à la classe
        self.nom, self.solde, self.interet = nom,solde,interet

    def depot(self,somme=0):                    #Méthode pour additionner
les dépôts au compte
        self.solde=self.solde+somme

    def retrait(self,somme=0):                  #Méthode pour soustraire les
retraits au compte
        if self.nom == 'Sandon':
            if self.solde-somme<0:
                print "Les fonds sont insuffisants. Essayez un autre montant
pour votre retrait!"
            else:
                self.solde=self.solde-somme

        elif self.nom =='Étudiant':             #Vérifie s'il s'agit d'un
compte étudiant
            if self.solde - somme < -self.margeCre:      # Vérifie si le
retrait dépasse la marge de crédit maximum
                print "Désolé, votre retrait dépasse la marge de crédit
autorisé"
            else:                               # sinon déuit le montant
retirer de la marge de crédit
                self.margeCre = self.solde - somme
                self.solde = 0

    def calculInteret(self,calculInteret=0):     #Méthode qui calcule les
intérêts et le solde résiduel
        self.interet=self.solde*calculInteret/100
        self.solde=(self.solde*calculInteret/100)+self.solde

    def affiche_solde(self):                    #Méthode qui affiche le
solde et le montant d'intérêt accumulé
        print "Le solde du compte bancaire de %s est de %d $CAD"
%(self.nom,self.solde)
        print "Vous avez récolté %d $CDN en intérêt"%(self.interet)
#
######################
# création de la gestion d'un compte étudiant autorisant une marge de crédit
de (1 000$)

class CompteEtudiant(CompteBancaire):
    "définition du compte bancaire pour étudiant dérivé du compte bancaire
standard"
    def __init__(self, nom='', solde=0, margeCre=0):
        CompteBancaire.__init__(self, nom='Nom', solde=0, interet=0)
        self.nom, self.solde, self.margeCre = nom, solde, margeCre

    def affiche_solde(self, somme=0):           #Méthode constructeur qui
redéfini la fonction affiche_solde pour le compte étudiant
        print "%s--Votre solde bancaire est de %d $CAD"
%(self.nom,self.solde)
        print "Le solde de votre marge de crédit est de %d $CAD"
%(self.margeCre)

##############################################################
#jeux d'essai avec des valeurs fictives
if __name__=='__main__':        #Référence au corps principal du programme.
    compte1 = CompteBancaire('Sandon',800,0)    #Essai avec un solde de
800$, un retrait de 1200$ et des intérêts de 10%
    compte1.depot(0)
    compte1.retrait(1200)
    compte1.calculInteret(10)
    compte1.affiche_solde()
    compte2 = CompteEtudiant('Étudiant',800,1000)
    compte2.retrait(1100)
    compte2.affiche_solde()
############################################################


On Wed, Mar 31, 2010 at 4:39 PM, Lie Ryan <lie.1296 at gmail.com> wrote:

On 04/01/2010 12:35 AM, Marco Rompré wrote:
> > what's wrong in this code??? if I want it to do what i describe in my
> > message.
>
> What happens when you run it? You did not even write that in your
> message. And please reply-all to the list.
>

When I run it,  it gives me this:

>>>
Les fonds sont insuffisants. Essayez un autre montant pour votre retrait!
(Try to witthdraw 1200 with a balance of 880$) This is good!
Le solde du compte bancaire de Sandon est de 880 $CAD (This is fine too)
Vous avez récolté 80 $CDN en intérêt (This too)
Étudiant--Votre solde bancaire est de 0 $CAD (Trying to withdraw 1100$ with
a cash balance of 800 plus a credit line of 1000$)
Le solde de votre marge de crédit est de -300 $CAD (It would be supposed to
say that my credit line balance is 700= 1000-300 knowing that this 300 was
the amount missing from mu cash balance)

Would you please help me???

Ocram the newbie
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/tutor/attachments/20100405/051cc093/attachment-0001.html>


More information about the Tutor mailing list