Using Arrays Homework


Part A

Create a project and add to it a class MonthRecord.  Give this class an instance variable for the name of the month and an array of doubles, moneyDaily which will be used to keep track of how much money was made or lost on that day. Note that in this case we are using the whole array, with an index for each day of the month, so this array won't need a firstEmpty to go with it.

Add a default constructor that sets the month up as January with an array of the appropriate size.  Also add accessor and mutator for the name.

Add another constructor which takes as parameters a name and an int days, which tells how many days are in the month.  Set up the array to be that size.

Add a method transaction which takes an int parameter, daynum and a double parameter amount.  daynum is the day of the month, and amount is an amount of money made or lost for a transaction on that day.  (hint: days of the month are numbered starting from 1, arrays arent; think about how to handle this). 

Add the given amount to the value in moneyDaily for that day of the month, if it is a valid day (e.g. don't do anything if someone tries to add an amount the 31st if our month only has 28 days). 

So if we did

myMonthRecord.transaction(5, 50); // made $50 in a transaction on the 5th
myMonthRecord.transaction(5, -70); // lost $70 in a transaction on the 5th
myMonthRecord.transaction(5, 10); // made $10 in a transaction on the 5th

then moneyDaily[4] would end up being 0 + 50 -70 +10 = -10

(0 was the initial value)

Add a method total which returns a double, which is the sum of all the values in moneyDaily.

Add a method inTheRed which returns a boolean that is true if the current total for the month is negative (call total to find this out).

Add a toString which returns the name of the month, the total for the month, and then the list of all values for each day in the month, so something like

June Total: $27.80
1. 0
2. 33.95
3. -2.50
4. 20.02
5. 99.55
...etc...

You will need to create a temporary String variable, and use a loop to add the values from the array onto the end of the string.  remember that "\n" is a newline in a string.


Part B

Add a class with a main.  In your main, check that you can create MonthRecords with both constructors,  and then print the MonthRecords back out.

Create a new MonthRecord representing March.

In a loop, for each of the 31 days of March, randomly choose a number from -100 to 100 (inclusive) to be an amount earned that day and call transaction for your MonthRecord for March accordingly.

Print the MonthRecord for March.  If at the end of March we ended up in the red -- owing money -- print out a sad message, otherwise print a happy message.