Giter VIP home page Giter VIP logo

guichet's Introduction

Bank Cashing System Simulator (FRENCH ONLY)

Simulates simple banking transactions with authentication and verifications to ensure the app does not crash.

Objectives


  • Créer et utiliser des classes et des sous-formulaires.
  • Redéfinir la méthode ToString d’un objet.
  • Utiliser des types par énumération.
  • Lancer des Exceptions
  • Valider des données et utiliser le contrôle ErrorProvider
  • Afficher des objets dans une ListView.
  • Manipuler des dates de type DateTime.

Description


Simuler l’utilisation d’un guichet automatique. Un client peut se connecter avec son numéro et son mot de passe. Il peut retirer de l’argent si son solde le permet. L’administrateur du guichet peut visualiser la liste des clients ou la liste des transactions effectuées sur le guichet.

INTERFACE


Voici un exemple où le numéro de client était valide et donc a pu se connecter:

Classes


Le programme utilise plusieurs classes pour le fonctionnement. Voici le diagramme de chaque classe:

Authentication


// Messages d'erreur
errIdentification.SetError(txtMotDePasse, "");
errIdentification.SetError(txtNumClient, "");

// Vérifier si les champs du Form ne sont pas vides.

if (m_objClientCourant != null)
{
    // Déconnexion
    PermettreUneConnexion(true);
    EnregistrerLaTransaction(SorteTransactions.Déconnexion, 0);
    m_objClientCourant = null;

}
else
{
    // Connexion
    
    // Rechercher le client dans la base de données
    m_objClientCourant = RechercherClient(txtNumClient.Text);

    // Checker si l'utilisateur à été trouvé
    if (m_objClientCourant != null)
    {

        // Checker si son mot de passe est correct
        if (txtMotDePasse.Text == m_objClientCourant.MotDePasse)
        {
            errIdentification.SetError(txtMotDePasse, ""); // No error
            PermettreUneConnexion(false);

            txtNom.Text = m_objClientCourant.Nom;
            txtSolde.Text = m_objClientCourant.Solde.ToString("C0");
            txtSorteCompte.Text = m_objClientCourant.SorteCompte.ToString();

            cboMontant.SelectedIndex = -1;
            //btnRetirer.Enabled = true;

            EnregistrerLaTransaction(SorteTransactions.Connexion, 0);
        }
        else
        {
            m_objClientCourant = null;
            txtMotDePasse.Clear();
            txtMotDePasse.Focus();
            errIdentification.SetError(txtMotDePasse, ERR_MOT_DE_PASSE);
        }

    }
    // Quoi faire si l'utilisateur n'est pas trouvé
    else 
    {
        errIdentification.SetError(txtNumClient, ERR_NUMERO_CLIENT);
        txtNumClient.Clear();
        txtNumClient.Focus();
    } 
        
}
MettreAJourSelonContexte();

Diagramme:

Permissions du panneau en mode ADMIN


  • Le menu Administrateur/Liste de clients est disponible pour l’administrateur seulement. On affiche la collection des clients dans le sous-formulaire FrmListeClients. Voir la démo.
  • Le menu Administrateur/Liste des transactions est disponible pour l’administrateur seulement. On affiche la collection filtrée des transactions en ordre décroissant de date dans le sous-formulaire FrmListeTransactions.

Retrait d'argent


Ce bouton est disponible si le client peut retirer de l’argent dans son compte. L’administrateur ne peut jamais retirer de l’argent. Lorsqu’il y a un retrait, on enregistre le retrait dans le fichier des transactions : sorte de transaction, date et heure actuelle, numéro du client et montant du retrait. Voici un exemple:

2,102,2010-03-09 14:08:51,25

Remarque:


Même si ce travail émule le fonctionnement d’un guichet automatique, plusieurs éléments ne sont pas réalistes. Par exemple si une panne de courant survenait les soldes des clients seraient à valider, par contre on pourrait utiliser le fichier des transactions pour rétablir la situation. Normalement les mots de passe ne sont pas lisible par l’administrateur, ils sont habituellent encrytés.

guichet's People

Contributors

kenjitagawa avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.