a. A demonstration that you understand the problem. (You may attempt this part of the assignment multiple times. You should, but are not required to, earn a grade of 100% before proceeding.)
b. A demonstration that you understand Java well enough to complete the assignment. (You may attempt this part of the assignment multiple times. You should, but are not required to, earn a grade of 100% before proceeding.)
c. A utility class that that can be used to calculate the raw score and the total score for a dive based on the scores given by individual judges.
d. The main class for a prototype that demonstrates the capabilities of the system.
pa6
) that
will hold all of the files for this assignment.
You must download the following .class
files:
and read and understand the documentation (especially about the "Fields", "Constructors" and "Methods") describing these classes:
You must also download the following bitmap image files
(in .png
format):
Finally, before doing anything else, you should read the requirements/design
documents for the ScoreCalculator
and ArchRival
classes so that you understand the problem.
Text
class for this assignment
(or, indeed, any longer in this course). The Text
class
was created just for this course to make things more convenient
for the early assignments. You must, instead, use "standard" Java classes.
For this assignment, you might find the
Double.parseDouble(java.lang.String)
and
Integer.parseInt(java.lang.String)
methods
useful.
In particular, there are many different ways to implement the
ScoreCalculator
class, and the most obvious approach
(i.e., the approach that most people think about first) is probably
not the best. Indeed, it is very likely that the approach you think
of first will seem easy at the beginning but will be very difficult
to complete. So, before you start "typing", try to come up with
multiple solutions and then choose the one you think is best.
ScoreCalculator
class you must submit it using
Web-CAT (and the Blackboard attestation process). Then, after you
complete the ArchRival
class you must submit it (along
with the ScoreCalculator
class) using Web-CAT (and the
Blackboard attestation process).
ScoreCalculator
class and your
ArchRival
class independently.
ScoreCalculator
class. However, to reduce the burden
on the Web-CAT server, you should test your implementation using
PA6cTestSuite.jar.
As before, you will need to copy junit.jar
to the working directory for this assignment.
(PA6cTestSuite.jar
uses the exact same tests cases
as Web-CAT. So, if your code passes these tests it will pass the Web-CAT
tests.)
ArchRival
class to
make sure that it is correct. In particular, you should ensure that your
ArchRival
class constructs exactly two ScoreBoard
objects. (An implementation that constructs fewer or more than two
ScoreBoard
objects will be given a grade of 0.)
Then, you must test your ArchRival
class "by hand".
Test 1 is a simple test in which there are two divers at each meet, both of whom perform one dive. The user input for test 1 is (where the last "N" is omitted so that the program does not terminate):
JMU Flintstone Wilma 1 3 0 B 5.5 5.0 6.0 6.5 6.0 6.5 5.0 Y JMU Rubble Betty 4 5 0 B 4.5 4.5 4.5 5.0 5.5 5.0 5.0 Y Stanford Moose Bullwinkle 1 4 0 B 3.0 2.5 2.0 3.5 Y Stanford Squirrel Rocky 4 2 0 C 8.0 9.0 8.5 8.5
Note that token 0 of the description of the dive corresponds to the group and token 3 of the description of the dive corresponds to the position. For example, Wilma Flintstone's dive has a group of "1" (which is Dive.FORWARD) and a position of "B" (which is Dive.PIKE). So, you needn't do anything to convert the group or position.
The correct output for this test is:
Test 2 is a slightly more complicated test in which there are two divers at each meet, but now one diver at each meet performs one dive and the other performs two dives. The user input for test 2 is:
JMU Flintstone Wilma 1 3 0 B 5.5 5.0 6.0 6.5 6.0 6.5 5.0 Y JMU Rubble Betty 4 5 0 B 4.5 4.5 4.5 5.0 5.5 5.0 5.0 Y Stanford Moose Bullwinkle 1 4 0 B 3.0 2.5 2.0 3.5 Y Stanford Squirrel Rocky 4 2 0 C 8.0 9.0 8.5 8.5 Y JMU Flintstone Wilma 1 1 2 A 8.5 8.0 8.0 8.5 8.0 8.5 9.0 Y Stanford Squirrel Rocky 3 5 5 B 9.5 9.5 9.0 9.5
The correct output for this test is:
Test 3 is a slightly more complicated test in which there are are a different number of divers at the two meets, and the different divers perform different numbers of dives in different orders. The user input for test 3 is:
JMU Flintstone Wilma 1 3 0 B 5.5 5.0 6.0 6.5 6.0 6.5 5.0 Y JMU Rubble Betty 4 5 0 B 4.5 4.5 4.5 5.0 5.5 5.0 5.0 Y Stanford Moose Bullwinkle 1 4 0 B 3.0 2.5 2.0 3.5 Y Stanford Squirrel Rocky 4 2 0 C 8.0 9.0 8.5 8.5 Y JMU Flintstone Wilma 1 1 2 A 8.5 8.0 8.0 8.5 8.0 8.5 9.0 Y Stanford Squirrel Rocky 3 5 5 B 9.5 9.5 9.0 9.5 Y Stanford Badenov Boris 2 5 1 B 3.5 2.0 2.5 1.0 Y Stanford Fatale Natasha 3 4 0 C 4.0 4.0 4.0 4.0 Y JMU Rubble Betty 4 7 0 B 4.5 4.5 4.5 4.5 4.5 4.5 4.5 Y JMU Flintstone Pebbles 1 1 0 C 8.0 8.0 8.0 8.0 8.0 8.5 8.5
The correct output for this test is:
After testing your implementation by hand,
to reduce the burden
on the Web-CAT server, you should test your implementation using
PA6dTestSuite.jar.
As before, you will need to copy junit.jar
to the working directory for this assignment.
(PA6dTestSuite.jar
uses the exact same tests cases
as Web-CAT. So, if you code passes these tests it will pass the Web-CAT
tests.) You will also need to download the following files
(which contain test 3 and a textual description of the expected results)
to your working directory.
Copyright 2013