
I need some help getting the Search method below to work with the menu, and I also cannot figure out how to get my bubble sort to work. I've spent a long time on this and think my brain is just fried at this point! :(
import java.util.*;
public class StudentProcessor2 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
// read in how many students to process
System.out.print("How many students?");
int numStudents = input.nextInt();
Student[] students = new Student[numStudents];
for (int i = 0; i < numStudents; i++) {
// read in student data from Scanner
System.out.println("What is the students name?");
String name = input.next();
System.out.println("What is the students grade?");
// System.out.println("***Type -1 if no more grades***");
int grade = input.nextInt();
Student student = new Student();
student.setName(name);
student.setGrade(grade);
students[i] = student;
}
UserSelection(input, numStudents, students);
}
// show menu with options
public static void UserSelection(Scanner input, int numStudents,
Student[] students) {
// Repeatedly process menu selections by the user.
int choice;
do {
System.out.println();
System.out.println("*** Student Exam Results Menu ***");
System.out.println("(1) Display the results");
System.out.println("(2) Display the average result");
System.out.println("(3) Display the highest grade");
System.out.println("(4) Display the lowest grade");
System.out.println("(5) Search for specific result");
System.out.println("(6) Search for student grade by name");
System.out.println("(7) Sort the results in ascending order");
System.out.println("(8) quit");
choice = input.nextInt();
if (choice == 1)
{
System.out.println(Arrays.toString(students));
} else if (choice == 2)
{
double average = getAverage(students);
System.out.println("average grade = " + average);
} else if (choice == 3)
{
int high = getHighest(students);
System.out.println("high grade = " + high);
} else if (choice == 4)
{
int low = getLowest(students);
System.out.println("low grade = " + low);
} else if (choice == 5)
{
System.out.print("Result to look for: ");
int grade = input.nextInt();
if (result(grade, students)) {
System.out.println(grade +
" is in the collection of grades.");
} else
{
System.out.println(grade +
" is not in the collection of grades.");
}
} else if (choice == 6)
{
System.out.print("Student to search for: ");
String name = input.next();
if (search(name, students))
{
System.out.println(name +
" is in the list of Students.");
} else
{
System.out.println(name +
" is not in the list of Students");
}
}
} while (choice != 8);
}
// get Lower Grade
private static int getLowest(Student[] students) {
int lowest = 100;
Student result = null;
for (Student student : students) {
if (student.getGrade() < lowest) {
lowest = student.getGrade();
result = student;
}
}
return result.getGrade();
}
// get Highest grade
private static int getHighest(Student[] students) {
int highest = 0;
Student result = null;
for (Student student : students) {
if (student.getGrade() > highest) {
highest = student.getGrade();
result = student;
}
}
return result.getGrade();
}
// get Average grade
private static double getAverage(Student[] students) {
int total = 0;
for (Student student : students) {
total += student.getGrade();
}
return total / students.length;
}
// Search for student
private static Student search(String name, Student[] students) {
Student result = null;
for (Student student : students) {
if (student.getName().equalsIgnoreCase(name)) {
result = student;
break;
}
}
return result;
}
private static boolean result(int grade, Student[] students) {
for (Student student : students) {
if (student.getGrade() == grade) {
return true;
}
}
return false;
}
// !Bubble sort goes here!
private void sort(Student[] students) {
Student hold; // temporary holding area for swap
for (int i = 0; i < students.length; i++) { // passes
Student current = students[i];
Student next = students[i + 1];
if (current.getGrade() > next.getGrade()) // one comparison
{
hold = students[i]; // one swap
students[i] = students[i + 1];
students[i + 1] = hold;
}
}
}
}
If you are facing any programming issue, such as compilation errors or not able to find the code you are looking for.
Ask your questions, our development team will try to give answers to your questions.