This set of labs should help you firm up your knowledge of Java's array-like containers.
You may do Programming Exercises P7.1-4 for (Level 2.5).
You may add Programming Exercise P7.5 to this for an additional (Level 1).
You may do Programming Exercise P7.6 for (Level 1.5). (Don't forget to add the distance between the last and first points to your perimeter!)
You may blend in Programming Exercise P7.18 for an additional (Level 1). I say 'blend in' since the suggested test cases are different and so you'll need to merge the two sets of tests — draw the rectangle and regular hexagon as well as finding the perimeter and area of the square and pentagon.
You may do Programming Exercise P7.7 for (Level 0.5).
You may do Programming Exercise P7.8 for (Level 1).
You may do Programming Exercise P7.9 for (Level 1).
You may blend in Programming Exercise P7.10 for an additional (Level 1). Just ask the user whether to label all runs or just the longest run before printing your sequence.
You may do Programming Exercise P7.11 for (Level 1). (You are basically assuming that no one ever finishes peeing. And keep printing the layout as new patrons arrive until all stalls are filled.)
You may do Programming Exercise P7.12 for (Level 1.5).
You may do Programming Exercise P7.13 for (Level 1.5).
You may do Programming Exercise P7.14 for (Level 1.5).
I'll even throw in another (Level 1) if you make your board graphical instead of textual.
You may do Programming Exercise P7.15 for (Level 2).
You may do Programming Exercise P7.16 for (Level 2). Make sure you embed appropriate spaces and/or newlines in your String version so that it looks nice and square when printed.
This space reserved to add more labs...maybe...
Your target level for this lab set is (Level 6). Please, choose from the core choices to meet this goal. After you've met it, you may decide to improve the level total by selecting from the boosters below.
On 7.10, rather than making your user read a prompt and answer a question as to whether they want all runs or just the longest run, why not process that silly args array main keeps taking! Processing command-line arguments will give you another (Level 1).
The args array is the user's way to tell you information before you begin to run the program for them. In this case, we could have them pass -a to represent that all runs should be marked or -l to represent that only the longest run should be marked. (That second one is a "dash ell" — not "dash one"! Normally command-line arguments are case sensitive in *nix, but if you like you can make yours case insensitive.) If they give neither option, you can either assume all runs or ask like before. If they give both options, print a warning and then use the most recent setting. (For more on processing command-line arguments, see special topic 11.3 — available on the student site for the book. He holds off until Chapter 11 just because he uses them for file names, but that's silly. You can use command-line arguments for all sorts of information!)
You may combine Programming Exercises P7.15 & P7.16 into a menu-driven program for an additional (Level 1). (That is, one menu option would be to enter values and test their magic-square-ness and the other menu option — besides quitting — would be to create odd-sided magic squares.)
You may write a small (1-3 page) paper describing how and why the algorithm of Programming Exercise P7.16 works for (Level 2). (This booster may be chosen even if you didn't write the code for the exercise!)
You may do Programming Exercise P7.17 for (Level 1).
You may do Programming Exercise P7.19 for (Level 2). (I believe what was meant by 'assume values are pixel positions' is that you should make the lengths of the sticks equal to the values given. Don't worry about scaling the values due to their being too large or small. They're integers and we'll assume they're also non-negative.)
You may do Programming Exercises P7.20 & P7.21 for (Level 3).
You may do Programming Exercise P7.22 for (Level 3).
This space reserved to add more boosters...