407688 LastFirstWeek5CatMouse
N/A
S-au achitat serviciile după ce au fost prestate
IMPORTANT DEADLINE --->>> 8:00pm EST Sunday April 18th, 2010 -( 8:00pm EST )
Comments are REQUIRED; flow charts and pseudocode are NOT REQUIRED.
Directions
Points
The file must be called <LastFirstWeek5CatMouse.java> (driver program)
[url removed, login to view]
[url removed, login to view] (which extends Mammal)
[url removed, login to view] (which extends Mammal)
Ensure you include ALL files required to make your program compile and run.
I would like to see your .java files only.
If possible, submit all programs as a single .zip file (not required)
Proper coding conventions required the first letter of the class start with a capital letter and the first letter of each additional word start with a capital letter.
5%
Overall Requirements
Write a program that simulates the battle between a cat and mice.
Use this class hierarchy:
Cat
· Kills 1 mouse a day
· Does not reproduce
Mice
· Have a chance to reproduce as long as conditions are met
· Reproduction only happens when mice are over 1 and 1 of each sex is present
Simulation Control
· Simulation continues as long as population is greater than 1 and less than 10
Driver main method should be as shown below: (replacing comment with missing piece)
import [url removed, login to view];
public class LastFirstWeek5CatMouse
{
public static void main(String [] args)
{
cat sylvester = new cat();
ArrayList<mouse> mice = new ArrayList<mouse>();
[url removed, login to view](new mouse());
[url removed, login to view](new mouse());
[url removed, login to view](new mouse());
[url removed, login to view](0).setSex(true);
[url removed, login to view](1).setSex(false);
[url removed, login to view](2).setSex(false);
while ([url removed, login to view]() >1 && [url removed, login to view]() < 10)
{
for (mouse m:mice)
[url removed, login to view]();
[url removed, login to view]();
[url removed, login to view](mice);
[url removed, login to view](mice);
}
//INCLUDE CODE FOR OUTPUT HERE
}
}
Output code should output:
Depending on if the population of mice is greater than or equal 10:
Mice RULE, Cats Drool Mice Population: ## (integer value)
or
Cats RULE, Mice Drool Cat Weight (in mice): ##.## (double value, 2 decimal places)
15%
[url removed, login to view] class
Instance variables:
name (string)
age (integer)
weight (double)
isMale (Boolean)
mammal constructor : (default constructor)
Set age to 1.
grow method :
Increases age of mammal by 1.
Accessor / mutator methods for each instance variable above:
Set or returns values as appropriate for data type specified.
10%
[url removed, login to view] class
eat method: (receive mouse arraylist as argument)
Randomly removes a mouse from the population 70% of the time and increases cat weight by the chosen mouse weight. Only increase weight if mouse is removed/eaten. (See chapter 5, lottery example, for random example)
grow method:
Set the cats age to the current age plus 1. (use accessor/mutator methods)
30%
[url removed, login to view] class
mouse constructor: (default constructor)
Randomly choose sex and assign to isMale as appropriate.
Set age to 1.
Set weight to 1.
grow method:
Increase age of mouse by 1 and weight of mouse by 1% of current weight.
mate method: (static method, receive mouse arraylist as argument)
Randomly choose 2 mice objects from arraylist and if conditions are correct, proceed with mating.
Successful mating conditions are:
· 1 male, 1 female mouse
· Both mice older than 1 day
If successful mating, randomly create between 0-4 mice and append to arraylist received as argument.
30%
Sample session (requires no user input):
Mice RULE, Cats Drool Mice Population: 11
Press any key to continue . . .
Cats RULE, Mice Drool Cat Weight (in mice): 2.03
Press any key to continue . . .
Mice RULE, Cats Drool Mice Population: 10
Press any key to continue . . .
Cats RULE, Mice Drool Cat Weight (in mice): 2.05
Press any key to continue . . .
As always, you should:
* Limit your use of class variables and instance variables – only use them if appropriate.
* Use appropriate modifiers for your methods. The modifiers we've discussed are private, public, static, and final.
* Use helper methods if appropriate.
* Follow the Java Coding Styles Document including comments and style
* Mimic the sample session precisely.
10%
Upload your page to the Dropbox.
NOTE: Complete your activity and submit it to the Dropbox.
Total Percentage
100%
ID Proiect: #2153548