Hello everyone, I still learning java so I'm still not familiar with how to call and how to change from different classes and using arrays but right now I'm trying to create a simple code like a school system where there show all the student name list with a grade in all the classes there are in using arrays object to store the data. I don't want to use ArrayList so NO ArrayList.
and it seems that I don't know how to do it. I'm really stuck right now can anyone help me with my code.
I WANT MY OUTPUT TO BE LIKE THIS:-
=== SCHOOL LISTS ===
1. Class Thunder with Total grade: 146
2. Class Lightning with Total grade: 103.9
3. Class Sunrise with Total grade: 115.5
--------------------
Class: Sunrise
Class quantity: 5
Student1: James Shawn
Grade: 75
Student2: Ali Pole
Grade: 30.5
Student3: Tong Kim
Grade: 10
Total Grade: 115.5
------------------------
Class: Thunder
Class quantity: 5
Student1: Mark Lee
Grade: 65.5
Student2: James Mic
Grade: 20.4
Student3: James Mic
Grade: 18.0
Total Grade: 103.9
------------------------
Class: Lightning
Class quantity: 5
Student1: Luke Kim
Grade: 90
Student2: Noth Shawn
Grade: 44
Student3: Lex Wale
Grade: 12
Total Grade: 146
Do you want to go back to the selection function?
Press Y or N:
//if yes they will go back to the functionSelection
//if no they will ask users if they want to exit the systems.
Do you want to exit (Y or N):
//if yes they will exit the systems
//if no they will go back to the functionSelection.
---------------------------------------------------------------------------------------------------------------------------------------
The class should have an array class of 10 sizes but initialize with 5 pre-team set.
and the student is only set to have 20 sizes (mean 20 students per class can't be more than the number set)
BELOW ARE MY CODE:-
STUDENT CLASS
-----------------------------------------------------------------------import java.util.Comparator; public class Student { private String studentName; private int grade; public Student(String studentName, int score) { this.studentName = studentName; this.grade = grade; } public String toString() { return "\nStudent Name: " + studentName + "\nGrade: " + grade; } public String getStudentName() { return studentName; } public int getGrade() { return grade; } public void setStudentName(String studentName) { this.studentName = studentName; } public void setGrade(int grade) { this.grade = grade; } } //Sorting side class sortGrade implements Comparator<Student> { @Override public int compare(Student a, Student b) { return (a.getGrade() - b.getGrade()); } }
CLASS CLASS
--------------------------------------------------------------------------------------public class Class { Student[] student; private String className; private int classQuantity; private int totalGrade = 0; //add student to the class public void addNewStudent(String studentName, double grade) { } public double calculateTotalGrade() { for (Student students : student) { totalGrade += students.getGrade(); } return Math.round(totalGrade * 10.0) / 10.0; } public Class(Student[] student, String className, int classQuantity) { this.student = student; this.className = className; this.classQuantity = classQuantity; } public Class(String className, int classQuantity) { this.className = className; this.classQuantity = classQuantity; } public String toString() { String studentList = " "; for (int i = 0; i < student.length; i++) { studentList += "\n\tStudent " + (i + 1) + ": " + student[i].getStudentName() + "\n\tGrade: " + student[i].getGrade(); } return "\nClass Name: " + className + "\nClass Quantity: " + classQuantity + "\n" + studentList; } }
MAIN DRIVER CLASS
import java.util.Arrays; import java.util.Collections; import java.util.Comparator; import java.util.Scanner; public class MainDriver { private Object[] a; void printSort(Student[] sortList) { for (Object sort : a) { System.out.print(sort + " "); } System.out.println(); } public static void main(String[] args) { int size = 10; Class[] classroom = new Class[size]; Student[] studentList1 = { new Student("Tong Kim", 10), new Student("Ali Pole", 30), new Student("James Shawn", 75)}; Student[] studentList2 = { new Student("James Mic", 20), new Student("Ho Kim", 18), new Student("Mark Lee", 65)}; Student[] studentList3 = { new Student("Luke Kim", 90), new Student("Noth Shawn", 44), new Student("Lex Wale", 12) }; classroom[0] = new Class(studentList1, "Sunrise", 20); classroom[1] = new Class(studentList2, "Thunder", 10); classroom[2] = new Class(studentList3, "Lightning", 5); Scanner input = new Scanner(System.in); boolean functionSelection = true; // Student[] SortList = studentList1; while (functionSelection) { System.out.println("=== SCHOOL SYSTEM === \n"); System.out.println("[1] Add New Class"); System.out.println("[2] Exit"); System.out.print("\nChoose a function: "); //Check if it is other then number if (!input.hasNextInt()) { System.out.println(" \nChoose the existing number"); input.nextLine(); continue; } int choice = input.nextInt(); String newClassName, searchClass, newName, addName; switch (choice) { case 1: //Show School List /*List all class, student, grade and the total grade in ascending*/ System.out.println("=== SCHOOL LIST ==="); Student[] SortList = studentList1; //Descending Order Arrays Comparator<Student> descendingOrder; descendingOrder = Collections.reverseOrder (new sortGrade()); Arrays.sort(SortList, descendingOrder); System.out.println(Arrays.toString(SortList) + "\n"); case 2: System.exit(0); break; default: System.out.println(" \nChoose the existing number"); } } } }
Please help me with my code