// compute.java


import java.io.*;   
import java.util.List;
import java.util.LinkedList;

public class Compute
{
	public void compute (){
		comp();
}

		final int MAX = 30; 

		int[] exam1 = new int[MAX];
		int[] exam2 = new int[MAX];
		int[] exam3 = new int[MAX];
		int[] exam4 = new int[MAX];

		int inum = 0, lineSize = 0;
		int avg1 = 0, avg2 = 0, avg3 = 0, avg4 = 0;
		int avg1sz = 0, avg2sz = 0, avg3sz = 0, avg4sz = 0;

		public void comp(){
		try{

			FileReader fr = new FileReader( "lab04.txt" );
			BufferedReader infile = new BufferedReader( fr, 4096 /* buffsize */ );

			List<String> lines = new LinkedList<String>();      

			String line;
			line = infile.readLine();


			while (line != null) {
				lines.add(line);
				line = infile.readLine();
			}

			lineSize = lines.size();
			String tmp = lines.get(0);

			tmp = tmp.trim(); 

			String[] split_line = tmp.split("\\s+");

			for (int i=0; i<lineSize; i++){
				tmp = lines.get(i);
				tmp = tmp.trim();
				split_line = tmp.split("\\s+");
				exam1[i] = Integer.parseInt(split_line[0]);
				exam2[i] = Integer.parseInt(split_line[1]);
				exam3[i] = Integer.parseInt(split_line[2]);
				exam4[i] = Integer.parseInt(split_line[3]);
			}



			for (int i = 0; i<lineSize; i++){
				if (exam1[i] > 0){
					avg1 = exam1[i] + avg1;
					avg1sz++;
				}
				if (exam2[i] > 0){
					avg2 = exam2[i] + avg2;
					avg2sz++;
				}
				if (exam3[i] > 0){
					avg3 = exam3[i] + avg3;
					avg3sz++;
				}
				if (exam4[i] > 0){
					avg4 = exam4[i] + avg4;
					avg4sz++;
				}
			}
			System.out.print("       Name: Your Name  CMPS 3500 Lab04\n");
			System.out.print("\n");
			System.out.print("       Exam1   Exam2   Exam3   Exam4\n");
			System.out.print("       =====   =====   =====   =====\n");

			for (int i = 0; i<lineSize; i++){
				System.out.printf("       %3d      %3d     %3d     %3d\n", 
					exam1[i], exam2[i], exam3[i], exam4[i]);
			}

			System.out.print("       =====   =====   =====   =====\n");
			System.out.print("Mean:    " + (avg1/avg1sz) + "      ");
			System.out.print((avg2/avg2sz) + "      ");
			System.out.print((avg3/avg3sz) + "      ");
			System.out.print((avg4/avg4sz) + "\n");
			try {
				PrintStream out = new PrintStream(new FileOutputStream("out.file")); 
				out.print("       Exam1   Exam2   Exam3   Exam4\n");
				out.print("       =====   =====   =====   =====\n");

				for (int i = 0; i<lineSize; i++){
					out.printf("       %3d      %3d     %3d     %3d\n", 
						exam1[i], exam2[i], exam3[i], exam4[i]);
				}

				out.print("       =====   =====   =====   =====\n");
				out.print("Mean:    " + (avg1/avg1sz) + "      ");
				out.print((avg2/avg2sz) + "      ");
				out.print((avg3/avg3sz) + "      ");
				out.print((avg4/avg4sz) + "\n");

				out.close();
			} 
			catch (FileNotFoundException e) {
				e.printStackTrace();
			}
			infile.close();
		}
		catch(IOException e){
			System.out.println("uh oh error somewhere in main");
		}

	}   
}