Поиск минимальной и максимальной оценки из списка учащихсяJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Поиск минимальной и максимальной оценки из списка учащихся

Сообщение Anonymous »

Мне нужно найти минимальную и максимальную первую оценку из списка учащихся, а затем записать эти значения в выходной файл, указав только имя.
Я попробовал представить эту проблему в виде матрицы значений, где каждая строка соответствует студенту, а каждый столбец — его полям (имя, фамилия и т. д.). Я пытался считать учеников в ArrayList, а затем перенести их плавающие оценки из Arraylist в массив с помощью цикла for, но это не работает.
кто-нибудь знает, как это сделать?

Код: Выделить всё

public class student implements Comparable{

private String fname;
private String lname;
private String major;
private float grades1;
private float grades2;
private float grades3;

public String getfname() {return fname;}
public String getlname() {return lname;}
private String getmajor() {return major;}
public float getg1() {return grades1;}
public float getg2() {return grades2;}
public float getg3() {return grades3;}

public student(String f,String l,String m,float g1,float g2, float g3)  {
fname=f;
lname=l;
major=m;
grades1=g1;
grades2=g2;
grades3=g3;

}
}
public static void main (String[]args) throws IOException
{

PrintWriter pw1 = new PrintWriter ("input.txt");
pw1.println ("Mickey Mouse CS 98.7 67.8 23.5");
pw1.println ("Minnie Mouse ENG 45.6 98.3 94.7");
pw1.println ("Donald Duck NET 56.8 74.2 78.4");
pw1.println ("Bob Builder CS 78.5 89.4 82.5");
pw1.println ("Snow White MAT 56.6 32.4 56.6");
pw1.println ("Hellen Keller CHEM 78.8 23.1 99.6");
pw1.println ("Daffy Duck ENG 67.4 55.5 89.5");
pw1.println ("Fred Flinstone MAT 45.3 87.4 38.9");
pw1.println ("Daffy Duck CS 76.5 22.2 88.5");
pw1.println ("Bugs Bunny NET 68.4 89.7 95.6");
pw1.println ("Winnie Pooh CHEM 77.5 89.4 98.2");
pw1.close ();
PrintWriter pw2 = new PrintWriter ("input2.txt");
pw2.println ("Scrooge McDuck ACC 78.7 77.3 63.5");
pw2.println ("Woody Woodbecker CS 65.6 78.3 84.7");
pw2.println ("Scooby Doo MAT 56.8 78.2 88.4");
pw2.println ("Spider Man CHEM 58.5 99.3 92.5");
pw2.println ("Roger rabbit NET 66.9 39.6 86.6");
pw2.println ("Wonder Woman CHEM 68.4 83.1 69.6");
pw2.println ("Jane Jetson ENG 77.4 85.5 69.5");
pw2.close ();

File in = new File ("input.txt");
java.util.ArrayList < student > list = uploadStudents (in);

float[] gg = new float[list.size()];
for (int i = 0; i < list.size(); i++)
gg[i] = he.getg1();

float min = gg[0];
for (int i = 0; i < gg.length; i++) {
if (gg[i] < gg[0]) {
gg[0] = gg[i];
}
}

}
public static ArrayList < student > uploadStudents (File inputfilename) throws IOException ///
{
java.util.ArrayList < student > student = new java.util.ArrayList  ();

Scanner sc = new Scanner (inputfilename);

while (sc.hasNext ())
{
//new student object??
student s =
new student (sc.next (), sc.next (), sc.next (), sc.nextFloat (),
sc.nextFloat (), sc.nextFloat ());
student.add (s);
}

return student;

}

//I want a float[] gg array to be the one that starts with 78.88
Я пытался использовать цикл for, но, видимо, он просто копирует все значения в gg[0]; это нехорошо, потому что мне также нужно найти минимум каждого столбца ArrayList`, а затем вывести их в файл с минимальным и максимальным значением каждой оценки и их именем.

Подробнее здесь: https://stackoverflow.com/questions/720 ... f-students
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»