Question: PLEASE HELP IN JAVA: There are 2 input files, one contains days - one day (String) per line - and the other contains temperatures -

PLEASE HELP IN JAVA:

There are 2 input files, one contains days - one day (String) per line - and the other contains temperatures - again one (double) per line. You are to read in one day and one temp, and make a Temperature object. Do not try to separate month and date, just treat April 23 as a single String. You will need to create a Temperature class. You need only code the methods you need but make sure it has a compareTo (compares temps).

I have given you the main method. You will see that once you input all the data , create objects, and fill the array, you then print it out , and then find the hottest day in the year. Note that I just used a random number generator and it is as likely there were very hot days in December as very cold ones in July.

ask the user for a month, and then print the hottest day in that month. Note that you will need 2 different findLargest methods.

What I have so far i can't get it to work correctly:

public static void main(String[] args) {

Temperature[] myArray = new Temperature[365]; readData(myArray); printData(myArray); Temperature big = findLargest(myArray); System.out.println("Hottest day was " + big); System.out.println("Which month ?"); Scanner s = new Scanner(System.in); String month = s.nextLine(); big = findLargest(month, myArray); System.out.println("Hottest day in " + month + " was " + big); }

private static void readData(Temperature[] t) { Scanner scan1 = null, scan2 = null; try { scan1 = new Scanner(new BufferedInputStream(new FileInputStream("days.txt"))); scan2 = new Scanner(new BufferedInputStream(new FileInputStream("temps.txt")));

//daya.txt contains the days //temps.txt contains the temperature for each corresponding day //so the first temperature (double) in temps.txt is the temperature for //January 1, the second is for January 2 etc. //Input data, create Temperature objects, and fill array } catch (FileNotFoundException e) {

} for (int i = 0; i < 365; i++) { t[i] = new Temperature(scan1.nextLine(), Double.parseDouble(scan2.nextLine())); } }

private static void printData(Temperature[] t) { for (int i = 0; i < 365; i++) { System.out.println("Day : " + t[i].date + " Temperature : " + t[i].temperature); } }

private static Temperature findLargest(Temperature[] t) { Temperature largest = t[0]; for (int i = 1; i < 365; i++) { if (t[i].compareTo(largest) > 0) { largest = t[i]; } } return largest; }

private static Temperature findLargest(String month, Temperature[] t) { Temperature largest = new Temperature(); for (int i = 0; i < 365; i++) { if (t[i].date.split(" ")[0].equals(month)) { if (t[i].temperature > largest.temperature) { largest = t[i]; } } } return largest; } }

public class Temperature implements Comparable{ String date; double temperature; Temperature(String date, double temperature){ this.date=date; this.temperature=temperature; }

Temperature() { throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. }

public String getmonth(){ return this.date; } public double gettemperature(){ return this.temperature; } public String tostring(){ return this.date+" "+this.temperature; } @Override public int compareTo(Temperature o) { return Double.compare(this.temperature, o.temperature); } }

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!