retour vers la page d'accueil

STS IG 2 - année 2002/2003
TD n°7 : Programmation objet
éléments de correction

Énoncés - Température - Porte-monnaie

Sujet 2 - Porte monnaie électronique Retour en haut de page

Cl_PorteMonnaie
est une classe
          prive
            Montant est un réel
            CodeSecret est une chaine de 20 car
            PorteMonnaieActif est un booléen

          public
            constructeur Creer

            propriété Solde est un réel
               lecture Montant
            fonction InitCodeSecret (E: Code est une chaine de 20 car) renvoie un booléen
            fonction ChangerCode (E: AncienCode, NouveauCode sont des chaines de 20 car) renvoie un booléen
            fonction Payer (E: Code est une chaine de 20 car, Prix est un réel) renvoie un booléen
            procedure Remplir (E: MontantApporté est un réel positif)
    fin classe

fonction ValidationCode retourne un booléen
  (E: CodeTest est une chaine de 20 car)
DONNEE
  Resultat est un booléen
début
  Resultat <-- VRAI
  si (LongueurChaine (CodeTest) < 4) alors
    Resultat <-- FAUX
  sinon
    pour IndexCar <-- 1 à LongueurChaine (CodeTest) faire
      si PAS (((CodeTest[IndexCar] >= "a") ET (CodeTest[IndexCar] <= "z")) OU
          ((CodeTest[IndexCar] >= "A") ET (CodeTest[IndexCar] <= "Z")) OU
          ((CodeTest[IndexCar] >= "0") ET (CodeTest[IndexCar] <= "9"))) alors
        Resultat <-- FAUX
      fin si
    fin pour
  fin si
  retourner Resultat
fin

constructeur Cl_PorteMonnaie.Creer
début
  Creer hérité
  Montant <-- 0
  MotPasse <-- ""
  PorteMonnaieActif <-- FAUX
fin

fonction Cl_PorteMonnaie.InitCodeSecret renvoie un booléen
  (E: Code est une chaine de 20 car)
début
  si PAS PorteMonnaieActif alors
    si ValidationCode (Code) alors
      MotPasse <-- Code
      PorteMonnaieActif <-- VRAI
    sinon
      retourner FAUX
    fin si
  sinon
    retourner FAUX
  fin si
fin

fonction Cl_PorteMonnaie.ChangerCode renvoie un booléen
  (E: AncienCode, NouveauCode sont des chaines de 20 car)
début
  si (PorteMonnaieActif ET (MotPasse = AncienCode)) alors
    MotPasse <-- NouveauCode
    retourner VRAI
  sinon
    retourner FAUX
  fin si
fin

fonction Cl_PorteMonnaie.Payer renvoie un booléen
  (E: Code est une chaine de 20 car, Prix est un réel)
début
  si (PorteMonnaieActif ET (MotPasse = Code) ET Montant >= Prix) alors
    Montant <-- Montant - Prix
    retourner VRAI
  sinon
    retourner FAUX
  fin si
fin

procedure Cl_PorteMonnaie.Remplir (E: MontantApporté est un réel positif)
début
  si (MontantApporte > 0) alors
    Montant <-- Montant + MontantApporte
  fin si
fin


Auteur : Jean HENRI - septembre 2002 - copyright SeieS