import static java.lang.System.*;
import java.io.FileNotFoundException;
import java.util.*;
import java.io.*;
import java.math.*;
import java.text.*;
import java.util.ArrayList;
import java.util.Arrays;
import static java.util.Comparator.comparing;
public class Main
{
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 ();
File q=new File("input.txt");
generateStatsFile(q);
}
public static void generateStatsFile (File inputfile) throws IOException{
Scanner in=new Scanner (inputfile);
ArrayList<student> ss=new ArrayList<student>(4);
ArrayList<student>s=new ArrayList<student>();
String []fname=new String[s.size()];
while (in.hasNext()){
student we=new student(in.next (), in.next (), in.next(),in.nextFloat (),
in.nextFloat (), in.nextFloat ());
ss.add(we);
//Collections.sort(s);
}
FileWriter of=new FileWriter("out.txt");
PrintWriter output=new PrintWriter(of);
while(in.hasNext()){
student ee=new student(in.next (), in.next (), in.next(),in.nextFloat (),
in.nextFloat (), in.nextFloat ());
s.add(ee);
}
//Collections.sort(s, comparing(ee::getfname));
/*s.sort((o1,o2)
-> o1.getfname().compareTo(
o2.getfname()));*/
// Comparator<student> compareByName = (student o1, student o2) ->
// o1.getfname().compareTo( o2.getfname() );
//Collections.sort(s,compareByName);
for (student he:ss)
{
output.printf("%s %s %.1f%n",he.getfname(),he.getlname(),he.getavg(he.getg1(),he.getg2(),he.getg3()));
}
String []cnmb=(s.toArray(new String[s.size()]));
Arrays.sort(cnmb);
output.print(cnmb);
/* for(int i=0;i<s.size();i++){
System.out.println(Arrays.toString(s.toArray()));
}*/
for(String ha:cnmb){
out.println(ha);
}
/*for (String ha:s){
String [] fn=new String[s.size()];
for(int i=0;i<s.size();i++){
fn[i]=ha.getfname();
}*/
//out.print(fn);
//out.print(s);
in.close();
output.close();
}
}
Hi so basically this method is supposed to write to an output file a.the avg grade and letter b.firstname sorted in ascending order
the first options worked.
however, the code I wrote for option b is not working it's either not printing out anything or just prints something like [Ljava.lang.String;@880ec60 into the file
can someone please help
I know the code is really messed because I put a lot of comment signs before different lines of code
but perhaps some of them are supposed to be useful I'm just not getting the full code working right.
public class student implements Comparable<student>{
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;}
@Override
public int compareTo(student e) {
return this.getfname().compareTo(e.getfname());
}
public student(){
}
public String fname(){
return fname;
}
public student(String f){
fname=f;
}
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 student(String f,String l,float g1,float g2, float g3) {
fname=f;
lname=l;
grades1=g1;
grades2=g2;
grades3=g3;
}
public float getavg (float g1,float g2,float g3){
grades1=g1;
grades2=g2;
grades3=g3;
float avg=(g1+g2+g3)/3;
return avg;
}
public String [] sortfname(String fname){
String [] f=new String[0];
return f;
}