Purpose: This assignment will provide more practice in processing file data in Java. It will also require the declaration of a class type, the creation of a list of objects, and some simple processing of the list that will involve sorting and computation of a couple of summary statistics about the data.
Problem description: The input file supplied contains information about animals (no more than 1000) that have been processed by an animal shelter in Washington state. Your program will parse the data file, create an object for each animal represented, and store the objects in an array. An output file with various information about the animals will be generated as output (described below).
Details of the input: Each line of the data file contains the following information about an animal including:
- ID number
- Status - ADOPTABLE, LOST, or FOUND
- Name (if known)
- Type of animal - Cat, Dog, etc.
- Age
- Gender
- Breed
- Color
- City
- State
- Zip
Within a line, each field of information is separated from the next by a comma. If a piece of information is unknown, there is still a comma for that field (i.e., the pattern ,, can be observed at some points in the file. Some fields contain multiple words (e.g., Domestic Shorthair) and other types of special characters (e.g. dash, slash, colon).
Details of the output: The output file will begin with a listing of the animals sorted by the status field using the array.sortfunctionality provided in Java. The listing will have one animal per line of output and contain the following fields in the following order, each separated from the next by a colon (:)
- Status
- Type of animal
- Gender
- Breed
An example output line is
ADOPTABLE:Cat:Female:Domestic Longhair
Following the listing will be a single blank line and then the following summary statistic:
Percentage not dogs or cats: (computed percentage rounded to nearest integer)
Lost Labrador Retrievers: (integer count computed)
Note that your output must follow the stated format exactly. It will be evaluated for correctness based upon whether or not it matches the correct output file.
Requirements of the class design:
- All data members must be declared private. That is, your main application must obtain access to any data of an object by invoking an accessor method within the class and not by accessing a data member directly.
- The class must implement the Comparable interface and define and implement a compareTo method that will enable sorting the animals as described above.
- Mutator methods should be provided on an "as needed" basis only. That is, don't make a bunch of methods like "setStatus", "setBreed", etc. that can alter the values in an object unless they are absolutely necessary. It is the limitation of the ability to modify the data in an object that results in a more reliable program. Giving unnecessary access to modify data members increases the likelihood that an application will misuse the class type.
Documentation:
- Any assumptions that the method is making; e.g., all supplied parameter values are initialized with valid data.
- A summary of the result of calling the method; e.g., the returned string contains the gender of the animal or the method modifies the name of the animal (hint: you don't need this one!).
Attachment:- pets.txt