Я сейчас работаю над проектом для школы и действительно борюсь.Я должен выбрать сортировку группы объектов Ученика, а затем отобразить их в порядке сортировки выбора.
Создать массив размером 10 и назначить данные студента ( Имя , BroncoId , age и TotalMarks ) для массива.Выполните сортировку выбора, чтобы отсортировать учащихся в порядке убывания на основе их общих оценок.
a.Шаги:
i.Создайте список учеников (используйте Случайный класс в Java, чтобы сгенерировать возраст (15-25) и общее количество (0-100))
ii.Распечатайте список студентов в виде таблицы
iii.Выполните сортировку по общему количеству баллов учащихся
Место, в котором я застрял в настоящее время, выполняет сортировку по выбору.Я понимаю, как создать сортировку выбора, но не могу перевести ее для этой реализации.
Мой код сортировки выбора:
public static Student[] selectionSort(Student[] studentList)
{
for(int i = 0; i <studentList.length-1; i++)
{
int minIndex = studentList[i].getGrades();
int pos = i;
for(int j = i + 1; j < studentList.length-2; j++)
{
if(studentList[j].getGrades() > studentList[minIndex].getGrades())
{
minIndex = studentList[j].getGrades();
pos = j;
}
}
int temp = studentList[pos].getGrades();
studentList[pos] = studentList[i];
int k = studentList[i].getGrades();
k = temp;
}
return studentList;
}
Когда я запускаю этот код, консольвозвращает:
Я искал репетитора, чтобы, надеюсь, решить эту проблему, но мой репетитор дал мне несколько нефункциональных предложений.Мы оба были в тупике в конце сеанса.
Мой код для печати:
public static void printStudentInfo(Student[] students)
{
System.out.println("Name: AGE: idNumber: Score:");
for(Student student: students)
{
if(student.getName().length() <= 49)
System.out.printf("%-50s %-5d %-10s %-4d\n", student.getName(), student.getAge(), student.getID(), student.getGrades() );
else
{
System.out.printf("%-50s %-5d %-10s %-4d\n", student.getName().substring(0,48), student.getAge(), student.getID(), student.getGrades() );
System.out.println();
int i = 0;
while(i <= student.getName().length())
{
System.out.printf("%-50s", student.getName().substring(49 +48*i, 97+48*i) );
System.out.println();
i++;
}
}
}
}
Еще больше из страсти я стремился сделать интересный метод печати.Моя проблема также в том, что я не знаю, как, например, анализировать и форматировать строку из 155 символов.Что я могу добавить в это время, пока выполняется lop для этого?
Я хочу, чтобы программа выводила одну строку имени объекта, например:
49 символов 49 символов ... Что еще осталось
Вероятно, это никогда не пройдет три строки, но, эй, кто сказал, что я не могу привести такой пример?Что для этого нужно добавить в заголовок цикла while?
PS: Вот класс ученика, если он вам нужен.
public class Student
{
private String name;
private int age;
private String idNumber;
private int gradePoints;
public Student(String name, int age, String idNumber, int gradePoints)
{
this.name = name;
this.age = age;
this.idNumber = idNumber;
this.gradePoints = gradePoints;
}
public void setName(String name)
{
this.name = name;
}
public void setAge(int age)
{
this.age = age;
}
public void setidNumber(String idNumber)
{
this.idNumber = idNumber;
}
public void setPoints(int gradePoints)
{
this.gradePoints = gradePoints;
}
public String getName()
{
return name;
}
public int getAge()
{
return age;
}
public String getID()
{
return idNumber;
}
public int getGrades()
{
return gradePoints;
}