ABC College is a local education provider that specialises in software development, information

management, and mobile application development training. The educational provider has
recently opened a college in your town and has hired the software development house you work
for to design a Java application to manage their students.
Your line manager has requested you develop the application with the following requirements:
1.1. When the application starts, it must display the following menu structure:
STUDENT MANAGEMENT APPLICATION
*************************************************
Please enter (1) to launch menu or any other key to exit
if 1 is chosen
Please select one of the menu items:
(1) capture a new student
(2) Search for a student
(3) delete a student
(4) print a student report
(5) exit application
1.2. If the user selects to capture a new student, you must save all the information supplied by
the user to memory. use arrays or array lists to save the student model to achieve
this.
Sample Capture Student Screen Shot:
CAPTURE A NEW STUDENT
***********************************
Enter the student ID: 34256
Enter student name: tarishka
enter student age: 19
enter student email:tqriwyi
enter student course: disd
Enter (1) to launch menu or any other key to exit
1.3. If the user enters an incorrect student age, prompt the user to re-enter a valid one. A valid
student age is any age greater than or equal to 16. Only numbers are allowed to be
supplied when entering a student’s age:
Enter student age: c
You have entered the incorrect student age!!!!
please re-enter the student age >>
Sample Screen Shot of an invalid age:
Enter student age: 10
You have entered the incorrect student age!!!!
please re-enter the student age >>
1.4. Once the entire submission has been completed, the user must be informed that the
student details have been successfully saved.
1.5. The user must have the ability to search for a student. The user will select menu item two,
which will prompt the user to enter a student ID. If a student is found in the application,
display the student’s details to the user. If no student is found, display an error message to
the user that the student cannot be located.

Sample Student Search Screen Shot:
Enter student ID to search:34256
---------------------------------------------
student ID: 34256
student name: tarishka
student age: 19
student email:tqriwyi
student course: disd
-------------------------------------------------
Enter (1) to launch menu or any other key to exit

Sample Invalid Student Screen Shot:
Enter the student ID to Search: 55555
------------------------------------------------------
Student with ID: 55555 was NOT found!!!
------------------------------------------------------
Enter (1) to launch menu or any other key to exit

1.6. The user must have the option to delete a student that has been saved. The user must first
enter the student ID to be deleted. The user must confirm whether they want to delete the
student.
Enter student ID to delete :34256
Are you sure you want to delete Student 34256 from the system?
Yes (y) to delete: y
----------------------------------------------------------------------------------------
Student with student ID: 34256 WAS deleted!!!!!
----------------------------------------------------------------------------------------
Enter (1) to launch menu or any other key to exit
1.7. When the user selects to view the student report, display the report below, which is
generated from the memory collection in your application.

Sample Report Screen Shot:
STUDENT 1
-------------------------------------------
student ID: 34256
student name: tarishka
student age: 19
student email:tqriwyi
student course: disd
---------------------------------------------
STUDENT 2
---------------------------------------------
student ID: 67879
student name: sam
student age: 19
student email:yy38798
student course: djjkd
----------------------------------------------
Enter (1) to launch menu or any other key to exit
1.8. Finally, provide the ability for the user to exit the application.
Additional Requirements:
1.9. In your solution, you are required to create a class called Student which will contain all your
working methods.
1.10. This class will, as a minimum, contain the following methods, but you are encouraged to
add more methods:
• SaveStudent();
• SearchStudent();
• DeleteStudent();
• StudentReport();
• ExitStudentApplication ();
1.11. Create a main class to run your application.
in java

Here is an implementation of the requirements mentioned above in Java:

