import java.util.
*;
//Student Management System-Project #1
public class Main {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
Random random=new Random();
double [] allGrades=new double [10000];
List<Student> Students=new ArrayList<>();
List<List<Course>> allCourses=new ArrayList<>();
for(int k=0;k<10000;k++){
System.out.println("\n"+"Welcome to school student file!- Mziuri");
System.out.println("------------------------------------------");
System.out.println("Student Management System-class of 2024/2025"+"\
n"+"\n");
System.out.println("Start registering a student! ");
System.out.println("------------------------------------------");
//
System.out.print("Enter Student Name: ");
String name=scanner.next();
System.out.print("Enter Student Surname: ");
String surname=scanner.next();
System.out.print("Enter Student Gender: ");
String gender=scanner.next();
System.out.print("Enter Password: ");
String password=scanner.next();
System.out.print("Enter Student Social Security Number: ");
int SSN=scanner.nextInt();
System.out.print("Enter Student Age: ");
int age=scanner.nextInt();
System.out.print("Enter Student Grade: ");
int grade=scanner.nextInt();
System.out.print("Enter Student phoneNumber: ");
int phoneNumber=scanner.nextInt();
//
Student object= new
Student(name,surname,gender,password,SSN,age,grade,phoneNumber);
Students.add(object);
System.out.println("Student registered successfully!"+"\n");
String []courses ={"Java","C++","#C","Python","Web
programming","Computer game programming"};
//
System.out.println("How many courses do you want to enroll in?: ");
int n=scanner.nextInt();
if(n>6) {
System.out.println("System detects only 6 courses, change input:
");
n=scanner.nextInt();
}
int courseGradeSum=0;
List<Course> studentsCourses = new ArrayList<>();
allCourses.add(studentsCourses);
for(int i=0;i<n;i++) {
System.out.println("Which programming course do you want to enroll
in?: ");
String input;
while(true) {
input = scanner.next();
boolean a = false;
int m = 6;
while (m >= 0) {
if (input.equals(courses[m - 1])) {
a = true;
break;
}
m--;
}
if (!a) System.out.println("COURSE_NOT_FOUND-> ENTER AGAIN");
else break;
}
Course object1=new Course(name,surname,input,random.nextInt(100));
studentsCourses.add(object1);
courseGradeSum+=object1.getGrade();
}
allGrades[k]= (double) courseGradeSum /n;
System.out.println("Do you want to leave the program?");
System.out.println("Write 'NO' if you want to register another
student");
System.out.println("Write 'YES' if you want to stop registering");
String input=scanner.next();
if(input.equals("YES")) break;
}
System.out.println("Do you want to see TOP 3 student info?: ");
int realLength=0;
for(int i=0;i<10000;i++){
if(allGrades[i]!=0) realLength++;
}
double []allGrades1=new double[realLength];
for(int i=0;i<realLength;i++){
allGrades1[i]=allGrades[i];
}
String input1=scanner.next();
if(input1.equals("YES")){
System.out.println("TOP 3 by overall grade:" );
//
double [] allGradesCopy=allGrades1;
Arrays.sort(allGrades1);
for(int i=0;i<allGrades1.length;i++){
if(allGradesCopy[i]==allGrades1[allGrades1.length-1]){
System.out.println("First: "+Students.get(i).getName()+"\
n"+"Overall Score: "+allGrades1[allGrades1.length-1]);
while(realLength>=1) {
System.out.println(allCourses.get(i).get(realLength-
1).toString());
realLength--;
}
}
}
if(allGrades1.length>=2) {
for (int i = 0; i < allGrades1.length; i++) {
if (allGradesCopy[i] == allGrades1[allGrades1.length - 2]) {
System.out.println("Second: " + Students.get(i).getName() +
"\n" + "Overall Score: " + allGrades1[allGrades1.length - 2]);
while(realLength>=1) {
System.out.println(allCourses.get(i).get(realLength-
1).toString());
realLength--;
}
}
}
}
if(allGrades1.length>=3) {
for (int i = 0; i < allGrades1.length; i++) {
if (allGradesCopy[i] == allGrades1[allGrades1.length - 3]) {
System.out.println("First: " + Students.get(i).getName() +
"\n" + "Overall Score: " + allGrades1[allGrades1.length - 3]);
while(realLength>=1) {
System.out.println(allCourses.get(i).get(realLength-
1).toString());
realLength--;
}
}
}
}
}
System.out.println("\n"+"--Shutting down the system--");
}
}
//Person.java
public class Person {
private final String name;
private final String surname;
Person(String name,String surname){
this.name=name;
this.surname=surname;
}
String getName() {
return name;
}
String getSurname() {
return surname;
}
}
//Student.java
public class Student extends Person {
private final String gender;
private final String password;
private final int SSN; //Social security number
private final int age;
private final int grade;
private final int phoneNumber;
Student(String name, String surname, String gender, String password,int SSN,
int age, int grade, int phoneNumber) {
super(name,surname);
this.gender = gender;
this.password=password;
this.SSN = SSN;
this.age = age;
this.grade = grade;
this.phoneNumber = phoneNumber;
}
String getGender() {
return gender;
}
String getPassword() {
return password;
}
int getSSN() {
return SSN;
}
int getAge(){
return age;
}
int getGrade(){
return grade;
}
int getPhoneNumber(){
return phoneNumber;
}
//Course.java
public class Course extends Person{
private final String courseName;
private int grade;
Course(String name,String surname,String courseName, int grade) {
super(name,surname);
this.courseName = courseName;
this.grade = grade;
}
String getCourseName(){
return courseName;
}
int getGrade(){
return grade;
}
void setGrade(int grade){
this.grade=grade;
@Override
public String toString() {
return "Course name: "+courseName+"\n"+"Student's grade: (1-100%)- "+grade;
}
}