Code:
package admissionz;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.InputMismatchException;
import java.util.Random;
import java.util.Scanner;
class Students {
String name;
int age;
String address;
String courseIntended;
double gpa;
public Students(String name, int age, String address, String courseIntended, double gpa) {
this.name = name;
this.age = age;
this.address = address;
this.courseIntended = courseIntended;
this.gpa = gpa;
}
}
public class Main {
private ArrayList<Students> students = new ArrayList<>();
private String[] courses = {"BSCS", "BSIT", "BSChem", "Nursing"};
private Scanner input = new Scanner(System.in);
private static final double REQUIRED_GPA = 93.0;
int year = 2024;
int month = 4;
int score = -1;
public static void main(String[] args) {
Main mainApp = new Main();
mainApp.run();
}
public void run() {
System.out.println("| Thank you for Checking on Biglang Gwapo University |");
System.out.println("Here are the offered Courses: " + Arrays.toString(courses));
System.out.println("----------------------------");
String answer;
do {
System.out.print("Would you like to register? (Yes or No): ");
answer = input.nextLine().trim().toLowerCase();
System.out.println("----------------------------");
switch (answer) {
case "yes":
studentReg();
break;
case "no":
System.out.println("Thank you! Have a great day!");
input.close();
break;
default:
System.out.println("Invalid input. Please enter Yes or No.");
}
} while (!answer.equals("yes") && !answer.equals("no"));
input.close();
public void studentReg() {
String info = "Required Info: Name, Age, Address, Course Intended, and GPA";
boolean detailsCorrect = false;
while (!detailsCorrect) {
System.out.println(info);
System.out.println("----------------------------");
System.out.print("Name: ");
String name = input.nextLine();
int age = 0;
boolean validAge = false;
while (!validAge) {
System.out.print("Age: ");
if (input.hasNextInt()) {
age = input.nextInt();
if (age < 15 || age > 100) {
System.out.println("Invalid Age Range. Please enter an age between 15 and 100.");
} else {
validAge = true;
}
} else {
System.out.println("Please enter a valid Age.");
}
input.nextLine();
}
System.out.print("Address: ");
String address = input.nextLine();
boolean validCourse = false;
String ci = "";
while (!validCourse) {
System.out.print("Course Intended: ");
ci = input.nextLine();
for (String course : courses) {
if (ci.equalsIgnoreCase(course)) {
validCourse = true;
break;
}
}
if (!validCourse) {
System.out.println("Invalid Course Input. Please select from the offered courses.");
}
}
double gpa;
while (true) {
System.out.print("GPA: ");
if (input.hasNextDouble()) {
gpa = input.nextDouble();
if (gpa < 0 || gpa > 100) {
System.out.println("Please enter a GPA between 0 and 100.");
continue;
}
break;
} else {
System.out.println("Enter a valid GPA.");
input.nextLine();
}
}
input.nextLine();
System.out.println("----------------------------");
// CONFIRMING DETAILS
System.out.println("Please double-check your details:");
System.out.printf("Name: %s\nAge: %d\nAddress: %s\nCourse Intended: %s\nGPA: %.2f\n",
name, age, address, ci, gpa);
System.out.print("Are the information correct? (Yes or No): ");
String response = input.nextLine().trim();
if (response.equalsIgnoreCase("Yes")) {
detailsCorrect = true;
students.add(new Students(name, age, address, ci, gpa));
System.out.println("----------------------------");
System.out.println("Thanks for applying. Please wait while we verify your details...");
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("----------------------------");
if (gpa >= REQUIRED_GPA) {
System.out.println("Congratulations! You are eligible to take the entrance exam.");
} else {
System.out.println("Thank you for applying. Unfortunately, your GPA does not meet the required 93. We wish you the best in your future endeavors.");
}
} else {
System.out.println("Please re-enter your details.");
}
}
}
public void Schedule() {
Random random = new Random();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
System.out.println("University Admission Process");
System.out.println("----------------------------\n");
boolean satisfied = false;
while (!satisfied) {
System.out.println("Scheduling your exam.");
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
int day = random.nextInt(30) + 1;
LocalDate randomDate = LocalDate.of(year, month, day);
String formattedDate = randomDate.format(formatter);
System.out.println("Your Exam Date is " + formattedDate);
System.out.print("Are you satisfied with your scheduled date? (Yes or No): ");
String answer = input.nextLine();
if (answer.equalsIgnoreCase("Yes")) {
satisfied = true;
} else {
System.out.println("Scheduling a new exam date\n");
System.out.println("----------------------------\n");
}
}
while (true) {
System.out.println("Step 2: Input your exam score:");
try {
score = input.nextInt();
if (score < 0 || score > 100 ) {
System.out.println("Input valid score ");
continue;
}
break;
} catch (InputMismatchException e) {
System.out.println("Invalid input. Please enter a valid number score.");
input.next();
}
}
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("----------------------------\n");
if (score>80) {
System.out.println("Congratulations! You are qualified to be admitted to the University.");
}else {
System.out.println("Sorry your score did not qualify to be admitted to this University");
}
}
}
Exception in thread "main" java.lang.NoSuchMethodError: 'void admissionz.Students.<init>(java.lang.String, int, java.lang.String, java.lang.String, double)'
at admissionz.Main.studentReg(Main.java:151)
at admissionz.Main.run(Main.java:56)
at admissionz.Main.main(Main.java:38)