Commit 72c12375 authored by charlotte.kerr's avatar charlotte.kerr

Upload New File

parent bdcbdde9
import java.util.ArrayList; // So that ArrayLists can be implemented
import java.util.Scanner; // So that a scanner can be implemented
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner scan = new Scanner(System.in); // Creates a scanner to take user inputs
String animal_choice; // To store the user input for an animal
int menu_choice; // To store the user input for which task they want to perform
int yes_no_choice; // Stores the user's input for yes/no queries
boolean selecting_done = false; // Allows us to control when we are done adding animals to a list
boolean active = true; // Allows us to control when the program ends
while (active == true) { // For as long as we want the program to be active, the following loop will run:
// ArrayLists
ArrayList<Animal> all_animals = new ArrayList<Animal>(); // Will store all animals in an ArrayList
ArrayList<Animal> animals_of_type = new ArrayList<Animal>(); // Will store all animals of a certain type
ArrayList<Animal> animals_custom = new ArrayList<Animal>(); // Will store specific animals according to the user's choice
// Adding animals to the zoo
all_animals.add(new Adder("Adam"));
all_animals.add(new Adder("Annie"));
all_animals.add(new Goldfish("Gertrude"));
all_animals.add(new Goldfish("Gibson"));
all_animals.add(new Iguana("Iggy"));
all_animals.add(new Lion("Leo"));
all_animals.add(new Lion("Lisa"));
all_animals.add(new Narwhal("Napoleon"));
all_animals.add(new Narwhal("Nessie"));
all_animals.add(new Octopus("Olly"));
all_animals.add(new Owl("Oscar"));
all_animals.add(new Owl("Olivia"));
all_animals.add(new Roadrunner("Ryan"));
// Displays a basic menu to the user
System.out.println();
System.out.println("Select a task: "
+ "\n1: Display all animals in the zoo"
+ "\n2: Display a single animal's details"
+ "\n3: Display the details of a list of animals"
+ "\n4: Generate a list of animals by type"
+ "\n5: Display required food for a list of animals"
+ "\n6: Display a list of animals by habitat"
+ "\n7: Exit the system");
menu_choice = scan.nextInt(); // Takes the user's input from the menu
if ((menu_choice == 3) || (menu_choice == 5)) { // If the user is forming a specific list of animals
while (selecting_done == false) {
System.out.println("Enter the name of an animal to add to your list:");
animal_choice = scan.next(); //
for(int i = 0; i<all_animals.size(); i++) { // Cycles through the list of animals, checking each one throughout
if(animal_choice.equals(all_animals.get(i).name)) { // If the animal is in the zoo
animals_custom.add(all_animals.get(i)); // Adds the animal of that name to the custom ArrayList
}
}
System.out.println("Are you finished adding to the list?"
+ "\n1: Yes"
+ "\n2: No");
yes_no_choice = scan.nextInt();
if (yes_no_choice == 1) {
selecting_done = true; // User selection is finished; this will end the loop and stop them from adding to the list
}
}
} // End of custom list generation
switch (menu_choice) {
case 1: // The user wants to display all animals
for(int i = 0; i<all_animals.size(); i++) { // Cycles through each element in the ArrayList containing all animals.
all_animals.get(i).displayInfo(); // Calls the function to display all info for the selected animal.
}
System.out.println();
break;
case 2: // The user wants the details of a single animal
System.out.println("Enter the name of the animal you would like to see the details of:");
animal_choice = scan.next();
for(int i = 0; i<all_animals.size(); i++) {
if (animal_choice.equals(all_animals.get(i).name)) { // Cycles through each element in the ArrayList containing all animals.
all_animals.get(i).displayInfo(); // Calls the function to display all info for the selected animal.
}
}
break;
case 3: // The user wants to display the details of a list of animals
for(int i = 0; i<animals_custom.size(); i ++) { // Cycles through each element in the ArrayList containing the selection of animals.
animals_custom.get(i).displayInfo(); // Calls the function to display all info from the list of animals.
}
break;
case 4: // The user wants a list of animals by their type
System.out.println("Enter the type of animal you would like to view: (Bird, Fish, Mammal or Reptile)");
animal_choice = scan.next();
for(int i = 0; i<all_animals.size(); i++) { // Cycles through the list of all animals
if(animal_choice.equals(all_animals.get(i).classification)) { // Where the animal's classification matches the one selected
animals_of_type.add(all_animals.get(i)); // The animal will be added to the new ArrayList
}
}
System.out.println("The following animals are of the type you selected:");
for(int i = 0; i<animals_of_type.size(); i++) { // Cycles through the list of animals organised by type
System.out.println(animals_of_type.get(i).name); // Displays the names only of the animals in this ArrayList
}
break;
case 5: // The user wants to display food requirements for a list of animals
for(int i = 0; i<animals_custom.size(); i++) {
System.out.println(animals_custom.get(i).name + " eats " + animals_custom.get(i).diet + ".");
}
break;
case 6: // The user wants to display a list of animals by their environment
System.out.println("Select an environment to view from: (forest, freshwater, desert, savannah, ocean)");
animal_choice = scan.next();
for(int i = 0; i<all_animals.size(); i++) {
if (animal_choice.equals(all_animals.get(i).habitat)) { // Where the animal's habitat matches the one selected
animals_of_type.add(all_animals.get(i)); // The animal will be added to the new ArrayList
}
}
System.out.println("The following animals live within the habitat you selected:");
for(int i = 0; i<animals_of_type.size(); i++) { // Cycles through the list of animals organised by type
System.out.println(animals_of_type.get(i).name); // Displays the names only of the animals in this ArrayList
}
break;
case 7: // The user wants to exit the system
active = false;
break;
} // End of case switch
animals_custom.clear(); // Wipes the custom list clear to ensure that it can be re-entered if need be
animals_of_type.clear();// Wipes the type list clear to ensure that it can be re-entered if need be
} // End of the while loop
} // End of the Main function
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment