Decision Control and Loops
with User Interaction
1) Write a Java application
that prompts the user for pairs of inputs of a product number (1-5), and then
an integer quantity of units sold (this is two separate prompts for input
values). You must use a switch statement and a sentinel-controlled loop (i.e. a
loop that stops execution when an out of range value, such as -1, is input).
All 15 items below are for a single purchase. There are five sets of inputs as
follows:
Product 1 1 unit (cost is $2.98
per unit)
Product 2 2 units (cost is
$4.50 per unit)
Product 3 3 units (cost is
$9.98 per unit)
Product 4 4 units (cost is
$4.49 per unit)
Product 5 5 units (cost is
$6.87 per unit)
Your application must calculate
and display the total retail value of all products sold, after all 5 pairs of
inputs are completed. You must also display the total after each new pair of
input values is entered.
(This program was taken from
Exercise 5.17 on page 228 of Deitel & Deitel's "Java How to Program
(Sixth Edition)" (2005 by Pearson Publishing Co.))
2) You may use the Windows
Command Prompt command line interface or any Java IDE you choose to compile and
execute your program.
3) You are to submit the
following deliverables to the Assignment Dropbox in a single Microsoft Word
file: a) A screen snapshot of your Java source code (just the beginning is OK)
as it appears in your IDE (e.g. jGRASP, Net Beans, Eclipse, etc.) or editor
(e.g. a Windows Command Prompt DOS "more" of the .java file's first
screen).
b) A listing of your entire
Java source code in the same Microsoft Word file as item a), and following item
a). You can simply copy and paste the text from your IDE into Word. Be sure to
maintain proper code alignment by using Courier font for this item.
c) A screen snapshot of your
program’s input and output in the same Microsoft Word file, and following item
b). You must include screen snapshots of all inputs and all outputs, not just a
sample.
4) Your instructor may compile
and run your program to verify that it compiles and executes properly.
5) You will be evaluated on (in
order of importance): a) Inclusion of all deliverables in Step #3.
b) Correct execution of your
program.
c) Adequate commenting of your
code.
d) Good programming style (as
specified in the textbook's examples).
e) Neatness in packaging and
labeling of your deliverables.
Deficiencies in any of the above areas are subject to deductions in
each area, based on the severity of the deficiency.
6) Here is some
pseudocode/skeleton Java code for one possible solution to the program to get
you started (this shows procedural code, but an object-oriented solution would
have been better, since Java is a pure object-oriented language):
import
the classes you need
main
declare
productNo and quantity variables
declare
and initialize lineAmount and orderAmount variables
set up
a String for your output via the Scanner class (or you may use the JTextArea
GUI
component – this will require additional research beyond the textbook!)
start
filling the String (or JTextArea) with the headers for Product, Quantity, Line
Cost,
and Total Cost
prompt
the user for the first productNo
while
the productNo is not the sentinel value of -1
get
the quantity
if the
quantity is -1 then exit
switch
on productNo
in
each case, determine the new lineAmount
add
the lineAmount to the orderAmount
add
the new subtotal/order line information to the output String (or JTextArea)
get
the next productNo
output
the total orderAmount
7) Here is an example of what
the beginning of your output might look like after the first product has been
input and the information for the second one is starting to be entered. Note
that this output uses a JTextArea GUI component for easy assembly and output of
multiline text.
It is NOT required that you use
a JTextArea component! You may use the Scanner class if you want.
If you do want to use a
JTextArea component though, you will have to do some research beyond our
textbook. Note that this is a frequent activity you'll find yourself doing
day-to-day in any IT programming job. Not all answers are "right in the
book"! Look at it as a learning opportunity to familiarize yourself with
the Java API.
This
would continue with a quantity of 2 for Product No. 2, then Product 3 with a
quantity of 3, then Product 4 with a quantity of 4, and finally Product 5 with
a quantity of 5.
Therefore the quantity of each
product matches the Product No. And there are 15 total units for order.
Note that there is a single
correct answer for the order total!
8) You must put all your screen snapshots and source code
to a single Microsoft Word file.