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: