URGENT Java Please updated the already existing Java program
URGENT
Java
Please updated the already existing Java program and modify it with the steps below:
Where it says (\"text file path gets input into here\"); in the program link the path instead of that with a text file with this data in it:
Copy and paste this and use as text file and input the path for the text file where it says \"text file path gets input into here\".
 2000/Alex/0110/0120/0
 2001/Bill/0210/0220/0
 2002/Chris/0310/0320/0
 2003/Devon/0140/0420/0
 2004/Eli/0510/0520/1
 2005/Fred/0610/0620/2
 2006/Gilbert/0710/0820/3
 2007/Herbert/0910/0920/4
 2008/Kim/1010/1020/5
###################################################################
import java.io.File;
 import java.io.FileNotFoundException;
 import java.util.Scanner;
 
 
 //setting variables to string or int
 public class Storm {
    private int stormYear;
    private int stormMag;
    private String stormStart;
    private String stormEnd;
    private String stormName;
   
    /**
    * Constructor
    * Storing all variables from text file
    * @param stormName
    * @param stormYear
    * @param stormStart
    * @param stormEnd
    * @param stormMag
    */
    public Storm(String stormName, int stormYear, String stormStart, String stormEnd, int stormMag) {
    this.stormName = stormName;
    this.stormYear = stormYear;
    this.stormStart = stormStart;
    this.stormEnd = stormEnd;
    this.stormMag = stormMag;
    }
 
 
    /**************************************************************/
     /*Method: Get and Set */
    /*Purpose: They serve to set&get values from class variables */
    /*Parameters: */
    /*String target: Storm Name */
    /*Return: Storm Name */
    /**************************************************************/
     public String getStormName() {
    return stormName;
    }
 
    /**
    * @param stormName the stormName to set
    */
    public void setStormName(String stormName) {
    this.stormName = stormName;
    }
 
    /**
    * @return the stormYear
    */
    public int getStormYear() {
    return stormYear;
    }
 
    /**
    * @param stormYear the stormYear to set
    */
    public void setStormYear(int stormYear) {
    this.stormYear = stormYear;
    }
 
    /**
    * @return the stormStart
    */
    public String getStormStart() {
    return stormStart;
    }
 
    /**
    * @param stormStart the stormStart to set
    */
    public void setStormStart(String stormStart) {
    this.stormStart = stormStart;
    }
 
   
    //return the stormEnd
    public String getStormEnd() {
    return stormEnd;
    }
 
   
    //param stormEnd the stormEnd to set
    public void setStormEnd(String stormEnd) {
    this.stormEnd = stormEnd;
    }
 
 
    //return the stormMag
    public int getStormMag() {
    return stormMag;
    }
 
    /**
    * @param stormMag the stormMag to set
    */
    public void setStormMag(int stormMag) {
    this.stormMag = stormMag;
    }
 
    /**************************************************************/
     /*Method:String toString */
    /*Purpose: convert to a string */
    /*Parameters: */
    /*String target: Storm Name */
    /*Return: Storm Name */
    /**************************************************************/
     public String toString() {
 String s = \"\ \" + getStormYear() + \"/ \" + getStormName() + \" \" ;
    if(getStormMag() == -1){
 s= s + \"(no info)\";
    }
    else {
 if((getStormMag() == 0)){
    s = s + \"(tropical storm)\";
    }
    else{
    s = s + \"(hurricane level \" + getStormMag() + \")\";
    }
    if(getStormStart().equals(\"\")){
 s = s + \"(no start)\";
    }
    else{
 s = s + getStormEnd().substring(0, 2) + \"/\" + getStormEnd().substring(2)+\" - \" ;
    }
    if(getStormEnd().equals(\"\")){
 s = s + \"(no end)\" ;
    }
    else{
 s = s + getStormEnd().substring(0, 2) + \"/\" + getStormEnd().substring(2);
    }
 }
 return s;
    }
 }
 
 
 class Database {
 
    private static final int maxarraysize = 50;
    //Attributes
    private Storm[] stormArr;
    private int add;
 
    /**
    * Constructor
    * Accepts a file and attempts to read it
    * Fills the storm array with the data
    */
    public Database(File fileName) {
    //Initialize array
    this.stormArr = new Storm[maxarraysize];
    this.add = 0;
 
    //Scanner to read from the file
 Scanner scan = new Scanner(System.in);
    try {
    scan = new Scanner (new File(\"text file path gets input into here\"));
 
    //Read data from the file
    while(scan.hasNextLine()) {
    //Year of storm/ Name of storm/ mmdd storm started/ mmdd storm ended/ magnitude of storm
    String line = scan.nextLine();
    String[] stormdata = line.split(\"/\");
    if(stormdata.length < 5)
    System.out.println(\"Database entry not in the correct format: \" + line);
 
    //Add data to array
    this.stormArr[this.add] = new Storm (stormdata[1], Integer.parseInt(stormdata[0]),stormdata[2], stormdata[3], Integer.parseInt(stormdata[4]));
    this.add += 1;
    }
    }
    catch (FileNotFoundException e) {
    e.printStackTrace();
    }
    }
 
    /**
    * Returns a storm array which matches the name
    *
    * @param name
    */
    public void getStormsByName(String name) {
    boolean found = false;
    for (Storm storm : stormArr) {
    if((storm != null ) && (storm.getStormName().equalsIgnoreCase(name))) {
    found = true;
    System.out.print(storm);
    }
    }
 
    if(!found)
    System.out.println(\"\\\"\" + name + \"\\\" was not found as a storm name.\");
    }
 
    /**
    * Returns a storm array which matches the year
    *
    * @param year
    */
    public void getStormsByYear(int year) {
    boolean found = false;
    for (Storm storm : stormArr) {
    if((storm != null ) && (storm.getStormYear() == year)) {
    found = true;
    System.out.print(storm);
    }
    }
 
    if(!found)
    System.out.println(\"\\\"\" + year + \"\\\" was not found as a storm year.\");
    }
 
    /**
    * Prints all storm details
    */
    public void printAll() {
    if(this.stormArr.length == 0)
    System.out.println(\"No data.\");
    else {
    for (Storm storm : stormArr) {
    if(storm != null)
    System.out.print(storm);
    }
    }
    }
 }
 
 
 class Prog1 {
 
    /**
    * Displays a list of commands for user
    */
    public static void printCommands() {
 System.out.println(\"Welcome to the CS-102 Storm Tracker Program\ \");
 System.out.println(\"Current available commands:\ \");
 System.out.println(\"1. Search for a storm name\");
 System.out.println(\"2. Search for a storm year\");
 System.out.println(\"3. Print all storms\");
 System.out.println(\"4. Exit\");
    }
 
    public static void main(String args[]) {
 
 File file = new File(\"text file path gets input into here\");
 if (!file.exists()) // Check if file is there
 
 System.out.println(\"file does not exist.\");
    else {
 // Create Database object
 Database db = new Database(file);
 // Scanner to get user input
 Scanner scan = new Scanner(System.in);
 // Variable to get user command
 int cmd = 0;
 
 //Start
    while (true) {
 printCommands();
 System.out.print(\"Your choice? \");
 cmd = scan.nextInt();
 scan.nextLine();
 //look up storm name
 if (cmd == 1){
    System.out.println(\"Print out storm name: \");
 String name = scan.nextLine();
 db.getStormsByName(name);
 }
 //look up storm year
 else if (cmd == 2){
    System.out.println(\"Print out storm year: \");
 int year = scan.nextInt();
 db.getStormsByYear(year);
 }
 //prints out the data
 else if (cmd == 3){
 db.printAll();
 }
 //shuts down program
 else if (cmd == 4){
 scan.close();
 System.exit(0);
 }
 else {
    System.out.println(\"Please select command 1-4\");
 }
 System.out.println();
    }
 }
    }
 }
Solution
//Tested on Ubuntu,Linux
//I did changes on Database.java and Prog1.java files
/******************Storm.java*************************/
public class Storm {
      private int stormYear;
        private int stormMag;
        private String stormStart;
        private String stormEnd;
        private String stormName;
   
        /**
        * Constructor
        * Storing all variables from text file
        * @param stormName
        * @param stormYear
        * @param stormStart
        * @param stormEnd
        * @param stormMag
        */
        public Storm(String stormName, int stormYear, String stormStart, String stormEnd, int stormMag) {
        this.stormName = stormName;
        this.stormYear = stormYear;
        this.stormStart = stormStart;
        this.stormEnd = stormEnd;
        this.stormMag = stormMag;
        }
        /**************************************************************/
         /*Method: Get and Set */
        /*Purpose: They serve to set&get values from class variables */
        /*Parameters: */
        /*String target: Storm Name */
        /*Return: Storm Name */
        /**************************************************************/
         public String getStormName() {
        return stormName;
        }
       /**
        * @param stormName the stormName to set
        */
        public void setStormName(String stormName) {
        this.stormName = stormName;
        }
       /**
        * @return the stormYear
        */
        public int getStormYear() {
        return stormYear;
        }
       /**
        * @param stormYear the stormYear to set
        */
        public void setStormYear(int stormYear) {
        this.stormYear = stormYear;
        }
       /**
        * @return the stormStart
        */
        public String getStormStart() {
        return stormStart;
        }
       /**
        * @param stormStart the stormStart to set
        */
        public void setStormStart(String stormStart) {
        this.stormStart = stormStart;
        }
  
        //return the stormEnd
        public String getStormEnd() {
        return stormEnd;
        }
  
        //param stormEnd the stormEnd to set
        public void setStormEnd(String stormEnd) {
        this.stormEnd = stormEnd;
        }
        //return the stormMag
        public int getStormMag() {
        return stormMag;
        }
       /**
        * @param stormMag the stormMag to set
        */
        public void setStormMag(int stormMag) {
        this.stormMag = stormMag;
        }
       /**************************************************************/
         /*Method:String toString */
        /*Purpose: convert to a string */
        /*Parameters: */
        /*String target: Storm Name */
        /*Return: Storm Name */
        /**************************************************************/
         public String toString() {
    String s = \"\ \" + getStormYear() + \"/ \" + getStormName() + \" \" ;
        if(getStormMag() == -1){
    s= s + \"(no info)\";
        }
        else {
    if((getStormMag() == 0)){
        s = s + \"(tropical storm)\";
        }
        else{
        s = s + \"(hurricane level \" + getStormMag() + \")\";
        }
        if(getStormStart().equals(\"\")){
    s = s + \"(no start)\";
        }
        else{
    s = s + getStormEnd().substring(0, 2) + \"/\" + getStormEnd().substring(2)+\" - \" ;
        }
        if(getStormEnd().equals(\"\")){
    s = s + \"(no end)\" ;
        }
        else{
    s = s + getStormEnd().substring(0, 2) + \"/\" + getStormEnd().substring(2);
        }
    }
    return s;
        }
   
 }
 /************************Database.java*******************/
import java.io.File;
 import java.io.FileNotFoundException;
 import java.util.Scanner;
public class Database {
   private static final int maxarraysize = 50;
    // Attributes
    private Storm[] stormArr;
    private int add;
   /**
    * Constructor Accepts a file and attempts to read it Fills the storm array
    * with the data
    */
    public Database(File fileName) {
        // Initialize array
        this.stormArr = new Storm[maxarraysize];
        this.add = 0;
       // Scanner to read from the file
        Scanner scan = new Scanner(System.in);
        try {
            scan = new Scanner(fileName);
           // Read data from the file
            while (scan.hasNextLine()) {
                // Year of storm/ Name of storm/ mmdd storm started/ mmdd storm
                // ended/ magnitude of storm
                String line = scan.nextLine();
                String[] stormdata = line.split(\"/\");
                if (stormdata.length < 5)
                    System.out.println(\"Database entry not in the correct format: \" + line);
               // Add data to array
                this.stormArr[this.add] = new Storm(stormdata[1], Integer.parseInt(stormdata[0]), stormdata[2],
                        stormdata[3], Integer.parseInt(stormdata[4]));
                this.add += 1;
            }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
    }
   /**
    * Returns a storm array which matches the name
    *
    * @param name
    */
    public void getStormsByName(String name) {
        boolean found = false;
        for (Storm storm : stormArr) {
            if ((storm != null) && (storm.getStormName().equalsIgnoreCase(name))) {
                found = true;
                System.out.print(storm);
            }
        }
       if (!found)
            System.out.println(\"\\\"\" + name + \"\\\" was not found as a storm name.\");
    }
   /**
    * Returns a storm array which matches the year
    *
    * @param year
    */
    public void getStormsByYear(int year) {
        boolean found = false;
        for (Storm storm : stormArr) {
            if ((storm != null) && (storm.getStormYear() == year)) {
                found = true;
                System.out.print(storm);
            }
        }
       if (!found)
            System.out.println(\"\\\"\" + year + \"\\\" was not found as a storm year.\");
    }
   /**
    * Prints all storm details
    */
    public void printAll() {
        if (this.stormArr.length == 0)
            System.out.println(\"No data.\");
        else {
            for (Storm storm : stormArr) {
                if (storm != null)
                    System.out.print(storm);
            }
        }
    }
}
 /*************************Prog1.java***************/
import java.io.File;
 import java.util.Scanner;
public class Prog1 {
   /**
    * Displays a list of commands for user
    */
    public static void printCommands() {
        System.out.println(\"Welcome to the CS-102 Storm Tracker Program\ \");
        System.out.println(\"Current available commands:\ \");
        System.out.println(\"1. Search for a storm name\");
        System.out.println(\"2. Search for a storm year\");
        System.out.println(\"3. Print all storms\");
        System.out.println(\"4. Exit\");
    }
public static void main(String args[]) {
       File file = new File(\"/home/anshu/Desktop/chegg/input.txt\");//ubuntu file path
        if (!file.exists()) // Check if file is there
           System.out.println(\"file does not exist.\");
        else {
            // Create Database object
            Database db = new Database(file);
            // Scanner to get user input
            Scanner scan = new Scanner(System.in);
            // Variable to get user command
            int cmd = 0;
           // Start
            while (true) {
                printCommands();
               System.out.print(\"Your choice? \");
                cmd = scan.nextInt();
                scan.nextLine();
                // look up storm name
                if (cmd == 1) {
                    System.out.println(\"Print out storm name: \");
                    String name = scan.nextLine();
                    db.getStormsByName(name);
                }
                // look up storm year
                else if (cmd == 2) {
                    System.out.println(\"Print out storm year: \");
                    int year = scan.nextInt();
                    db.getStormsByYear(year);
                }
                // prints out the data
                else if (cmd == 3) {
                    db.printAll();
                }
                // shuts down program
                else if (cmd == 4) {
                    scan.close();
                    System.exit(0);
                } else {
                    System.out.println(\"Please select command 1-4\");
                }
                System.out.println();
            }
        }
    }
}
 /****************************Output**************************/
Welcome to the CS-102 Storm Tracker Program
Current available commands:
1. Search for a storm name
 2. Search for a storm year
 3. Print all storms
 4. Exit
 Your choice? 1
 Print out storm name:
 Alex
2000/ Alex (tropical storm)01/20 - 01/20
 Welcome to the CS-102 Storm Tracker Program
Current available commands:
1. Search for a storm name
 2. Search for a storm year
 3. Print all storms
 4. Exit
 Your choice? 2
 Print out storm year:
 2003
2003/ Devon (tropical storm)04/20 - 04/20
 Welcome to the CS-102 Storm Tracker Program
Current available commands:
1. Search for a storm name
 2. Search for a storm year
 3. Print all storms
 4. Exit
 Your choice? 3
2000/ Alex (tropical storm)01/20 - 01/20
 2001/ Bill (tropical storm)02/20 - 02/20
 2002/ Chris (tropical storm)03/20 - 03/20
 2003/ Devon (tropical storm)04/20 - 04/20
 2004/ Eli (hurricane level 1)05/20 - 05/20
 2005/ Fred (hurricane level 2)06/20 - 06/20
 2006/ Gilbert (hurricane level 3)08/20 - 08/20
 2007/ Herbert (hurricane level 4)09/20 - 09/20
 2008/ Kim (hurricane level 5)10/20 - 10/20
 Welcome to the CS-102 Storm Tracker Program
Current available commands:
1. Search for a storm name
 2. Search for a storm year
 3. Print all storms
 4. Exit
 Your choice? 4
/********************content of input.txt******************/
2000/Alex/0110/0120/0
 2001/Bill/0210/0220/0
 2002/Chris/0310/0320/0
 2003/Devon/0140/0420/0
 2004/Eli/0510/0520/1
 2005/Fred/0610/0620/2
 2006/Gilbert/0710/0820/3
 2007/Herbert/0910/0920/4
 2008/Kim/1010/1020/5
Thanks a lot
If you have any query please feel free and ask












