public class Lesson { public static void main(String[] args) { int[] temps; temps = getData(); System.out.println("The average temperature is " + computeAverage(temps)); System.out.println("The maximum temperature is " + computeMaximum(temps)); display(temps); query(temps); } // getData will create an array of integers, get the data // for the array, and return the array when done public static int[] getData() { int[] data = new int[12]; for (int i = 0; i < data.length; i++) { //Read data from keyboard: // System.out.println("Input a temperature: "); // String userInput = Util.input(); // data[i] = Integer.parseInt(userInput); //Read data from file: String fileInput = Util.readLine("myweather.txt"); data[i] = Integer.parseInt(fileInput); } return data; } public static double computeAverage(int[] data) { int sum = 0; for (int i = 0; i < data.length; i++) { sum = sum + data[i]; } return (double)sum / data.length; } public static int computeMaximum(int[] data) { int maxsofar = data[0]; for (int i = 1; i < data.length; i++) { if (data[i] > maxsofar) { maxsofar = data[i]; // found a new max! } } return maxsofar; } public static void display(int[] data) { Draw.window(600,200); Draw.setTitle("Weather Display"); Draw.setFill(true); // Assume data.length must be 12 for (int i = 0; i < data.length; i++) { if (i % 2 == 0) // is i even? % means modulo { Draw.setColor(255,0,0); } else // i must be odd { Draw.setColor(0,255,0); } Draw.rectangle(i*50, 200-2*data[i], 50, 2*data[i]); } } public static void query(int[] data) { int x; int y; int bar; // Let user click 5 times for (int click = 1; click <= 5; click++) { Draw.pauseUntilMouse(); // wait until mouse click in window x = Draw.getMouseX(); y = Draw.getMouseY(); // determine which bar was clicked? bar = x / 50; if (y >= 200-2*data[bar]) { System.out.println(data[bar]); } else { System.out.println("no data"); } } } }