Java:
package admissionz;
import java.util.Scanner;
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;
class Students {
String name;
int age;
String address;
String courseIntended;
double gpa;
int score;
public Students(String name, int age, String address, String courseIntended, double gpa, int score) {
this.name = name;
this.age = age;
this.address = address;
this.courseIntended = courseIntended;
this.gpa = gpa;
this.score = score;
}
}
public class CollegeAdmissionSystem {
public ArrayList<Students> students = new ArrayList<>();
String[] courses = {"BSCS", "BSIT", "BSIS", "BSEMC"};
int[] reqscore = {65, 70, 75, 80};
int courseIndex = 0;
Scanner input = new Scanner(System.in);
String info, answer;
private static final double REQUIRED_GPA = 93.0;
public CollegeAdmissionSystem() {
System.out.println("| Thank you for Checking on Biglang Gwapo University |");
System.out.println("Here are the offered Courses: " + Arrays.toString(courses));
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
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!");
break;
default:
System.out.println("Invalid input. Please enter Yes or No.");
}
} while (!answer.equals("yes") && !answer.equals("no"));
input.close();
}
public void studentReg() {
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();
String ci = "";
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;
while (!validCourse) {
System.out.print("Course Intended: ");
ci = input.nextLine().toUpperCase();
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("----------------------------");
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, 0));
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.");
Schedule();
} 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() {
int year = 2024;
int month = 4;
int score = -1;
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();
}
}
if (!students.isEmpty()) {
students.get(students.size() - 1).score = score;
} else {
System.out.println("No student details found to update the score.");
}
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("----------------------------\n");
if (score>60) {
System.out.println("Congratulations! You are qualified to be admitted to the University.");
Course();
}else {
System.out.println("Sorry your score did not qualify to be admitted to this University");
}
}
public void Course() {
if (students.isEmpty()) {
System.out.println("No student details found to determine course qualification.");
return;
}
Students lastStudent = students.get(students.size() - 1);
String desiredCourse = lastStudent.courseIntended;
int score = lastStudent.score;
boolean isQualified = score >= reqscore[courseIndex];
if (isQualified) {
System.out.println("You are qualified for the course");
System.out.println("You have successfully chosen: " + desiredCourse);
} else {
System.out.println("You are not qualified for the desired course.");
System.out.println("Please choose another course.");
input.nextLine();
String otherCourse = input.nextLine();
System.out.println("You have successfully chosen: " + otherCourse);
}
}
public void displayStudents() {
for(Students student : students){
System.out.printf(
"Name: %s\nAge: %d\nAddress: %s\nCourse Intended: %s\nGPA: %.2f\nScore: %d\n",
student.name,
student.age,
student.address,
student.courseIntended,
student.gpa,
student.score);
}
}
public static void main(String[] args) {
new CollegeAdmissionSystem();
}
}