```java
import java.util.ArrayList;
import java.util.Scanner;

class Student {
private int studentID;
private String studentName;
private int studentAge;
private String studentEmail;
private String studentCourse;

public void setStudentID(int studentID) {
this.studentID = studentID;
}

public void setStudentName(String studentName) {
this.studentName = studentName;
}

public void setStudentAge(int studentAge) {
this.studentAge = studentAge;
}

public void setStudentEmail(String studentEmail) {
this.studentEmail = studentEmail;
}

public void setStudentCourse(String studentCourse) {
this.studentCourse = studentCourse;
}

public int getStudentID() {
return studentID;
}

public String getStudentName() {
return studentName;
}

public int getStudentAge() {
return studentAge;
}

public String getStudentEmail() {
return studentEmail;
}

public String getStudentCourse() {
return studentCourse;
}
}

public class StudentManagementApplication {
private final ArrayList<Student> students;

public StudentManagementApplication() {
students = new ArrayList<>();
}

public void showMenu() {
System.out.println("STUDENT MANAGEMENT APPLICATION");
System.out.println("*************************************************");
System.out.println("Please enter (1) to launch menu or any other key to exit");
System.out.println("if 1 is chosen");
System.out.println("Please select one of the menu items:");
System.out.println("(1) capture a new student");
System.out.println("(2) Search for a student");
System.out.println("(3) delete a student");
System.out.println("(4) print a student report");
System.out.println("(5) exit application");
}

public void saveStudent() {
Scanner scanner = new Scanner(System.in);
Student student = new Student();

System.out.println("CAPTURE A NEW STUDENT");
System.out.println("***********************************");

System.out.print("Enter the student ID: ");
student.setStudentID(scanner.nextInt());

scanner.nextLine(); // Consume the remaining newline character

System.out.print("Enter student name: ");
student.setStudentName(scanner.nextLine());

System.out.print("Enter student age: ");
int age = scanner.nextInt();
while (age < 16) {
System.out.println("You have entered an incorrect student age!!!!");
System.out.print("Please re-enter the student age: ");
age = scanner.nextInt();
}
student.setStudentAge(age);

scanner.nextLine(); // Consume the remaining newline character

System.out.print("Enter student email: ");
student.setStudentEmail(scanner.nextLine());

System.out.print("Enter student course: ");
student.setStudentCourse(scanner.nextLine());

students.add(student);

System.out.println("Student details have been successfully saved.");
}

public void searchStudent() {
Scanner scanner = new Scanner(System.in);

System.out.print("Enter student ID to search: ");
int studentID = scanner.nextInt();

boolean found = false;
for (Student student : students) {
if (student.getStudentID() == studentID) {
System.out.println("---------------------------------------------");
System.out.println("student ID: " + student.getStudentID());
System.out.println("student name: " + student.getStudentName());
System.out.println("student age: " + student.getStudentAge());
System.out.println("student email: " + student.getStudentEmail());
System.out.println("student course: " + student.getStudentCourse());
System.out.println("---------------------------------------------");
found = true;
break;
}
}

if (!found) {
System.out.println("------------------------------------------------------");
System.out.println("Student with ID: " + studentID + " was NOT found!!!");
System.out.println("------------------------------------------------------");
}
}

public void deleteStudent() {
Scanner scanner = new Scanner(System.in);

System.out.print("Enter student ID to delete: ");
int studentID = scanner.nextInt();

boolean found = false;
for (Student student : students) {
if (student.getStudentID() == studentID) {
System.out.println("Are you sure you want to delete Student " + student.getStudentID() + " from the system?");
System.out.print("Yes (y) to delete: ");
String confirm = scanner.next();

if (confirm.toLowerCase().equals("y")) {
students.remove(student);
System.out.println("----------------------------------------------------------------------------------------");
System.out.println("Student with student ID: " + studentID + " WAS deleted!!!!!");
System.out.println("----------------------------------------------------------------------------------------");
} else {
System.out.println("Deletion operation cancelled.");
}

found = true;
break;
}
}

if (!found) {
System.out.println("------------------------------------------------------");
System.out.println("Student with ID: " + studentID + " was NOT found!!!");
System.out.println("------------------------------------------------------");
}
}

public void studentReport() {
System.out.println("STUDENT REPORT");
System.out.println("-------------------------------------------");
for (int i = 0; i < students.size(); i++) {
System.out.println("STUDENT " + (i + 1));
System.out.println("-------------------------------------------");
System.out.println("student ID: " + students.get(i).getStudentID());
System.out.println("student name: " + students.get(i).getStudentName());
System.out.println("student age: " + students.get(i).getStudentAge());
System.out.println("student email: " + students.get(i).getStudentEmail());
System.out.println("student course: " + students.get(i).getStudentCourse());
System.out.println("-------------------------------------------");
}
}

public void exitStudentApplication() {
System.exit(0);
}

public static void main(String[] args) {
StudentManagementApplication application = new StudentManagementApplication();
application.showMenu();

Scanner scanner = new Scanner(System.in);
int option = scanner.nextInt();

switch (option) {
case 1:
application.saveStudent();
application.showMenu();
break;
case 2:
application.searchStudent();
application.showMenu();
break;
case 3:
application.deleteStudent();
application.showMenu();
break;
case 4:
application.studentReport();
application.showMenu();
break;
case 5:
application.exitStudentApplication();
break;
default:
break;
}
}
}
```

