Я попробовал представить эту проблему в виде матрицы значений, где каждая строка соответствует студенту, а каждый столбец — его полям (имя, фамилия и т. д.). Я пытался считать учеников в 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
Подробнее здесь: https://stackoverflow.com/questions/720 ... f-students