Supplemental Projects

Chapter 1

Project S1.1 Modify Program P1.6 (StaircasePrinter) so that it accepts user input of an integer between 1 and 9 and prints that many stairs in the output. If you like, you may reverse the output so the stairs go down and right (instead of up and right).

Chapter 2

Project S2.1 In lab 2 you wrote a program to create a text "cootie" drawing.  For this program, create a graphical cootie. You might want to begin with the FaceComponent and FaceViewer examples in Chapter 2.  Modify the code so it displays a figure with an insect body, head, legs, and so on. (Your artistic ability won't be graded).  The body, head, and eyes should have a fill color of your choice.
View sample drawing.

Chapter 3

Programming Exercise P3.11
Programming Exercise P3.12

Project S3.1 Complete Programming exercise P3.13 and modify it so that RoachSimulation interacts with the user to obtain the number of generations to simulate.


Chapter 4

Programming Exercise P4.13

Project S4.1 Complete Programming Exercise P4.19 and add a tester class that uses a loop to print the Easter Sunday date for every year between 2012 and 2022.


Chapter 5

Project S5.1 Complete Programming Exercise P5.18 and add a tester class that has enough tests to "cover" all the branches in the Line class (See 5.5).

Chapter 6

Programming Exercise P6.8
Programming Exercise P6.10

Project S6.1 Write a Java implementation of the Magpie Fate game

Chapter 7

Programming Exercise P7.9
Programming Exercise P7.12

Project S7.1  Solve the BigInt problem.

Chapter 8

Programming Project 8.2.  There's an error in the book in the table on pg 369.  The correct value for 4 is 01001, and 5 is 01010.  Here is a more detailed explanation of this problem, with a recommended class design and helpful hints.  (You can ignore everything that follows "Generating Java Documentation".)

Project S8.1.   Implement the Rational.java, RationalClient.java classes described in this assignment.   (Don't do the extra credit).

Project S8.2.   Write a program to play Find the Hurkle.

Chapter 9

Programming Exercise P9.12

Project S9.1. Study Worked Example 9.1. Obtain the source code for the Worked Example from the textbook web site. Compile and execute the SequenceDemo application and verify it works correctly.
Write a class PrimeSequence that implements the Sequence interface in the Worked Example. Starting with 2, each call to next() should produce the next prime number, in sequence. Rewrite the SequenceDemo application so that it demonstrates how your PrimeSequence class should be used to list the first fifty prime numbers.
Wtr 2015. Enhance the SequenceDemo application so that it displays the last digit distribution of the first fifty prime numbers.

Project S9.2.. Write a GUI-based program to generate a random password for the user. Model your program after the InvestmentViewer program in the textbook. The GUI should have a label, which shows the generated password, and an Add button, that appends a single random letter to the end of the password each time it is clicked. The password is initially empty.

Project S9.3.   Write a program to allow the user to play the Traffic Jam puzzle. Specifications handout in class.

Chapter 10

Project S10.1. Study "How To 10.1" in the textbook on pages 440 - 444. Download the source code for the solution .
Compile and run it to be sure it works as described in the text.
Enhance the application by providing more question types as described in Programming Exercises P10.3, P10.4, P10.5, P10.6, and P10.9. Be user to take advantage of inheritance and don't rewrite any fields or methods that already exist in the Question class.

Project S10.2. Implement the interactive, graphical Pong game.

Chapters 11 & 12

Programming Exercise P12.8. Here is an example output.

Programming Exercise P12.11.  The instructor has created the GUI that you must use:  ClockView.class
Here is the javadoc:  ClockView.html
Here is a sample driver: ClockDriver.java

Project S11.1. JUnit4 to JUnit3 conversion.


Chapter 13

Programming Projects 13.1 and 13.2 are NOT allowed. You must choose from the following problems.

Programming Exercise P13.9. Take advantage of the hint the author provides. Note this implies your solution is NOT 100% recursive; the word "enumerate" means use a for-loop. So your solution will have a for-loop inside the recursive part of the method. View sample output
The instructor's recursive method is exactly five statements in length.


Programming Exercise P13.14. Write a recursive solution. Read the maze data from a file in the format shown in the problem. Place a capital "O" for the starting location. The filename of the maze data should be read from the command line. View sample maze data.
You should have at least two maze data files, one that CAN be escaped, and one that can not.
Note there is no "extra credit" on this problem.


Project S13.1. A palindromic number reads the same either forwards or backwards. For example, 353, 22, 191, and 72327 are palindromic. 25, 48, and 97 are not. The largest palindromic number made from the product of two 2-digit numbers is 9009 = 91 × 99.
Write a program that computes the largest palindromic number made from the product of two n-digit numbers. The value of n is provided on the command line (not via console input).
Output the two factors and the palindromic number that is their product.
You must use recursion in your program, though you may choose where and how it contributes to the solution.

Chapter 14

Project S14.1  Inventory Report Program


Chapter 15

Programming Projects 15.1, 15.2, and 15.3 are NOT allowed. You must choose from the following problems.

Project S15.1  Polynomial Problem (PDF)

Project S15.2   Traffic Jam Game.  You must use a linked list to represent the game board. 

Under Construction: Treasure Collecting

Chapter 18

Project 18.1 Tips
You only have to do bar charts, not pie charts.
Here's what the screen should look like: View screenshot
View solution demo video.
To write this program consider starting with the FontViewerFrame in section 18.4 in the book and modify it.
You may use the instructor's LabeledBar.java class from this demo: LabeledBarDemo.zip. (If you modify it, add your name in an @author tag and update the @version tag.) Updated LabeledBar.java (passes checkstyle).


Project S18.1   Java Swing card sorter game.



Project S18.2 Create a Graphical User Interface for the Traffic jam problem.
The user clicks on the buttons to make a move.
A popup dialog alerts them when they have won the game.
The display should resemble this screenshot:


Here are the individual images for the buttons: