Create a program that fulfills the outlined in the scenario

Assignment Help Software Engineering
Reference no: EM131374032

Application: Animal Characteristics

In today's fast-paced world, it is important for programmers to think about potential future changes that impact their programs. One way that software developers can address this concern is by designing programs that are easy to upgrade and are adaptable to new technologies. In this Application, you work toward this goal by writing a program that uses the concept of inheritance to allow for later additions.

For this Application:

Create a program using the principles of inheritance based on the following scenario:

Scenario: The teachers of a local school need a program to teach their students the basics about animals and their characteristics. The teachers want the program to contain a database of animals, from which the teachers can choose animals to add to a list. The list will be displayed on the students' monitors so they can study the animals and their characteristics. Right now, the teachers want a program that handles only mammals and birds, but in the future they may want to add other types of animals. The teachers also expect the program to run smoothly and be thoroughly tested to handle extraneous input.

Create a program that fulfills the specifications outlined in the scenario above. Use the concept of inheritance to allow for later additions to the program. Also use the TDD concepts from Unit 1 to test the program as you go.

Follow the steps below to create the program:

Create a class Animal with these variables:

• public String kind;
• public String integument;

Add these methods:

• public String movement(boolean fast) returns one of the two strings "I walk on four legs." or "I run on four legs." depending on whether fast is false or true, respectively.

• public String sound() returns the empty string.

Create two classes, Mammal and Bird, each of which extends Animal.

In the constructor for Mammal, set the variable integument to the string "hair". Do not declare the variable again; it has already been declared in Animal. Similarly, in the constructor for Bird, set integument to the string "feathers".

In the Bird class, override the movement method to return either "I walk on two legs." or "I fly." depending on the setting of the fast parameter. Use the @Override annotation.

Create additional classes to represent specific kinds of animals (each extends either Mammal or Bird). In each class, set the kind variable and override the sound() method. For example, you might create a Duck class, setting the kind to "duck" and overriding the sound() method to return the string "„quack?" (in single quotes).

Note: Remember to test the methods as you go. Use the principles of TDD that you examined in Unit 1. The methods you write in this program are simple and only return strings, so they are relatively easy to test.

Users should be able to create animals of any kind you have defined (duck, cow, etc.), but you should also prevent the user from creating a "plain" animal, because there's no such thing. Every animal has to be a specific kind. Do this by writing a factory method in the Animal class-that is, a method to create objects of various animal kinds. Here's how:

• First, prevent users from creating a "plain" animal by writing a no-argument constructor for Animal, but making it private.

• Second, write a method Animal newInstance(String kind) that takes the desired kind of animal (such as "duck"), calls the constructor for that particular kind of animal, and returns the result. If given an unrecognized string, the method should not crash; it should return null.

Your test of the newInstance method must verify that the objects it creates are equal to objects created by calling the appropriate constructor (for instance, new Duck()) directly. Testing equality (that is, calling assertEquals) requires an equals method in the Animal class. There are five different characteristics that should be equal for two animals to be equal-their kinds, their integuments, their slow and fast movements, and the sounds they make. You don't need to test for every kind of animal you define, but you should test at least one kind of bird and one kind of mammal. Also, don't forget to test the newInstance method with an unrecognized (or misspelled) kind of animal.

Write a print method in your Animal class. When called, it should print out all the information about "this" animal, for instance:

I am a duck.
I have feathers.

When I go slowly, I walk on two legs. When I go fast, I fly.

The sound I make is „quack?.

Note that the sound of the animal has single quotes around it when you see it displayed in the output of your program. The sound method returns a string which contains a single quote, the sound, and then another single quote.

Write a class called AnimalStuff containing a main method. In this class, define an
ArrayList of Animal.

In case you are not familiar with ArrayList, you need to import java.util.ArrayList and your declaration should look something like

ArrayList<Animal> myList = new ArrayList<Animal>();

Although a normal array has a fixed size which you specify, an ArrayList does not and can grow as elements are added to it. You can find more information about ArrayList in the Java API.

An ArrayList<Animal> can hold a mixture of all kinds of animals.

Finally, in your main class, write a loop asking the user which of three things to do: Add an animal of a chosen type to the list, print (every animal in) the list, or quit the program. If the user asks for an animal your program doesn't recognize, don't add null to the list, but do inform the user of the problem.

Use a Scanner (import java.util.Scanner) to read input from the user. First, create a Scanner object:

Scanner scanner = new Scanner(System.in);

Then, to read a word typed in by the user, you can use the following:

String word = scanner.next();

To read in an entire line, use:

String line = scanner.nextLine();

To read in an integer, use:

int number = scanner.nextInt();

To read in a floating-point number, say:

double fpNumber = scanner.nextDouble();

Include screenshots of your program running as part of your submission. Show five valid animals being added and two invalid animals trying to be added. Also show screenshots of the printed list after each animal is added. Include screenshots of your program being tested with JUnit.

Reference no: EM131374032

Questions Cloud

What is your favorite movie and why : What is your favorite movie and why? What is the most important quality you look for in a film? (For example, do you look for a message or are you looking to just be entertained
Discuss contribution of plastic to municipal solid waste : Here is the question: Discuss the contribution of plastic to the municipal solid waste stream and describe the four main categories of plastic and solid waste recycling techniques.
How are electric heating elements rated : How do air temperatures compare between electric furnaces and those that are gas or oil fired?
Traditional change efforts and process of organization : What are the differences between the steps involved in traditional change efforts and the process of organizational development?
Create a program that fulfills the outlined in the scenario : ITEC-8130-1: Create a program that fulfills the specifications outlined in the scenario above. Use the concept of inheritance to allow for later additions to the program. Also use the TDD concepts from Unit 1 to test the program as you go.
When would the blower come on in an electric furnace : What happens to the current draw as an electric heating element warms up?
What are some of the likely repercussions if it is not done : Does this help explain why apparently successful change efforts often do not have lasting effects? Why is refreezing so important? What are some of the likely repercussions if it is not done?
Purification of lactate dehydrogenase : During the Purification of Lactate Dehydrogenase (LDH) experiment, you will need 50ml of buffer A150. Buffer A150 is 30mM Tris (pH 8.8) and 150mM NaCl. Given 1L of 1.5M Tris and 500ml of 5M NaCl, how much of each stock do you need to make 500ml ..
What material are electric heater coils often made from : An electric furnace rated at 240 V and 30 A would have an output capacity of how many kilowatts?

Reviews

Write a Review

 

Software Engineering Questions & Answers

  How to to play in a novice or expert mode

You will implement a program where the computer plays against a human opponent. The game will start with a random number of marbles between 10 and 100.

  Requirements and architecture relationship

"Requirements and Architecture Relationship" Please respond to the following: Describe a situation where you might start the design of a software system before the requirement specification is complete. Provide an example to support your answer.

  Information security policies for online food supply company

Explain four suitable information security policies for online food supply company.

  Produce set of crc cards-uml diagram-javadoc comments

Produce a set of CRC cards, a UML diagram, and a set of javadoc comments (detailed JavaDoc only for each method created, no coding required).

  A case study on the robot world cup

Challenges of the RoboCup and describe at least one strategy which was employed by a team of robots in the RoboCup. Use images, videos and/or animations to illustrate concepts.

  Preparing final table list and rationale

Assume you are now going to construct the final table list for Fernando's Skate Shop. Use the following preliminary field list and list of subjects to get started.

  Where are error and exception routines shown on dfds

When do we have a choice as to what will be included in a context diagram?- Which activities can be included in the logical processes on a logical DFD?

  What is cloud computing

Types of Cloud Computing (Private, Public, Hybrid)"

  Identify the model that contains each of derived attributes

Identify the model(s) that contains each of the Aggregation association, Class, Derived attributes, Extends association, Execution occurrence and Guard condition.

  Draw the sequence diagram for the use case

Draw the sequence diagram for the use case - What are the various options to provide a solution to the problem described in the given case study?

  Design of the software

Report of the software design and implement the software as per the design, and demonstrate it

  Prepare a sequence diagram for booking confirmation use case

Prepare a sequence diagram for the booking confirmation use case. Must include a detailed description. Create a communication diagram for the booking confirmation use case.

Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd