Program Specifications Write a SelfPayKiosk class to support basic operations such as scan item, cancel transaction, checkout, and make payment. SelfPayKiosk.java is provided with method stubs. Follow each step to gradually complete all methods.
Note: This program is designed for incremental development. Complete each step and submit for grading before starting the next step. Only a portion of tests pass after each step but confirm progress. The main() method in LabProgram.java includes basic method calls. Add statements in main() as methods are completed to support development mode testing.
Step 0. Declare private fields for number of customers served (int), total sales (double), and current amount due (double). Note the provided final variable for sales tax of 7%.
Step 1 (1 pts). 1) Complete the constructor to initialize all private fields to zero. 2) Complete the accessor methods to return the number of customers served, total sales, and current amount due. Submit for grading to confirm 1 test passes.
Step 2 (2 pt). Complete the scanItem() method. Increase the amount due by parameter price. Do not update amount due if parameter price is negative. Submit for grading to confirm 3 tests pass.
Step 3 (1 pt). Complete the checkOut() method. Multiply amount due by SALES_TAX and add to amount due. Submit for grading to confirm 4 tests pass.
Step 4 (2 pts). Complete the makePayment() method. If parameter payment is enough to pay the amount due, increase total sales by amount due, increment number of customers served, and reset amount due to zero in preparation for the next customer. However, if parameter payment is not enough, update total sales by payment and reduce amount due by payment. Do not make any changes if parameter payment is negative. Submit for grading to confirm 6 tests pass.
Step 5 (1 pt). 1) Complete the resetKiosk() method to reset all private fields to zero. 2) Complete the cancelTransaction() method to reset amount due to zero. Submit for grading to confirm 7 tests pass.
Step 6 (2 pts). Complete the simulateSales() method to perform multiple transactions with increasing prices. Use a loop to simulate parameter numSales transactions. Within the loop, call scanItem() with parameter initialPrice. Call checkOut() and makePayment() to make a payment of $1 more than the amount due. Finally, increase the item price by parameter incrPrice in preparation for the next transaction. Submit for grading to confirm 8 tests pass.
Step 7 (1 pt). Add a boolean private field to indicate if the customer has checked out and is ready to make a payment. Only allow payment after customer has checked out. The cancelTransaction() method should not reset amount due if the customer has checked out. Update the following methods by inserting assignment statements and if statements related to the boolean filed: constructor, checkOut(), makePayment(), and cancelTransaction(). Ex: Set the boolean field to false only after full payment has been made. Submit for grading to confirm all tests pass.
Delivering a high-quality product at a reasonable price is not enough anymore.
That’s why we have developed 5 beneficial guarantees that will make your experience with our service enjoyable, easy, and safe.
You have to be 100% sure of the quality of your product to give a money-back guarantee. This describes us perfectly. Make sure that this guarantee is totally transparent.Read more
Each paper is composed from scratch, according to your instructions. It is then checked by our plagiarism-detection software. There is no gap where plagiarism could squeeze in.Read more
Thanks to our free revisions, there is no way for you to be unsatisfied. We will work on your paper until you are completely happy with the result.Read more
Your email is safe, as we store it according to international data protection rules. Your bank details are secure, as we use only reliable payment systems.Read more
By sending us your money, you buy the service we provide. Check out our terms and conditions if you prefer business talks to be laid out in official language.Read more