☕ Java For PHC BOT

PHC-Shade

Honorary Poster
Java:
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}; 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.print("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; int courseIndex = -1; for (int i = 0; i < courses.length; i++) { if (desiredCourse.equalsIgnoreCase(courses[i])) { courseIndex = i; break; } } boolean isQualified = score >= reqscore[courseIndex]; if (isQualified) { System.out.println("You are qualified for the course"); System.out.println("You have successfully chosen: " + desiredCourse); Subjects(); } 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 void Subjects() { String[] subjects = {"Math", "History", "CC10", "CC11", "Philosophy", "Theology", "NSTP", "PE"}; ArrayList<String> enrolledSubjects = new ArrayList<>(); System.out.println("----------------------------"); boolean showSubjects = true; while (true) { if (showSubjects) { System.out.println("Here are the offered Subjects"); System.out.println("----------------------------\n"); for (int i = 0; i < subjects.length; i++) { System.out.println("[" + (i + 1) + "] " + subjects[i]); } System.out.println("----------------------------\n"); } System.out.print("Do you want to Add, Remove Subjects or Exit (Type: Add, Remove, Exit): "); String response = input.nextLine(); if (response.equalsIgnoreCase("Add")) { addSubjects(subjects, enrolledSubjects, input); showSubjects = false; } else if (response.equalsIgnoreCase("Remove")) { removeSubjects(subjects, enrolledSubjects, input); showSubjects = false; } else if (response.equalsIgnoreCase("Exit")) { break; } else { System.out.println("Invalid option. Please try again."); } } System.out.println("You are currently enrolled in: " + enrolledSubjects); input.close(); } private static void addSubjects(String[] subjects, ArrayList<String> enrolledSubjects, Scanner input) { System.out.print("Enter the number of the subject you want to add: "); try { int subjectNumber = input.nextInt(); input.nextLine(); if (subjectNumber > 0 && subjectNumber <= subjects.length) { String subjectToAdd = subjects[subjectNumber - 1]; if (!enrolledSubjects.contains(subjectToAdd)) { enrolledSubjects.add(subjectToAdd); System.out.println(subjectToAdd + " has been added."); } else { System.out.println("You are already enrolled in " + subjectToAdd); } } else { System.out.println("Invalid subject number."); } } catch (Exception e) { System.out.println("Please enter a valid number."); input.nextLine(); } } private static void removeSubjects(String[] subjects, ArrayList<String> enrolledSubjects, Scanner input) { if (enrolledSubjects.isEmpty()) { System.out.println("You are not currently enrolled in any subjects."); return; } System.out.println("Here are your currently enrolled Subjects:"); for (int i = 0; i < enrolledSubjects.size(); i++) { System.out.println("[" +(i + 1) + "] " + enrolledSubjects.get(i)); } System.out.print("Enter the number of the subject you want to remove: "); try { int subjectNumber = input.nextInt(); input.nextLine(); if (subjectNumber > 0 && subjectNumber <= enrolledSubjects.size()) { String subjectToRemove = enrolledSubjects.remove(subjectNumber - 1); System.out.println(subjectToRemove + " has been removed."); } else { System.out.println("Invalid subject number."); } } catch (Exception e) { System.out.println("Please enter a valid number."); input.nextLine(); } } public static void main(String[] args) { new CollegeAdmissionSystem(); } }

nag eerror ulit code ko diko alam ano ang possible reason
 
Based on your Java code for a college admission system, I'll help you troubleshoot potential sources of errors. Here are some common areas where issues might arise, along with some specific observations from the code you posted:

1. Scanner Issues: One common issue in Java when using Scanner is mixing nextLine() with other nextXXX() methods. This can sometimes skip inputs because nextLine() consumes the newline character left by methods like nextInt() or nextDouble(). You seem to be aware of this since you often use input.nextLine(); after nextInt() and nextDouble(). Make sure these are consistently placed to avoid skipping input.

2. Input Validation: Your code does some input validation (e.g., checking if the age is between 15 and 100, GPA is between 0 and 100). Ensure that these validations cover all edge cases. Also, consider what happens if a user inputs non-integer values where integers are expected (you handled some of these with InputMismatchException).

3. String Comparison: You use equalsIgnoreCase() and toLowerCase() for input processing. This is good for making the input case-insensitive, but ensure that all comparisons that should be case-insensitive are handled this way.

4. Infinite Loops: Your code includes several loops that depend on user input to break. Make sure that there's always a clear and reachable exit condition from these loops. For example, in your do-while loop for the initial registration query and in the scheduling loop, verify that the conditions and user prompts are set up such that an exit is always possible.

5. Error Handling and Debugging:
- Add more print statements temporarily to see the flow of execution and values of variables at different stages.
- Check if all parts of the system are reachable and functional (e.g., does the system correctly handle an input of "no" at the start?).

6. Logical Errors:
- In the Course() method, if a student is not qualified for their desired course and chooses another course, there's no validation whether the new choice is valid or not.
- Also, ensure the logic for subject adding and removal in Subjects() method is functioning as intended.

7. Resource Management: You are closing the scanner input.close(); at multiple places (CollegeAdmissionSystem constructor and Subjects() method). Closing a Scanner wrapped around System.in can lead to issues if trying to read from System.in again afterward. Consider structuring your code so the Scanner is opened and closed exactly once.

8. Concurrent Modification: If there are any modifications (add/remove) to lists while iterating through them in loops, make sure you are using safe methods to avoid ConcurrentModificationException.

Lastly, if you are still having trouble, please specify the error message or the behavior you are observing that seems incorrect. This can help in pinpointing the exact issue more effectively.
 

About this Thread

  • 1
    Replies
  • 219
    Views
  • 1
    Participants
Last reply from:
Unknown user

Trending Topics

Online now

Members online
335
Guests online
1,111
Total visitors
1,446

Forum statistics

Threads
2,273,575
Posts
28,950,428
Members
1,235,837
Latest member
ninzi
Back
Top