Starting from:

$30

BankSys-Interactive Banking System Solved

 The main objective is to implement a functional banking system using the fundamental concepts of object-oriented programming studied in class. In this project, each team is required to develop a console-based banking system, where in the user can perform the following main actions:

•       Withdraw/Deposit cash

•       Display remaining balance

•       Modify PIN code

•       Transfer cash between accounts

Similar to most ATM terminals, the program should intake some input from the user and depending on the user’s action request, it should intereact with the database (in this case, the database.csv file provided) to execute the action. Upon running the program, the screen should provide the following options on display:

Welcome to the Bank of <Your Team NameCard number (6 digits):             As shown above, the name you selected for your team should be displayed in place of <Your Team Name>. At first, the user should be asked to enter his/her card number (we assume it to be a 6-digit number). If the format of the number entered is verified with the database, then the user should be asked to enter the corresponding PIN code (we assume it to be a 4-digit number).   

Welcome to the Bank of <Your Team Name>Card number (6 digits):  581058 PIN code (4 digits): If either the card number or PIN code is incorrect, then the program should display the error and ask the user to enter the number as follows:
 Welcome to the Bank of <Your Team Name> The card number or PIN code is incorrect. Try again!  Card number (6 digits):                                     Once the card number and PIN code match the entry in the database provided, the next screen should display the following options to select from:
 The Bank of <Your Team Name> Select one of the following options:       1.  Withdraw Cash                       2.   Deposit Cash               
3.  Modify PIN Code                    4.   ShowBalance              
5. Transfer Between Accounts   6.   End Session              
                    
In what follows, each of the 6 actions will be discussed in detail:

1. Withdraw Cash: 

If the user selects this option (by entering 1), then the program should display the following:
 The Bank of <Your Team Name>   Current balance:  1,234,567  KZT        
 Enter amount to withdraw: 5000         
                     
The user should see the current amount remaining in the account, followed by the amount to be withdrawn. If the amount requested to be withdrawn exceed the current balance, an approporaite message should be displayed to the user, thus informing and allowing him/her to withdraw a lesser amount. Once the amount is withdrawn, it shold be deducted from the balance and updated in the database. In the above example, if the user withdraws 5,000 KZT, the amount stored in the csv file should be 1,234,567 – 5,000 = 1,229,567 KZT. If the action is successful, you can display something similar to what is shown below, allowing the user to return to the main menu (by typing ‘y’) or end the session (by typing ‘n’):

 The Bank of <Your Team Name> Cash withdrawn successfully!  
 Remaining balance:  1,229,567  KZT Would you like to return to the main menu? (Y/N)      
                     
2. Deposit Cash: 
This action is very similar to withdrawing cash, except that the amount entered by the user should be summed with the current balance in the account and displayed accordingly.

3 Modify PIN: 

The user usually selects this option if he/she wants to activate a new card or change the PIN code of an existing card. Therefore, your program should check the PIN code of the card number provided by the user as input. If the corresponding PIN code is a 4-digit number in the database, it implies that the card is an already active card and the user intends to change the code to a new 4-digit code (probably due to security reasons!). However, if the PIN code in the database is a 4-character code (such as 2a*1, #ssa, 0_2!), it means that the card is new and has to be activated (by changing the 4-character code to a pure 4-digit code) before being used for any transactions.

Once the PIN code is set, the display should have an option for the user to either return to the main menu page or exit.

4.Show Balance: 
If the user opts for this action, the program should display the following information, which shold be retrieved from the database (Assume USD to KZT to USD xchange rate to be 1 USD = 450 KZT):

 

 The Bank of <Your Team Name>   Card owner:  Pete Jones  

       Card number: 581058                                                          
       Current balance in KZT:  1,229,567                                    
       Current balance in USD:  2,732                                             
        Last transaction:  - 5000 KZT                                               
        Would you like to return to the main menu? (Y/N)     
                  
5. Transfer Between Accounts: 

Under this option, the user is required to enter the 6-digit number of the beneficiary’s account and the amount to be transferred as shown below:

The Bank of <Your Team Name>  **Commission for fund transfers over 20,000 KZT is 500 KZT          Beneficiary’s card number:  912510  

 Transfer amount (in KZT): 15000 Conform transfer? (Y/N): Y   Transfer successful!   
  Would you like to return to the main menu? (Y/N)      
                
There are a number of points to be noticed while implementing this option. Firstly, the program should check and verify if the beneficiary’s card number exists in the database or not. If not, it should display the error to the user and ask to re-enter the correct card number. Secondly, the fund transferred should not exceed the current amaount available in the sender’s account. Thirdly, if the fund being transferred is more than 20,000 KZT, the program should automatically deduct 500 KZT from the sender’s account after making the transfer. For instance, the example shown above, no commissionw ill be taken from the sender’s balance as the fund being transferred in exactly 20,000 KZT. Also, keep in mind that if the sender intends to transfer fund more than 20,000 KZT, there should be at least 500 KZT remaining in the sender’s account that will be then reduced for the commission fee. Otherwise, the transcations should be carried out successfully and the user should be informed about it with an appropriate display message on the screen.

Finally, if a transfer is made between cards from two different banks (indicated using the ‘Bank ID field in the csv file), then 200 KZT is deducted from the sender’s account irrespective of the amount being transferred.

6. End Session 
If the user selects this option, the program should show a good bye message and return to the very first screenshot, where a new user has to enter a card number and PIN code to initiate an action

More products