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

1 answer

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.