Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Specify, design, and implement a class that can be used in a program that simula

ID: 3542780 • Letter: S

Question

Specify, design, and implement a class that can be used in a program that simulates a combination lock. The lock has a circular knob with the numbers 0 through 39 marked on the edge, and it has a three-number combination, which we will call x,y,z.
In order to open the lock, you must turn the knob clockwise at least one entire revolution, stopping with x at the top; then you turn the knob counterclockwise, stopping the "second" time that y appears at the top; finally, you turn the knob clockwise again, stopping the next time that z appears at the top. At this point, you may open the lock.

Your "Lock" class should have a constructor that initializes the 3-number combination

Also, provide the following methods:

a) To alter the lock's combination to a new 3-number combination
b) To turn the knob in a given direction until a specified number appears at the top. (You also must show all of the numbers in the output as the lock is being turned - could use a for loop)
c) To close the lock
d) To attempt to open the lock
e) To inquire about the status of the lock (open or closed)
f) To tell what number is currently at the top.

Write a demo program that uses all of the above methods in JAVA.

Explanation / Answer

That sounds fun.
One method you need (b) might be: void TurnKnob(boolean clockwise, int number)
How about: boolean IsLockOpen() ?
void OpenLock(), void CloseLock() ?

You also have to decide some neat things, like does the lock close if the lock isn't turned first after it was opened?

A final hint, you might want to create an enumeration with the possible combination states, such as: 1) WaitingForFullClockwiseTurn, 2) WaitingForFirstClockwiseNumber, 3) WaitingForSecondCounterClockwiseNumber, 4) WaitingForThirdClockwiseNumber, 5) AtCorrectCombination

Then, when the TurnKnob method is called, you can determine what should be done using a switch statement. For example, if the knob is turned counter-clockwise, then the lock always goes to state WaitingForFullClockwiseTurn (the operator messed things up) UNLESS the lock is currently at state WaitingForSecondCounterClockwiseNumber.

If it's at that state, then one of 3 things happens, 1) went past the number... start over, 2) stopped on the right number... go to the next state, or 3) didn't go far enough, stay in the existing state.

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote