Giter VIP home page Giter VIP logo

Fatma Nadiah Binti Kamarulhayati's Projects

bank-application icon bank-application

A local bank intends to install a new automated teller machine (ATM) to allow users (i.e. bank customers) to perform basic financial transactions. Each user can have only one account at the bank. ATM users should be able to view their account balance, withdraw cash (i.e. take money out of their account), and deposit funds (i.e. place money into an account). The user interface of the ATM contains the following components: a screen that displays messages to the user a keypad that receives numeric input from the user a cash dispenser that dispenses cash to the user a deposit slot that receives deposit envelopes from the user The cash dispenser begins each day loaded with 500 $20 bills. The bank wants you to to develop software to perform the financial transactions initiated by bank customers through the ATM. The bank will integrate the software with the ATM's hardware at a later date. The software should encapsulate the functionality of the hardware devices (e.g. cash dispenser, deposit slot) within software components, but it doesn't need to be concerned with how these devices actually work. The ATM hardware has not yet been developed, so instead of writing your program to run on the ATM, you will develop a first version of the software that will run on a PC. This version should use the monitor to simulate the ATM's screen, and the computer's keyboard to simulate the ATM's keypad. An ATM session consists of authenticating a user (i.e. proving the user's identity) based on an account number and personal identification number (PIN), followed by creating and executing financial transactions. To authenticate a user and perform transactions, the ATM must interact with the bank's account information database. For each bank account, the database stores an account number, a PIN, and a balance indicating the amount of money in the account. We will assume that the bank only plans to build one ATM, so don't worry about multiple ATM's accessing the database at the same time. Yes, we're oversimplifying what the "real world" experience would be like, because we don't have time to build a full application such as would be needed. Upon first approaching the ATM (assuming no one is currently using it), the user should experience the following sequence of events: The screen displays a welcome message and prompts the user to enter an account number The user enters a five digit account number using the keypad The screen prompts the user to enter the PIN associated with the account The user enters a five digit PIN using the keypad If the user enters a valid account number and the correct PIN for that account, the screen displays the main menu If the user enters an invalid account number or PIN, the screen displays an appropriate message and returns to step 1 to restart the authentication process After the ATM authenticates the user, the main menu should contain a numbered option for each of the three types of transactions: balance inquiry (option 1), withdrawal (option 2), and deposit (option 3). The main menu should also contain an option for the user to exit the system (option 4). The user then chooses either to perform a transaction (by entering 1, 2, or 3) or to exit the system (by entering 4). If the user enters 1 to make a balance inquiry, the screen displays the user's account balance. To do so, the ATM must retrieve the balance from the bank's database. The following steps describe the actions that occur when the user enters 2 to withdraw money: The screen displays a menu containing standard withdraw amounts: $20 (option 1), $40 (option 2), $60 (option 3), $100 (option 4), and $200 (option 5). The menu also contains an option to allow the user to cancel the transaction (option 6) The user enters a menu selection using the keypad If the withdraw amount selected is greater than the user's account balance, the screen displays a message stating this and telling the user to choose a smaller amount. The ATM then returns to step 1. If the withdraw amount is less than or equal to the user's account balance, the ATM proceeds to the next step If the user chooses to cancel the transaction, the ATM displays the main menu and waits for user input If the case dispenser contains enough cash to satisfy the request, the ATM proceeds to the next step, otherwise it displays a message telling the user to choose a smaller amount, and then returns to step 1 The ATM debits the withdraw amount from the user's account in the bank's database The cash dispenser dispenses the selected amount of money to the user The screen displays a message reminding the user to take the money If the user chooses option 3 to make a deposit: The screen prompts the user to enter a deposit amount or type 0 (zero) to cancel the transaction The user enters a deposit amount or 0 using the keypad (Note: the keypad does not contain a dollar sign or decimal point, so numbers must be entered as a number of cents, e.g. 125. The ATM then divides this number by 100 to obtain a number representing a dollar amount, e.g. 125/100 = 1.25 If the user specifies a deposit amount, the ATM proceeds to the next step; if the user chooses to cancel the transaction by entering 0, the ATM displays the main menu and waits for user input The screen displays a message telling the user to insert a deposit envelope into the deposit slot If the deposit slot receives an envelope within two minutes, the ATM credits the deposit amount to the user's account in the bank's database (the money is not immediately available for withdrawal and must be verified by the bank staff, any checks in the envelope must clear, and funds transferred from the check writer's account to the member's account) When either of these events occur, the bank appropriately updates the user's balance stored in its database, which occurs independently of the ATM If the deposit slot does not receive an envelope within two minutes, the screen displays a message that the transaction has been canceled due to inactivity, and the ATM displays the main menu and waits for user input After the system executes a transaction, it should return to the main menu so that the user can perform additional transactions. If the user chooses to exit the system, the screen should display a thank you message, then display the welcome message for the next user.

nvm icon nvm

Node Version Manager - POSIX-compliant bash script to manage multiple active node.js versions

puppet-openshift icon puppet-openshift

Simple Puppet module to manage Ansible and the OpenShift Ansible inventory

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.