Write a program that allows you to write and read records of type PetRecord to a file. The program asks the user to choose between reading and writing from a file. In either case, the program next asks for the file name. If the user asked to write to a file, they can enter as many records as desired. If the user asked to read from a file, they are shown all of the records in the file. Be sure that the records do not scroll by so quickly that the user cannot read them. Redefine the class PetRecord so that it is Serializable. Provide options in your program to output the following information to the screen: the name and weight of the largest pet, the name and weight of the smallest pet, the name and age of the youngest pet, and the name and age of the oldest pet. Could there be pets with the same name, weight and age?

//Pet class
import java.io.Serializable;
import java.util.Objects;

public class Pet implements Serializable {

private String name;
private int age; //in years
private double weight; //in pounds

//Display 4.15 A Class for Pet Records (part 2 of 4)
public String toString() {
return ("Name: " + name + "nAge: " + age + " years old"
+ "nWeight: " + weight + " poundsn");
}

public Pet(String initialName, int initialAge,
double initialWeight) {
name = initialName;
if ((initialAge < 0) || (initialWeight < 0)) {
System.out.println("Error: Negative age or weight.");
System.exit(0);
} else {
age = initialAge;
weight = initialWeight;
}
}

public void set(String newName, int newAge, double newWeight) {
name = newName;
if ((newAge < 0) || (newWeight < 0)) {
System.out.println("Error: Negative age or weight.");
System.exit(0);
} else {
age = newAge;
weight = newWeight;
}
}

public Pet(String initialName) {
name = initialName;
age = 0;
weight = 0;
}

public void setName(String newName) {
name = newName;
}

public Pet(int initialAge) {
name = "No name yet.";
weight = 0;
if (initialAge < 0) {
System.out.println("Error: Negative age.");
System.exit(0);
} else {
age = initialAge;
}
}

public void setAge(int newAge) {
if (newAge < 0) {
System.out.println("Error: Negative age.");
System.exit(0);
} else {
age = newAge;
}
}

public Pet(double initialWeight) {
name = "No name yet";
age = 0;
if (initialWeight < 0) {
System.out.println("Error: Negative weight.");
System.exit(0);
} else {
weight = initialWeight;
}
}

public void setWeight(double newWeight) {

if (newWeight < 0) {
System.out.println("Error: Negative weight.");
System.exit(0);
} else {
weight = newWeight;
}
}

public boolean equals(Object other) {
Pet otherPet;

if (other == null || other.getClass() != this.getClass()) {
return false;
} else {
otherPet = (Pet) other;
return otherPet.name.equals(this.name)
&& otherPet.weight == this.weight
&& otherPet.age == this.age;
}
}

public String toCSV() //useful for text file output!
{
return String.format("%s,%.1f,%d",
this.name, this.weight, this.age);
}



public Pet() {
name = "No name yet.";
age = 0;
weight = 0;
}

public String getName() {
return name;
}

public int getAge() {
return age;
}

public double getWeight() {
return weight;
}
}//end of Pet class

Academic Honesty!
It is not our intention to break the school's academic policy. Posted solutions are meant to be used as a reference and should not be submitted as is. We are not held liable for any misuse of the solutions. Please see the frequently asked questions page for further questions and inquiries.
Kindly complete the form. Please provide a valid email address and we will get back to you within 24 hours. Payment is through PayPal, Buy me a Coffee or Cryptocurrency. We are a nonprofit organization however we need funds to keep this organization operating and to be able to complete our research and development projects.