From 38f0a7c67b297499d2aea65eb26d0621ccf62310 Mon Sep 17 00:00:00 2001 From: Manny Date: Thu, 24 Jun 2021 00:17:30 -0400 Subject: [PATCH 1/2] Manny is finally done BlueJ-TicketMachineLab --- README.md | 73 +++++++++++++++++++++++++++++++++++---------------- bluej.pkg | 54 +++++++++++++++++++++++++------------ package.bluej | 54 +++++++++++++++++++++++++------------ 3 files changed, 124 insertions(+), 57 deletions(-) diff --git a/README.md b/README.md index ee11f2c..d5e864c 100644 --- a/README.md +++ b/README.md @@ -18,27 +18,35 @@ Work through all these exercises. You edit this file with your answers for these * Use `getPrice` method to view the value of the price of the tickets that was set when this object was created. * Use `insertMoney` method to simulate inserting an amount of money into the machine. * Use `getBalance` to check that the machine has a record of the amount inserted. - * You can insert several separate amounts of money into the machine, just like you might insert multiple coins or notes into a real machine. Try inserting the exact amount required for a ticket. As this is a simple machine, a ticket will not be issued automatically, so once you have inserted enough money, call the `printTicket` method. A facsimile ticket should be printed in the BlueJ terminal window. + * You can insert several separate amounts of money into the machine, just like you might insert multiple coins or notes into a real machine. Try inserting the exact amount required for a ticket. As this is a simple machine, a ticket will not be issued automatically, so once you have inserted enough money, call the `printTicket` method. A facsimile ticket should be printed in the BlueJ terminal window. ### Exercise 2.2 * What value is returned if you check the machine’s balance after it has printed a ticket? +*** //The value returned after the ticket has been printed is 0 ### Exercise 2.3 * Experiment with inserting different amounts of money before printing tickets. - * Do you notice anything strange about the machine’s behavior? - * What happens if you insert too much money into the machine – do you receive any refund? - * What happens if you do not insert enough and then try to print a ticket? + * Do you notice anything strange about the machine’s behavior? + *** // The machine acts the same no matter the input. + * What happens if you insert too much money into the machine – do you receive any refund? + *** // We do not receive any refund if too much money is inserted into the machine. + * What happens if you do not insert enough and then try to print a ticket? + *** // If we do not instert enough money the ticket prints out with the ticket price and the total amount of money inserted. + *** // the behavior of the ticket machine does not change. ### Exercise 2.4 * Try to obtain a good understanding of a ticket machine’s behavior by interacting with it on the object bench before we start looking at how the `TicketMachine` class is implemented in the next section. ### Exercise 2.5 * Create another ticket machine for tickets of a different price. - * Buy a ticket from that machine. - * Does the printed ticket look different? + * Buy a ticket from that machine. + * Does the printed ticket look different? + *** // It looks the same with the new price and the new total of money insterted. ### Exercise 2.6 * Write out what you think the outer wrappers of the `Student` and `LabClass` classes might look like – do not worry about the inner part. +*** // public class Student {...} +*** // public class LabClass {...} ### Exercise 2.7 Does it matter whether we write
@@ -46,39 +54,48 @@ Does it matter whether we write
or
`class public TicketMachine`
in the outer wrapper of a class? +* // Yes it matters what order it is written. * Edit the source of the `TicketMachine` class to make the change and then close the editor window. - * Do you notice a change in the class diagram? - * What error message do you get when you now press the compile button? - * Do you think this message clearly explains what is wrong? + * Do you notice a change in the class diagram? + *** // Yes, TicketMachine is crossed out with hashes, meaning it cannot be compiled succesfully. + * What error message do you get when you now press the compile button? + *** // the error message says " expected". + * Do you think this message clearly explains what is wrong? + *** // I do not think that this clearly explains what is wrong. ### Exercise 2.8 * Check whether or not it is possible to leave out the word `public` from the outer wrapper of the `TicketMachine` class. +*** // Yes, it is possible. ### Exercise 2.9 * From your earlier experimentation with the ticket machine objects within BlueJ you can probably remember the names of some of the methods – `printTicket`, for instance. - * Look at the class definition in Code 2.1 and use this knowledge, along with the additional information about ordering we have given you, to try to make a list of the names of the fields, constructors, and methods in the `TicketMachine` class. - * Hint: There is only one constructor in the class. + * Look at the class definition in Code 2.1 and use this knowledge, along with the additional information about ordering we have given you, to try to make a list of the names of the fields, constructors, and methods in the `TicketMachine` class. + * Hint: There is only one constructor in the class. + **** // Fields : price, balance, total, ticketNumber + *** // Contructors : TicketMachine() + *** // Methods : getPrice(), getTicketNumber(), getBalance(), insertMoney(), calculateTotal(), incrementTicketNumber(), printTicket() ### Exercise 2.10 * Do you notice any features of the constructor that make it significantly different from the other methods of the class? +* // The name of the constructor is the same as the class. ### Exercise 2.11 * What do you think is the type of each of the following fields? ```java -private int count; -private Student representative; -private Server host; +private int count; // type Integer +private Student representative; // type String or non primitive object +private Server host; // type String or non primitive object ``` ### Exercise 2.12 * What are the names of the following fields? ```java -private boolean alive; -private Person tutor; -private Game game; +private boolean alive; // field name is "alive" +private Person tutor; // field name is "tutor" +private Game game; // field name is "game" ``` ### Exercise 2.13 @@ -87,36 +104,46 @@ In the following field declaration from the TicketMachine class
```java private int price; ``` -does it matter which order the three words appear in? +does it matter which order the three words appear in? // Yes the order matters * Edit the `TicketMachine` class to try different orderings. After each change, close the editor. - * Does the appearance of the class diagram after each change give you a clue as to whether or not other orderings are -possible? - * Check by pressing the compile button to see if there is an error message. - * Make sure that you reinstantiate the original version after your experiments! + * Does the appearance of the class diagram after each change give you a clue as to whether or not other orderings are +possible? +*** // Yes it does, the field "price" needs to have it's "data type" defined first. +*** // It does not allow for compilation since the oder is not formated correctly. side-note; "private" can be removed + * Check by pressing the compile button to see if there is an error message. + * Make sure that you reinstantiate the original version after your experiments! ### Exercise 2.14 -* Is it always necessary to have a semicolon at the end of a field declaration? +* Is it always necessary to have a semicolon at the end of a field declaration? +*** // Yes, semicolons are always necessary, otherwise the code will give an error everytime. +*** // A semicolon at the end of a field declaration tells Java not to add on anything else. * Once again, experiment via the editor. * The rule you will learn here is an important one, so be sure to remember it. ### Exercise 2.15 * Write in full the declaration for a field of type `int` whose name is `status`. +*** // private int status; ### Exercise 2.16 * To what class does the following constructor belong? ``` public Student(String name) ``` +*** // the constructor belongs to the "Student" class. ### Exercise 2.17 * How many parameters does the following constructor have and what are their types? ``` public Book(String title, double price) ``` +*** // The contructor has 2 parameters. +*** // title is a type String, price is a type double. ### Exercise 2.18 * Can you guess what types some of the `Book` class’s fields might be? +*** // Fields: String - Title, double - Price, String - Cover(hardcover/paperback), Integer - Page numbers, String - Genre. * Can you assume anything about the names of its fields? +*** // Yes, you can assume that the names of its fields may relate to the parameters that may be in the contructor. READ upto and INCLUDING section 2.15 of this chapter. diff --git a/bluej.pkg b/bluej.pkg index bf25784..7378d28 100644 --- a/bluej.pkg +++ b/bluej.pkg @@ -1,32 +1,52 @@ #BlueJ package file -editor.fx.0.height=722 -editor.fx.0.width=800 -editor.fx.0.x=709 -editor.fx.0.y=113 +dependency1.from=TicketMachineTest +dependency1.to=TicketMachine +dependency1.type=UsesDependency +editor.fx.0.height=1057 +editor.fx.0.width=1056 +editor.fx.0.x=0 +editor.fx.0.y=23 +editor.fx.1.height=722 +editor.fx.1.width=800 +editor.fx.1.x=1062 +editor.fx.1.y=23 objectbench.height=101 objectbench.width=461 package.divider.horizontal=0.6 package.divider.vertical=0.8007380073800738 package.editor.height=427 -package.editor.width=674 -package.editor.x=1067 -package.editor.y=119 +package.editor.width=682 +package.editor.x=1138 +package.editor.y=94 package.frame.height=600 package.frame.width=800 -package.numDependencies=0 -package.numTargets=1 +package.numDependencies=1 +package.numTargets=3 package.showExtends=true package.showUses=true project.charset=UTF-8 -readme.height=58 +readme.height=60 readme.name=@README -readme.width=47 +readme.width=48 readme.x=10 readme.y=10 -target1.height=50 -target1.name=TicketMachine +target1.height=70 +target1.name=TicketMachineTest target1.showInterface=false -target1.type=ClassTarget -target1.width=120 -target1.x=80 -target1.y=50 +target1.type=UnitTestTargetJunit4 +target1.width=130 +target1.x=200 +target1.y=110 +target2.height=50 +target2.name=TicketMachine +target2.showInterface=false +target2.type=ClassTarget +target2.width=120 +target2.x=80 +target2.y=50 +target3.height=70 +target3.name=README.md +target3.type=TextTarget +target3.width=120 +target3.x=10 +target3.y=110 diff --git a/package.bluej b/package.bluej index bf25784..7378d28 100644 --- a/package.bluej +++ b/package.bluej @@ -1,32 +1,52 @@ #BlueJ package file -editor.fx.0.height=722 -editor.fx.0.width=800 -editor.fx.0.x=709 -editor.fx.0.y=113 +dependency1.from=TicketMachineTest +dependency1.to=TicketMachine +dependency1.type=UsesDependency +editor.fx.0.height=1057 +editor.fx.0.width=1056 +editor.fx.0.x=0 +editor.fx.0.y=23 +editor.fx.1.height=722 +editor.fx.1.width=800 +editor.fx.1.x=1062 +editor.fx.1.y=23 objectbench.height=101 objectbench.width=461 package.divider.horizontal=0.6 package.divider.vertical=0.8007380073800738 package.editor.height=427 -package.editor.width=674 -package.editor.x=1067 -package.editor.y=119 +package.editor.width=682 +package.editor.x=1138 +package.editor.y=94 package.frame.height=600 package.frame.width=800 -package.numDependencies=0 -package.numTargets=1 +package.numDependencies=1 +package.numTargets=3 package.showExtends=true package.showUses=true project.charset=UTF-8 -readme.height=58 +readme.height=60 readme.name=@README -readme.width=47 +readme.width=48 readme.x=10 readme.y=10 -target1.height=50 -target1.name=TicketMachine +target1.height=70 +target1.name=TicketMachineTest target1.showInterface=false -target1.type=ClassTarget -target1.width=120 -target1.x=80 -target1.y=50 +target1.type=UnitTestTargetJunit4 +target1.width=130 +target1.x=200 +target1.y=110 +target2.height=50 +target2.name=TicketMachine +target2.showInterface=false +target2.type=ClassTarget +target2.width=120 +target2.x=80 +target2.y=50 +target3.height=70 +target3.name=README.md +target3.type=TextTarget +target3.width=120 +target3.x=10 +target3.y=110 From 6c4a544ad871848d1d9428a20ac2097a31bdef1a Mon Sep 17 00:00:00 2001 From: Manny Date: Thu, 24 Jun 2021 00:25:07 -0400 Subject: [PATCH 2/2] Manny is finally done BlueJ-TicketMachineLab --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index d5e864c..caac9de 100644 --- a/README.md +++ b/README.md @@ -60,7 +60,7 @@ in the outer wrapper of a class? * Do you notice a change in the class diagram? *** // Yes, TicketMachine is crossed out with hashes, meaning it cannot be compiled succesfully. * What error message do you get when you now press the compile button? - *** // the error message says " expected". + *** // the error message from making this change says "identifier expected". * Do you think this message clearly explains what is wrong? *** // I do not think that this clearly explains what is wrong.