College of Applied Computer Science, King Saud University cos102 Project Simulation of an Automatic Teller Machine (ATM) 1) This is an individual project; you must solve it by yourself. Any form of plagiarism will result in receiving 0 in the project. Program Description The purpose of this project is to design a simulation of an automatic teller machine (ATM). The ATM is used by the customers of the bank branch. Each branch has customers. Each customer also has one account only, a customer name, balance (default value 10000.0), number and a personal identification number (PIN). In a real ATM, the customer number would be recorded on the magnetic strip of the ATM card. In this simulation, the customer will need to type it in. There are three types of customer: - Customer has an open account: can withdraw and deposit any amount of money; and can inquire about the balance - Customer has a limited account: can withdraw maximum 5000 SR per day and deposit any amount of money - Customer has a student account: can withdraw maximum 3000 SR per day Note: In any case you cannot withdraw if the balance less than the amount of withdraw. You must display the following menu to the user: Welcome To ATM System 1. Open a new account with one of the costumer types 2. Exit from ATM System Enter Your Choice: College of Applied Computer Science, King Saud University coS102Project According to customer type show all possible operations 1. Deposit 2. Withdraw 3. Balance 4. Exit to main menu Enter Your Choice: You must have the following in your program: (a) Abstract Customer contains balance, abstract withdraw method and two constructors. (b) Interface FreeDepositAndinquiry contains void method deposit(double) and double getBalance0. (c) Interface LimitedDeposit contains void method deposit(double) class (d) Class CusotmerOpenAcc: is a subclass from Customer implements the interface FreeDepositAndinquiry. This class represents the customer that has an open account. (e) Class CusotmerLimitedAcc: is a subclass from Customer implements the interface LimitedDeposit. This class represents the customer that has a limited account. (f) Class CusotmerStudentAcc: is a subclass from Customer. This class represents the customer that has a student account. (g) The program must provide a way for saving customer and account information and history in text file