diff --git a/README.md b/README.md
index ee11f2c..c12cce0 100644
--- a/README.md
+++ b/README.md
@@ -18,28 +18,52 @@ 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?
+ * Value 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?
+
+ * Only difference I have noticed are my own inputs into the machine, i.e. pricing the tickets and inserting different amounts of money
+
+ * What happens if you insert too much money into the machine – do you receive any refund?
+
+ * No refund was issued. When checking the balance, the balace states 0.
+ * What happens if you do not insert enough and then try to print a ticket?
+
+ * Nothing happens from the string other than the total is updated.
### 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?
+
+ * No
### 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
+{
+ Inner part of the class omitted.
+}
+```
+```
+public class LabClass
+{
+ Inner part of the class omitted.
+}
+```
+
+
### Exercise 2.7
Does it matter whether we write
`public class TicketMachine`
@@ -48,21 +72,35 @@ or
in the outer wrapper of a class?
* 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?
+
+ * The Ticket Machine has red hash lines in the diagram box.
+ * What error message do you get when you now press the compile button?
+
+ * "Error(s) found in class
+ * Do you think this message clearly explains what is wrong?
+
+ * It is not clearly explains but it does give good hints, such as where they error is located.
### Exercise 2.8
* Check whether or not it is possible to leave out the word `public` from the outer wrapper of the `TicketMachine` class.
+ * No compilation errors come up and the scope highlighting still appears to be correct.
+
### 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.
+
+ * Constructor: TicketMachine
+ * Fields: price, balance, total, ticketNumber
+ * Methods: getPrice, getTicketNumber, getBalance, insertMoney, calculateTotal, incrementTicketNumber
### Exercise 2.10
* Do you notice any features of the constructor that make it significantly different from the other methods of the class?
+ * When trying creating a new object and looking at the options to call upon, the constructor is not listed.
+
### Exercise 2.11
* What do you think is the type of each of the following fields?
@@ -71,6 +109,9 @@ private int count;
private Student representative;
private Server host;
```
+1. int is an integer
+2. Student is a string
+3. Server is a string
### Exercise 2.12
* What are the names of the following fields?
@@ -80,6 +121,10 @@ private boolean alive;
private Person tutor;
private Game game;
```
+1. private boolean alive; has the name "alive"
+2. private Person tutor; has the name "tutor"
+3. private Game game; has the name "game"
+
### Exercise 2.13
In the following field declaration from the TicketMachine class
@@ -88,14 +133,26 @@ In the following field declaration from the TicketMachine class
private int price;
```
does it matter which order the three words appear in?
+
+1. 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
+ * 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!
+
+ * In each different arrangement in the words other than the original, there is are hased lines for not compiling it.
+
+ * Check by pressing the compile button to see if there is an error message.
+
+ * I recieve a copilation error when I try to compile.
+
+ * 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?
+
+ * Yes it is always necessary to have a semicolon at the end of a field declaration.
+
* Once again, experiment via the editor.
* The rule you will learn here is an important one, so be sure to remember it.
@@ -103,20 +160,32 @@ possible?
### Exercise 2.15
* Write in full the declaration for a field of type `int` whose name is `status`.
+```java
+private int status
+```
+
### Exercise 2.16
* To what class does the following constructor belong?
```
public Student(String name)
```
+* It belongs to class "Student"
### Exercise 2.17
* How many parameters does the following constructor have and what are their types?
```
public Book(String title, double price)
```
+* This has 2 parameters, a string and a double respectvely.
### Exercise 2.18
* Can you guess what types some of the `Book` class’s fields might be?
+
+ * Some of the fields might be name of the book or author
+
* Can you assume anything about the names of its fields?
+ * I can assume integers can be used for things such an index or author's notes in the book.
+
+
READ upto and INCLUDING section 2.15 of this chapter.
diff --git a/TicketMachineTwo.java b/TicketMachineTwo.java
new file mode 100644
index 0000000..09d066b
--- /dev/null
+++ b/TicketMachineTwo.java
@@ -0,0 +1,98 @@
+/**
+ * TicketMachineTwo models a naive ticket machine that issues
+ * flat-fare tickets.
+ * The price of a ticket is specified via the constructor.
+ * It is a naive machine in the sense that it trusts its users
+ * to insert enough money before trying to print a ticket.
+ * It also assumes that users enter sensible amounts.
+ *
+ * @author David J. Barnes and Michael Kolling
+ * @version 2008.03.30
+ */
+ public class TicketMachineTwo
+{
+ // The price of a ticket from this machine.
+ private Integer price;
+ // The amount of money entered by a customer so far.
+ private Integer balance;
+ // The total amount of money collected by this machine.
+ private Integer total;
+ // The number of tickets printed.
+ private Integer ticketNumber;
+
+ /**
+ * Create a machine that issues tickets of the given price.
+ * Note that the price must be greater than zero, and there
+ * are no checks to ensure this.
+ */
+ public TicketMachineTwo(Integer ticketCost)
+ {
+ price = ticketCost;
+ balance = 0;
+ total = 0;
+ ticketNumber = 0;
+ }
+
+ /**
+ * Return the price of a ticket.
+ */
+ public Integer getPrice()
+ {
+ return price;
+ }
+
+ /**
+ * Return ticketNumber.
+ * (Increments on each print.)
+ */
+ public Integer getTicketNumber()
+ {
+ return ticketNumber;
+ }
+
+ /**
+ * Return the amount of money already inserted for the
+ * next ticket.
+ */
+ public Integer getBalance()
+ {
+ return balance;
+ }
+
+ /**
+ * Receive an amount of money in cents from a customer.
+ */
+ public Integer insertMoney(Integer amount)
+ {
+ balance = balance + amount;
+ return balance;
+ }
+
+ public Integer calculateTotal(){
+ total = balance + total;
+ return total;
+ }
+
+ public Integer incrementTicketNumber(){
+ ticketNumber++;
+ return ticketNumber;
+ }
+
+
+ /**
+ * Print a ticket.
+ * Update the total collected and
+ * reduce the balance to zero.
+ */
+ public String printTicket()
+ {
+ //Increment the number of tickets printed
+ incrementTicketNumber();
+ // Update the total collected with the balance.
+ total = total + balance;
+ // Clear the balance.
+ balance = 0;
+
+ return "Ticket price: " + price + " cents. " + "Your total is " + total + ".";
+ }
+}