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 example solution in Java:

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

public class Student {
private int id;
private String name;
private int age;
private String email;
private String course;

public Student(int id, String name, int age, String email, String course) {
this.id = id;
this.name = name;
this.age = age;
this.email = email;
this.course = course;
}

public int getId() {
return id;
}

public String getName() {
return name;
}

public int getAge() {
return age;
}

public String getEmail() {
return email;
}

public String getCourse() {
return course;
}

public void displayDetails() {
System.out.println("-----------------------------------------------");
System.out.println("Student ID: " + id);
System.out.println("Student Name: " + name);
System.out.println("Student Age: " + age);
System.out.println("Student Email: " + email);
System.out.println("Student Course: " + course);
System.out.println("-----------------------------------------------");
}

public static void main(String[] args) {
ArrayList<Student> students = new ArrayList<>();
Scanner scanner = new Scanner(System.in);
int menuSelection;
do {
System.out.println("STUDENT MANAGEMENT APPLICATION");
System.out.println("*************************************************");
System.out.println("Please enter (1) to launch menu or any other key to exit");
if (!scanner.hasNextInt()) {
break;
}
menuSelection = scanner.nextInt();
switch (menuSelection) {
case 1:
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");
int menuItem = scanner.nextInt();
switch (menuItem) {
case 1:
captureStudent(students, scanner);
break;
case 2:
searchStudent(students, scanner);
break;
case 3:
deleteStudent(students, scanner);
break;
case 4:
printStudentReport(students);
break;
case 5:
System.out.println("Exiting application");
break;
default:
System.out.println("Invalid menu item");
break;
}
break;
default:
System.out.println("Exiting application");
break;
}
} while (scanner.hasNext());

scanner.close();
}

public static void captureStudent(ArrayList<Student> students, Scanner scanner) {
System.out.println("CAPTURE A NEW STUDENT");
System.out.println("***********************************");
System.out.print("Enter the student ID: ");
int id = scanner.nextInt();
scanner.nextLine(); // Consume newline character
System.out.print("Enter student name: ");
String name = scanner.nextLine();
System.out.print("Enter student age: ");
int age = inputValidAge(scanner);
System.out.print("Enter student email: ");
String email = scanner.nextLine();
System.out.print("Enter student course: ");
String course = scanner.nextLine();

Student student = new Student(id, name, age, email, course);
students.add(student);

System.out.println("Student details have been successfully saved.");
System.out.println("Enter (1) to launch menu or any other key to exit");
}

public static int inputValidAge(Scanner scanner) {
while (true) {
String ageInput = scanner.nextLine();
try {
int age = Integer.parseInt(ageInput);
if (age >= 16) {
return age;
} else {
System.out.println("You have entered an incorrect student age!!!");
System.out.print("Please re-enter the student age: ");
}
} catch (NumberFormatException e) {
System.out.println("You have entered an incorrect student age!!!");
System.out.print("Please re-enter the student age: ");
}
}
}

public static void searchStudent(ArrayList<Student> students, Scanner scanner) {
System.out.print("Enter the student ID to search: ");
int id = scanner.nextInt();
scanner.nextLine(); // Consume newline character

boolean found = false;
for (Student student : students) {
if (student.getId() == id) {
student.displayDetails();
found = true;
break;
}
}
if (!found) {
System.out.println("Student with ID: " + id + " was NOT found!!!");
}

System.out.println("Enter (1) to launch menu or any other key to exit");
}

public static void deleteStudent(ArrayList<Student> students, Scanner scanner) {
System.out.print("Enter the student ID to delete: ");
int id = scanner.nextInt();
scanner.nextLine(); // Consume newline character

boolean deleted = false;
for (int i = 0; i < students.size(); i++) {
if (students.get(i).getId() == id) {
System.out.print("Are you sure you want to delete Student " + id + " from the system? ");
String confirmation = scanner.nextLine();
if (confirmation.equalsIgnoreCase("y")) {
students.remove(i);
deleted = true;
System.out.println("Student with student ID: " + id + " was deleted!");
}
break;
}
}
if (!deleted) {
System.out.println("Student with ID: " + id + " was NOT found!!!");
}

System.out.println("Enter (1) to launch menu or any other key to exit");
}

public static void printStudentReport(ArrayList<Student> students) {
System.out.println("STUDENT REPORT");
System.out.println("-----------------------------------------------");
for (int i = 0; i < students.size(); i++) {
System.out.println("STUDENT " + (i + 1));
students.get(i).displayDetails();
}
System.out.println("Enter (1) to launch menu or any other key to exit");
}
}
```

This solution uses an ArrayList to store the Student objects. The `captureStudent()` method collects input from the user and creates a new Student object, which is then added to the ArrayList. The `searchStudent()` method searches for a Student object in the ArrayList based on the ID provided by the user. The `deleteStudent()` method deletes a Student object from the ArrayList based on the ID provided by the user, after confirming with the user. The `printStudentReport()` method displays the details of all the Student objects in the ArrayList.

Sure! Here's a step-by-step guide to creating the Java application based on the requirements:

Step 1: Create the Student class
1.1. Create a new Java class called "Student".
1.2. Add private instance variables for student ID, name, age, email, and course.
1.3. Create a constructor that takes in all the student information and initializes the instance variables.
1.4. Create getter methods for all the instance variables.

Step 2: Create the main class
2.1. Create a new Java class called "StudentManagementApplication".
2.2. In the main method, display the main menu using a while loop.
2.3. Prompt the user to enter a choice (1-5) from the menu.
2.4. Use a switch statement to handle the user's choice.

Step 3: Implement the menu options
3.1. For choice 1, create a method called "captureNewStudent()".
3.2. Inside the method, prompt the user to enter information for the new student.
3.3. Validate the student's age using a do-while loop and the "isNumeric()" method.
3.4. Create a new instance of the Student class with the user's input and add it to an ArrayList or array.
3.5. Display a success message and return to the main menu.

3.6. For choice 2, create a method called "searchForStudent()".
3.7. Inside the method, prompt the user to enter a student ID to search for.
3.8. Iterate through the ArrayList or array and check if any student has a matching ID.
3.9. If a match is found, display the student's details. Otherwise, display an error message.

3.10. For choice 3, create a method called "deleteStudent()".
3.11. Inside the method, prompt the user to enter a student ID to delete.
3.12. Confirm the deletion with the user.
3.13. If the user confirms, remove the student with the matching ID from the ArrayList or array.
3.14. Display a success message.

3.15. For choice 4, create a method called "printStudentReport()".
3.16. Inside the method, iterate through the ArrayList or array and display each student's details.

3.17. For choice 5, create a method called "exitApplication()".
3.18. Inside the method, set a flag variable to exit the while loop in the main method.

Step 4: Run the application
4.1. In the main method, create an instance of the StudentManagementApplication class.
4.2. Call the mainMenu() method to start the application.

That's it! You have now created a Java application to manage students at ABC College. You can add additional methods to the Student class and the main class to enhance the functionality if needed.

To create a Java application to manage student information for ABC College, you can follow these steps:

1. Create a class called "Student" with the following attributes: studentId, studentName, studentAge, studentEmail, and studentCourse. Also, create the getters and setters for these attributes.

```java
public class Student {
private int studentId;
private String studentName;
private int studentAge;
private String studentEmail;
private String studentCourse;

// Constructor
public Student(int studentId, String studentName, int studentAge, String studentEmail, String studentCourse) {
this.studentId = studentId;
this.studentName = studentName;
this.studentAge = studentAge;
this.studentEmail = studentEmail;
this.studentCourse = studentCourse;
}

// Getters and Setters
public int getStudentId() {
return studentId;
}
public void setStudentId(int studentId) {
this.studentId = studentId;
}

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

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

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

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

2. Create another class called "StudentManagementApplication" to handle user interaction and implement the required methods.

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

public class StudentManagementApplication {
private static List<Student> studentList = new ArrayList<>();
private static Scanner scanner = new Scanner(System.in);

public static void main(String[] args) {
boolean runApp = true;
while (runApp) {
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")) {
launchMenu();
} else {
runApp = false;
}
}
}

public static void launchMenu() {
boolean exitMenu = false;

while (!exitMenu) {
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");

String input = scanner.nextLine();

switch (input) {
case "1":
captureNewStudent();
break;
case "2":
searchStudent();
break;
case "3":
deleteStudent();
break;
case "4":
printStudentReport();
break;
case "5":
exitMenu = true;
break;
default:
System.out.println("Invalid input! Please try again.");
}
}
}

public static void captureNewStudent() {
System.out.println("CAPTURE A NEW STUDENT");
System.out.println("***********************************");

System.out.print("Enter the student ID: ");
int studentId = Integer.parseInt(scanner.nextLine());

System.out.print("Enter student name: ");
String studentName = scanner.nextLine();

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

System.out.print("Enter student email: ");
String studentEmail = scanner.nextLine();

System.out.print("Enter student course: ");
String studentCourse = scanner.nextLine();

studentList.add(new Student(studentId, studentName, studentAge, studentEmail, studentCourse));

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

public static void searchStudent() {
System.out.print("Enter student ID to search: ");
int studentId = Integer.parseInt(scanner.nextLine());

boolean found = false;
for (Student student : studentList) {
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 static void deleteStudent() {
System.out.print("Enter student ID to delete: ");
int studentId = Integer.parseInt(scanner.nextLine());

boolean found = false;
for (Student student : studentList) {
if (student.getStudentId() == studentId) {
System.out.print("Are you sure you want to delete Student " + studentId + " from the system? (y/n): ");
String confirmation = scanner.nextLine();
if (confirmation.equalsIgnoreCase("y")) {
studentList.remove(student);
System.out.println("------------------------------------------------------");
System.out.println("Student with student ID: " + studentId + " WAS deleted!!!!!");
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 static void printStudentReport() {
System.out.println("STUDENT REPORT");
System.out.println("***********************************");

int count = 1;
for (Student student : studentList) {
System.out.println("STUDENT " + count);
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("---------------------------------------------");
count++;
}
}
}
```

3. Run the main class "StudentManagementApplication" to start the application.

This implementation should meet the requirements specified by your line manager. Feel free to modify and extend the code to suit your needs.