//Johnny A. Shaieb //cs2003 //Lab4 import java.io.*; public class Lab4 { public static void main(String args[]) { String filename = ""; if(args.length > 0) { filename = args[0]; } else { filename = setFileName(); } int number = countLines(filename); double[] array = popArray(filename, number); System.out.println(number + " doubles read-in"); printArray(array); double sum = sumIt(array,number-1); System.out.println(); System.out.println("The Sum Using Recursion> " + sum); } public static String setFileName() { String filename = ""; try { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); System.out.print("Please Enter Filename> "); filename = br.readLine(); } catch(IOException e) { System.out.println("Error> " + e); } return filename; } public static double sumIt(double[] a, int n) { if(n == 0) { System.out.println("First Number is " + a[n]); return a[0]; } double temp = a[n] + sumIt(a,n - 1); System.out.println("The sum of the first " + (n+1) + " number is " + temp); return temp; } public static int countLines(String fname) { String filename = fname; String line = ""; int count = 0; try { FileReader in = new FileReader(filename); BufferedReader br = new BufferedReader(in); while((line = br.readLine()) != null) { //System.out.println("Line> " + line); count++; } br.close(); } catch(IOException e) { System.out.println("Error> " + e); } return count; } public static double[] popArray(String fname, int i) { String filename = fname; String line = ""; int max = i; int count = 0; double[] array = new double[max]; try { FileReader in = new FileReader(filename); BufferedReader br = new BufferedReader(in); while((line = br.readLine()) != null) { array[count] = Double.parseDouble(line); count++; } br.close(); } catch(IOException e) { System.out.println("Error> " + e); } return array; } public static void printArray(double[] array) { double count = 0; System.out.println(); for(int i = 0; i < array.length; i++) { System.out.println(array[i]); count = count + array[i]; } System.out.println("Total> " + count); System.out.println(); } }