
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