try to answer this

String [ ][ ] student= {{“Francis M. Reyes”,”92”,”89”,”93”,”94”},{“Joseph E. Estrada”,”80”,”70”,”81”,”78”},{“Ferdinand E. Marcos”,”77”,”93”,”83”,”90”},{“Cory C. Aquino”,”78”,”73”,”70”,”70”},{“Emilio A. Aguinaldo”,”78”,”86”,”78”,”80”},{“Ramon M. Magsaysay”,”91”,”81”,’’78”,”80”},{“Gloria M.Arroyo”,”84”,”74”,’’94”,”88”}};

Given the String array student having the initialization shown on the table above get the following:

GWA-General Waited Average

  • Name of the student who obtained the highest GWA

  • Name of the student who obtained the lowest GWA
    GWA=Prelim Grade 20% + Midterm Grade 20 % + Pre-final Grade 20% + Final Grade 40%

  • Name of the student who obtained the highest Prelim Grade

  • Name of the student who obtained the highest Midterm Grade

  • Name of the student who obtained the highest Pre-final Grade

  • Name of the student who obtained the highest Final Grade

  • Names of passing students (GWA>=75)

  • Names of failing students (GWA<75)

import java.util.ArrayList;

class Student {
	String name;
	int[] mark;
	double gwa;

	public Student()
	{
		name = null;
		mark = null;
		gwa = 0.0;
	}

	public Student(String[] x) {
		name = x[0];
		mark = new int[4];
		mark[0] = Integer.parseInt(x[1]);
		mark[1] = Integer.parseInt(x[2]);
		mark[2] = Integer.parseInt(x[3]);
		mark[3] = Integer.parseInt(x[4]);
		gwa = (mark[0] + mark[1] + mark[2] + mark[3] + mark[3]) / 5.0;
	}

	public String toString() {
		return name + "(GWA: " + gwa + ")";
	}
}

class StudentDetails {
	Student[] s;

	public StudentDetails() {
		s = null;
	}

	public void init(String[][] x) {
		s = new Student[x.length];
		for (int i = 0; i < s.length; ++i)
			s[i] = new Student(x[i]);
	}

	public Student getHighestGWA() {
		int maxIndex = 0;
		for (int i = 1; i < s.length; ++i)
			if (s[i].gwa > s[maxIndex].gwa)
				maxIndex = i;
		return s[maxIndex];
	}

	public Student getLowestGWA() {
		int minIndex = 0;
		for (int i = 1; i < s.length; ++i)
			if (s[i].gwa < s[minIndex].gwa)
				minIndex = i;
		return s[minIndex];
	}

	public Student getHighestPrelim() {
		int maxIndex = 0;
		for (int i = 1; i < s.length; ++i)
			if (s[i].mark[0] > s[maxIndex].mark[0])
				maxIndex = i;
		return s[maxIndex];
	}

	public Student getHighestMidterm() {
		int maxIndex = 0;
		for (int i = 1; i < s.length; ++i)
			if (s[i].mark[1] > s[maxIndex].mark[1])
				maxIndex = i;
		return s[maxIndex];
	}

	public Student getHighestPreFinal() {
		int maxIndex = 0;
		for (int i = 1; i < s.length; ++i)
			if (s[i].mark[2] > s[maxIndex].mark[2])
				maxIndex = i;
		return s[maxIndex];
	}

	public Student getHighestFinal() {
		int maxIndex = 0;
		for (int i = 1; i < s.length; ++i)
			if (s[i].mark[3] > s[maxIndex].mark[3])
				maxIndex = i;
		return s[maxIndex];
	}

	public ArrayList<Student> getPassList() {
		ArrayList<Student> passList = new ArrayList<Student>();
		for (int i = 0; i < s.length; ++i)
			if (s[i].gwa >= 75.0)
				passList.add(s[i]);
		return passList;
	}

	public ArrayList<Student> getFailList() {
		ArrayList<Student> passList = new ArrayList<Student>();
		for (int i = 0; i < s.length; ++i)
			if (s[i].gwa < 75.0)
				passList.add(s[i]);
		return passList;
	}
}

public class Main {
	public static void main(String[] args) {
		String[][] student = {
			{"Francis M. Reyes",    "92", "89", "93", "94"},
			{"Joseph E. Estrada",   "80", "70", "81", "78"},
			{"Ferdinand E. Marcos", "77", "93", "83", "90"},
			{"Cory C. Aquino",      "78", "73", "70", "70"},
			{"Emilio A. Aguinaldo", "78", "86", "78", "80"},
			{"Ramon M. Magsaysay",  "91", "81", "78", "80"},
			{"Gloria M.Arroyo",     "84", "74", "94", "88"}
		};

		StudentDetails stud = new StudentDetails();
		stud.init(student);

		System.out.println("Highest GWA     : " + stud.getHighestGWA());
		System.out.println(" Lowest GWA     : " + stud.getLowestGWA());
		System.out.println("Highest Prelim  : " + stud.getHighestPrelim());
		System.out.println("Highest Midterm : " + stud.getHighestMidterm());
		System.out.println("Highest PreFinal: " + stud.getHighestPreFinal());
		System.out.println("Highest Final   : " + stud.getHighestFinal());

		ArrayList<Student> temp = null;

		System.out.println();
		temp = stud.getPassList();
		System.out.println("Passed Students******");
		for (Student tmp : temp)
			System.out.println("\t" + tmp);

		System.out.println();
		temp = stud.getFailList();
		System.out.println("Failed Students******");
		for (Student tmp : temp)
			System.out.println("\t" + tmp);
	}
}
1 Like

You can also find this at http://ideone.com/U20iuJ