You can run this code to get the desired functionality for managing students in ABC College.

Sure, here's a step-by-step guide on how to develop the Java application to manage students for ABC College:

Step 1: Create a new Java project.
Step 2: Create a class called "Student" with the following attributes: studentId, studentName, studentAge, studentEmail, and studentCourse.
Step 3: In the Student class, create the following methods:
- SaveStudent() method to capture and store student details.
- SearchStudent() method to search for a student by their ID.
- DeleteStudent() method to delete a student by their ID.
- StudentReport() method to generate a report of all the saved students.
- ExitStudentApplication() method to exit the application.

Step 4: In the main class, create a method called "displayMenu()" to display the menu options to the user.
Step 5: Implement the logic in the displayMenu() method to handle user input and call the respective methods from the Student class based on the selected option.
Step 6: Add error handling to validate user input, such as the student's age, and prompt the user to re-enter if necessary.
Step 7: Once the user selects to capture a new student, prompt them to enter the student details using the Scanner class.
Step 8: In the SaveStudent() method, create an ArrayList or array to store the student objects.
Step 9: Implement the SearchStudent() method to search for a student by their ID and display their details if found. If not found, display an error message.
Step 10: Implement the DeleteStudent() method to prompt the user to enter the student ID for deletion and confirm their choice. Remove the student object from the ArrayList or array if confirmed.
Step 11: Implement the StudentReport() method to iterate through the ArrayList or array and display the details of all saved students.
Step 12: Implement the ExitStudentApplication() method to exit the application when selected.

That's it! You have now developed a Java application to manage students for ABC College. Remember to test your application thoroughly to ensure it meets all the requirements.

To develop the Java application for managing students with the given requirements, you can follow the following steps:

1. Create a class called "Student" with the required attributes (student ID, name, age, email, course) and methods to perform the specified operations (save, search, delete, report, exit). This will be your main class for handling everything related to students.

Example:

```java
public class Student {
// Attributes
private int studentID;
private String studentName;
private int studentAge;
private String studentEmail;
private String studentCourse;

// Methods for performing operations on Students
public void saveStudent() {
// Implementation to capture student details and save to memory (using arrays or array lists)
}

public void searchStudent() {
// Implementation to search for a student by ID and display details if found, else display error message
}

public void deleteStudent() {
// Implementation to delete a student by ID after confirming the deletion with the user
}

public void studentReport() {
// Implementation to generate and display a report of all saved students
}

public void exitStudentApplication() {
// Implementation to exit the application
}
}
```

2. Create a main class (e.g., "StudentManagementApplication") to run the application and handle the menu structure. Inside the main class, create an instance of the Student class and call its methods based on user input.

Example:

```java
import java.util.Scanner;

public class StudentManagementApplication {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
Student student = new Student();

System.out.println("STUDENT MANAGEMENT APPLICATION");
System.out.println("*********************************");
System.out.println("Please enter (1) to launch menu or any other key to exit");

String input = scanner.nextLine();
if (input.equals("1")) {
while (true) {
System.out.println("Please select one of the menu items:");
System.out.println("(1) Capture a new student");
System.out.println("(2) Search for a student");
System.out.println("(3) Delete a student");
System.out.println("(4) Print a student report");
System.out.println("(5) Exit application");

input = scanner.nextLine();
if (input.equals("1")) {
student.saveStudent();
} else if (input.equals("2")) {
student.searchStudent();
} else if (input.equals("3")) {
student.deleteStudent();
} else if (input.equals("4")) {
student.studentReport();
} else if (input.equals("5")) {
student.exitStudentApplication();
break;
} else {
System.out.println("Invalid input! Please try again.");
}
}
}
}
}
```

3. Implement the methods in the Student class according to the specifications mentioned in the requirements. Use arrays or array lists to save the student model in memory. Validate inputs and handle error cases as mentioned.

Note: The implementation details for capturing inputs, saving to memory, searching, deleting, printing reports, and exiting the application will depend on your specific requirements and design choices.

Compile and run the "StudentManagementApplication" class to launch the application and test the functionalities.