A veterinarian services many pets and their owners. As new pets are added to the
ID: 3572882 • Letter: A
Question
A veterinarian services many pets and their owners. As new pets are added to the population of pets being serviced, their information is entered into a flat text file. Each month, the vet requests a listing of all pets sorted by their outstanding bill balance. You have to write a program to produce a report of animals and their owners sorted by their outstanding bill balances from the data in the flat text file. Below is a description of the information on the text file:
The first entry is the number of animals on the file (numeric)
The fields below repeat for each animal:
o Owner name (String) o Birth year (numeric) o Bill balance (numeric) o Species (String)
o Special feature (numeric or String)
The animals serviced by the veterinarian are of two types: mammals and non-mammals. For a mammal the special feature field on the flat file is the number of legs of the animal (numeric). For a non-mammal the special feature field is the blood type, warm-blooded or cold-blooded (String).
Program requirements and grading:
From the information provided, write a solution that includes the following:
A suitable inheritance hierarchy which represents the pets serviced by the veterinarian. It is up to you how to design the inheritance hierarchy. I suggest an Animal class and appropriate subclasses.
For all classes include the following:
o Instancevariables
o Constructors
o Access or and mutator methods
o Suitable toString() methods
Write a class xxxx_program7 which utilizes the following:
o An Array of Animal objects
o A method which reads the input file provided and stores the objects in the array
of Animals.
o The input file provided, program7.txt, to test your program.
o A method which sorts the array of Animals in ascending order by the balance.
o A method that formats and prints the output report. There should be one A nimal per line and at most 40 Animals per page,
o The main metho d will call all the other methods which will:
Read the text file and store the objects in the array
Sort the objects
Format and print the report
Explanation / Answer
solution)
package com.anm.classes;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.*;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class Test {
List<Animal> mammals = new ArrayList<Animal>();
List<Animal> non_mammals = new ArrayList<Animal>();
public void sort() {
Collections.sort(mammals);
Collections.sort(non_mammals);
}
public void output() {
System.out.println("the sorted birthbalance mammals are");
for (Animal a : mammals) {
System.out.println(a.toString());
}
System.out.println("the sorted birth balance non-mammals are");
for (Animal a : non_mammals) {
System.out.println(a.toString());
}
}
public static void main(String[] args) {
Test t = new Test();
String line = null;
try {
File file=new File("program7.txt");
try {
BufferedReader reader = new BufferedReader(
new FileReader(file));
int count1 = 0;
while ((line = reader.readLine()) != null) {
String name = null;
int year = 0;
int birthBalance = 0;
String SpeciesName = null;
int type = 0;
String type1 = null;
String words[] = null;
count1++;
if (count1 == 1) {
System.out.println("the no of animals are :" + line);
} else {
// System.out.println(line);
words = line.split("\s+");
name = words[0];
year = Integer.parseInt(words[1]);
birthBalance = Integer.parseInt(words[2]);
SpeciesName = words[3];
try {
type = Integer.parseInt(words[4]);
Animal a = new Mammal(name, year, birthBalance,
SpeciesName, type);
t.mammals.add(a);
// System.out.println(t.mammals.toString());
} catch (NumberFormatException e) {
type1 = words[4];
Animal a = new Non_Mammal(name, year, birthBalance,
SpeciesName, type1);
t.non_mammals.add(a);
// System.out.println(t.non_mammals.toString());
}
}
}
} catch (IOException e) {
System.out.println("unable to read the file");
}
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
System.out.println("file not found");
}
t.sort();
t.output();
}
}
output
the no of animals are :73
the sorted birthbalance mammals are
Mammal [mammal legs are :4 , name=kitty , year=2009 , birthBalance=44 , SpeciesName=Cat]
Mammal [mammal legs are :2 , name=Ray , year=2013 , birthBalance=50 , SpeciesName=Chicken]
Mammal [mammal legs are :4 , name=kitty2 , year=2009 , birthBalance=64 , SpeciesName=Cat]
Mammal [mammal legs are :4 , name=kitty3 , year=2009 , birthBalance=64 , SpeciesName=Cat]
Mammal [mammal legs are :4 , name=Johnny , year=2008 , birthBalance=111 , SpeciesName=Cat]
Mammal [mammal legs are :4 , name=Johnny2 , year=2008 , birthBalance=111 , SpeciesName=Cat]
Mammal [mammal legs are :4 , name=Johnny3 , year=2008 , birthBalance=111 , SpeciesName=Cat]
Mammal [mammal legs are :4 , name=William , year=2009 , birthBalance=113 , SpeciesName=Cat]
Mammal [mammal legs are :2 , name=Grant , year=2013 , birthBalance=150 , SpeciesName=Duck]
Mammal [mammal legs are :4 , name=William2 , year=2009 , birthBalance=213 , SpeciesName=Cat]
Mammal [mammal legs are :4 , name=William3 , year=2009 , birthBalance=213 , SpeciesName=Cat]
Mammal [mammal legs are :2 , name=Ray2 , year=2013 , birthBalance=250 , SpeciesName=Chicken]
Mammal [mammal legs are :2 , name=Ray3 , year=2013 , birthBalance=250 , SpeciesName=Chicken]
Mammal [mammal legs are :4 , name=John , year=2014 , birthBalance=300 , SpeciesName=Cat]
Mammal [mammal legs are :4 , name=John2 , year=2014 , birthBalance=320 , SpeciesName=Cat]
Mammal [mammal legs are :4 , name=John3 , year=2014 , birthBalance=320 , SpeciesName=Cat]
Mammal [mammal legs are :4 , name=Spot , year=2005 , birthBalance=333 , SpeciesName=Dog]
Mammal [mammal legs are :4 , name=Spot2 , year=2005 , birthBalance=333 , SpeciesName=Dog]
Mammal [mammal legs are :4 , name=Spot3 , year=2005 , birthBalance=333 , SpeciesName=Dog]
Mammal [mammal legs are :2 , name=Grant2 , year=2013 , birthBalance=350 , SpeciesName=Duck]
Mammal [mammal legs are :2 , name=Grant3 , year=2013 , birthBalance=350 , SpeciesName=Duck]
Mammal [mammal legs are :4 , name=Sam , year=2014 , birthBalance=400 , SpeciesName=Tiger]
Mammal [mammal legs are :4 , name=Sam2 , year=2014 , birthBalance=410 , SpeciesName=Tiger]
Mammal [mammal legs are :4 , name=Sam3 , year=2014 , birthBalance=410 , SpeciesName=Tiger]
Mammal [mammal legs are :4 , name=Striper , year=2011 , birthBalance=432 , SpeciesName=Sckunk]
Mammal [mammal legs are :4 , name=Dan , year=2015 , birthBalance=433 , SpeciesName=Dog]
Mammal [mammal legs are :4 , name=Dan2 , year=2015 , birthBalance=433 , SpeciesName=Dog]
Mammal [mammal legs are :4 , name=Dan3 , year=2015 , birthBalance=433 , SpeciesName=Dog]
Mammal [mammal legs are :4 , name=Boots2 , year=2005 , birthBalance=487 , SpeciesName=Horse]
Mammal [mammal legs are :4 , name=Boots3 , year=2005 , birthBalance=487 , SpeciesName=Horse]
Mammal [mammal legs are :4 , name=Mary , year=2013 , birthBalance=500 , SpeciesName=Dog]
Mammal [mammal legs are :4 , name=Mary2 , year=2013 , birthBalance=520 , SpeciesName=Dog]
Mammal [mammal legs are :4 , name=Mary3 , year=2013 , birthBalance=520 , SpeciesName=Dog]
Mammal [mammal legs are :2 , name=hopper , year=2003 , birthBalance=555 , SpeciesName=Kangaroo]
Mammal [mammal legs are :2 , name=Hopper2 , year=2003 , birthBalance=575 , SpeciesName=Kangaroo]
Mammal [mammal legs are :2 , name=Hopper3 , year=2003 , birthBalance=575 , SpeciesName=Kangaroo]
Mammal [mammal legs are :4 , name=Green2 , year=2011 , birthBalance=600 , SpeciesName=Horse]
Mammal [mammal legs are :4 , name=Green3 , year=2011 , birthBalance=600 , SpeciesName=Horse]
Mammal [mammal legs are :4 , name=Edward , year=1995 , birthBalance=630 , SpeciesName=Horse]
Mammal [mammal legs are :4 , name=Edward2 , year=1995 , birthBalance=630 , SpeciesName=Horse]
Mammal [mammal legs are :4 , name=Edward3 , year=1995 , birthBalance=630 , SpeciesName=Horse]
Mammal [mammal legs are :4 , name=Striper2 , year=2011 , birthBalance=732 , SpeciesName=Sckunk]
Mammal [mammal legs are :4 , name=Striper3 , year=2011 , birthBalance=732 , SpeciesName=Sckunk]
Mammal [mammal legs are :4 , name=Green , year=2011 , birthBalance=800 , SpeciesName=Horse]
Mammal [mammal legs are :4 , name=Sarah , year=2011 , birthBalance=900 , SpeciesName=Horse]
Mammal [mammal legs are :4 , name=Sarah2 , year=2011 , birthBalance=950 , SpeciesName=Horse]
Mammal [mammal legs are :4 , name=Sarah3 , year=2011 , birthBalance=950 , SpeciesName=Horse]
Mammal [mammal legs are :4 , name=Boots , year=2005 , birthBalance=987 , SpeciesName=Horse]
Mammal [mammal legs are :2 , name=Austin , year=2015 , birthBalance=1500 , SpeciesName=Monkey]
Mammal [mammal legs are :2 , name=Austin2 , year=2015 , birthBalance=2500 , SpeciesName=Monkey]
Mammal [mammal legs are :2 , name=Austin3 , year=2015 , birthBalance=2530 , SpeciesName=Monkey]
the sorted birth balance non-mammals are
Non_Mammal [type=Cold-Blooded , name=Duke , year=2014 , birthBalance=10 , SpeciesName=fish]
Non_Mammal [type=Cold-Blooded , name=Claudia2 , year=2014 , birthBalance=10 , SpeciesName=Squid]
Non_Mammal [type=Cold-Blooded , name=Claudia3 , year=2014 , birthBalance=15 , SpeciesName=Squid]
Non_Mammal [type=Warm-Blooded , name=Annie , year=2011 , birthBalance=20 , SpeciesName=Bird]
Non_Mammal [type=Cold-Blooded , name=Claudia , year=2014 , birthBalance=20 , SpeciesName=Squid]
Non_Mammal [type=Cold-Blooded , name=Ryan , year=2014 , birthBalance=21 , SpeciesName=fish]
Non_Mammal [type=Warm-Blooded , name=Ray , year=2011 , birthBalance=30 , SpeciesName=Bird]
Non_Mammal [type=Cold-Blooded , name=casper , year=1998 , birthBalance=88 , SpeciesName=Snake]
Non_Mammal [type=Cold-Blooded , name=Ryan2 , year=2014 , birthBalance=110 , SpeciesName=fish]
Non_Mammal [type=Cold-Blooded , name=Ryan3 , year=2014 , birthBalance=110 , SpeciesName=fish]
Non_Mammal [type=Warm-Blooded , name=Annie2 , year=2011 , birthBalance=120 , SpeciesName=Bird]
Non_Mammal [type=Warm-Blooded , name=Annie3 , year=2011 , birthBalance=120 , SpeciesName=Bird]
Non_Mammal [type=Warm-Blooded , name=Ray2 , year=2011 , birthBalance=130 , SpeciesName=Bird]
Non_Mammal [type=Warm-Blooded , name=Ray3 , year=2011 , birthBalance=130 , SpeciesName=Bird]
Non_Mammal [type=Cold-Blooded , name=casper2 , year=1998 , birthBalance=188 , SpeciesName=Snake]
Non_Mammal [type=Cold-Blooded , name=casper3 , year=1998 , birthBalance=188 , SpeciesName=Snake]
Non_Mammal [type=Cold-Blooded , name=Willy , year=2012 , birthBalance=250 , SpeciesName=Snake]
Non_Mammal [type=Cold-Blooded , name=Willy , year=2012 , birthBalance=250 , SpeciesName=Snake]
Non_Mammal [type=Cold-Blooded , name=Willy2 , year=2012 , birthBalance=250 , SpeciesName=Snake]
Non_Mammal [type=Cold-Blooded , name=Willy3 , year=2012 , birthBalance=250 , SpeciesName=Snake]
Non_Mammal [type=Cold-Blooded , name=Willy2 , year=2012 , birthBalance=350 , SpeciesName=Snake]
Non_Mammal [type=Cold-Blooded , name=Willy3 , year=2012 , birthBalance=350 , SpeciesName=Snake]
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.