Question
Create Java program to simulate an ATM at a bank using JavaFx -Use JAVA programming language. - Use multiple Objects with inheritance and/or polymorphism. -Use
Create Java program to simulate an ATM at a bank using JavaFx
-Use JAVA programming language.
- Use multiple Objects with inheritance and/or polymorphism.
-Use file input and output.
-Use a graphical user interface that refreshes when necessary.
The Bank ATM should open in a single window that is exactly of the screen width and height. It should contain a menu bar at the top of the window that allows access to various ATM system functions. The program should only ever exit using the menu bar. The ATM must ask for an ATM Card (a number as input) and an ATM Pin (a number as input) that corresponds to that ATM Card. The ATM must assure proper access (login) before proceeding to the corresponding account information. If a customer is not already in the ATM system they should be able to create an account with a new ATM Card and ATM Pin. The program must display at least 3 basic functions (withdrawal, deposit, get balance, etc) once a customer is logged-in. A function can be selected by either clicking on the function specific button or accessing the function from the menu items. When a function is selected, the program should look-up the account information from an account history file and update the file based on the function performed. Overall, there is no limit to the number of transactions that can take place during one session of use. Also, there are two withdrawal limits for any account: 1. No more than $1000.00 and 2. No more than 70% of the account balance. At any time the customer can exit the system and be assured of a successful log-out of the system.
User Interface Requirements:
A single JavaFX Stage window with menu bar functionality
The main stage should only close by choosing file->close
The Menu bar should include at least:
-File
-Options
-Help Buttons that allow functionality for:
--Login/Logout
--Withdrawal (Quick, or specified amount)
--Deposit
--Get Balance
--Create New Account
--Change Pin
--Transfer Funds
Requires two ATM Cards and ATM Pins
Print Receipt (Print to File not a printer)
View Transaction History
All of the above functions should be available from user interface buttons as well (not all on the screen at once)
A status bar to show the current transactional history for the current session
A label box above the status bar to show the current account number and current balance that updates as transactions occur
The main GUI should not be re-sizeable.
All items should contain a text-tooltip that describes the item.
Operational Requirements: There must be an entire Bank history file to track all accounts and number of transactions (Bank.txt)
The entire bank file should be formatted in the following way: ATM Card#<>ATM Pin<< comma >>number of all transactions
There must be an account history file for each created account (acct###.txt)
The individual account files should be formatted in the following way: ATM Card#<>ATM Pin#<> Balance<>Transaction
All account data should be looked-up from the corresponding account file
There should be protection to ensure enough funds are always available to perform a Withdrawal.
After all session transactions (a logout action) the system should provide a receipt (print to a file) to the user.
This should be an output file named receipt-MM-DD-YY.txt It should be saved to the folder where the program is running.
The contents of the receipt must include but not limited to:
-The date
-The ATM card(s) # that preformed the action
-Only the last 3 digits are visible (XXXXXXXX123)
-The action (withdraw\deposit\transfer)
-The current balance
No JAVA threads are necessary.
Bank ATM must contain at least one exception handler.
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started