Project1 - Descrription - Group Project
Project1 - Descrription - Group Project
(Total: 20 Marks)
Project description:
As a programmer, you have been asked to write a Java application, using OOP concepts, for a Bank.
Your main entity is the bank customer (national ID, name, address, email, mobile number…etc) which
has the following characteristics:
v How much the customer should pay in total and monthly which we will
calculate as follow:
▪ Total payable amount = loan + interest
▪ The monthly payment = Total payable amount / number of
months
6. Check an existing loan: print the status and details of the current loan (if exists) on the
screen.
7. Pay for an existing loan: the customer can pay only the monthly amount due of the loan
(if exists) out of his account balance (if the balance is enough to pay the monthly
amount).
You should create a Bank class that contains the static main() method with the following properties:
• It must print a selection screen where the system user can choose the operation, he/she wants to
perform:
1. Create a new account.
2. Deposit an amount on an existing account.
3. Withdrawal an amount from an existing account.
4. Check the current balance of an existing account.
5. Get a new loan on an existing account.
6. Check an existing loan status (the amount, the remaining balance, the monthly
payments, … etc.).
7. Pay for the monthly payment for an existing loan.
8. Exit.
• When the system user choses an operation he would like to perform he will be asked for the
appropriate information (such as the account number). The system should continue running until
the user provide the selection of exit function (i.e. the choice 8).
• For example, the main screen should look something like this:
• The user must be able to create several customer accounts at one session and they must be stored
in a Vector collection object. The account number should be created automatically sequentially
for every new account (e.g. using static data member that is incremented with the creation of
every new customer account)
• The customer can’t have more than one running loan at the same time.
• The system should print a suitable success or error message with each operation.
• Put all related classes and interfaces inside the same Java package called bank.
• Try as much as possible to assign the data members (attributes, properties, fields) of each class as
private and the class methods as public.
• Each class (apart from the main class) must override the method toString() from the root Object
class.
Project deliverables:
• You will need to create all the needed Java classes with all the required information.
• Your design of the classes and their relationships to each other is the main point you will be
evaluated at.
• You have to apply the necessary OOP (Object Oriented Programming) concepts that we have covered
in this module (i.e. inheritance, polymorphism, interface and collections)
• Include a text file (call it as names.txt) that includes the names of the participating students, their
student numbers, group numbers and email addresses (in English).
• Include a Microsoft Word document FILE (name it as project1_report.doc) that includes several
Screenshots of your Netbeans IDE application output screenshot results. Add screenshots of the
folder and files structures of the Netbeans project. Provide all assumptions that you have made
during design and implementation.
• Include the whole Netbeans Java project FOLDER with all source codes. Write as much comments as
possible to document all your source codes.