Question: Requirements The features described below must be in your program. A total of four classes: the driver, Bill, BillingItem, and BillingSubItem. Bill class: o Must

Requirements
The features described below must be in your program.
A total of four classes: the driver, Bill, BillingItem, and BillingSubItem.
Bill class:
o Must have 4 fields:
1. An ArrayList which holds BillingItems, called items
2. A static integer called nextId, initialized at 0
3. An integer called id
4. A static double called taxPercentage, initialized at 0
o It must only feature the default constructor, which initializes the arraylist, sets id
with the value of nextId, and then increments nextId by 1.
o It must feature the following methods:
1. setTax(), which is static, takes in a double, and returns nothing. The double
in the parameter updates taxPercentage only if the parameter is greater
than or equal to 0. Otherwise, this method does nothing.
2. A getter for taxPercentage, which is static.
3. addItem(), which takes in a BillingItem and returns nothing. It adds said
item to items.
4. removeItem(), which takes in a BillingItem and returns nothing. It removes
said item from items.
5. getItem(), which takes in an integer and returns a BillingItem. If the integer
in the parameter is within the bound of items, getItem() returns the item in
that position. Otherwise, return null.
6. seeItems(), which takes in nothing and returns a string. If items is empty,
this method returns an empty string. Otherwise, it will return a list of all the
items in items in the following format:
POSITION. ITEM-DESCRIPTION: $ITEM-AMOUNT
e.g.: The bill below with 3 items, when calling seeItems(), would return the
following string:
0. Item 1: $100.00
1. Item 4: $30.00
2. Item 5: $120.00
7. calculateSubTotal(), which takes in nothing and returns a double. This
method adds the amount of all BillingItems stored inside of items and then
returns this summation.
8. calculateTotal(), which takes in nothing and returns a double. This method
adds the amount of all BillingItems stored inside of items and then returns
this summation multiplied by the tax percentage.
NOTE: The tax percentage is stored as a percentage (e.g.: 10 for
10%). This means you will have to convert it to the appropriate
decimal number before you can use it to calculate your total. In the
example above, if taxPercentage is 10, then you would multiply your
subtotal by 1.1 to get the total.
9. An override of toString(). This override must contain the following
information:
The Bills id, in its own line
Every BillingItem in the Bill (which you can retrieve by calling every
BillingItems toString()), each in its own line
The subtotal, in its own line
The total, in its own line

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Programming Questions!