I need to use a double vector to store an average of a student.
The file I'm reading from is set up like this:
2 //num of students
60 //total possible score
John //name
4 16 9 7 10 //scores
So I need to convert the string to a double, add all the ints from the line, divide into an average, then store the average into the double vector.
the code I have so far is:
public static String line;
public static Scanner in = new Scanner(System.in);
public static void main(String[] args) {
System.out.println("enter the name of your file");
String filename = in.next();
FileIn file = new FileIn(filename);
String firstLine; // String to hold first line which is number of students total in file.
String secondLine; //String to hold second line which is number of points available
ArrayList<String> students = new ArrayList<String>(); // holds the students names
//reads first line of the file. sets that number as the number of students
firstLine = file.read();
int numStu = Integer.parseInt(firstLine);
// Just to test that number is being read correctly.
System.out.println(numStu + " Number of students");
//reads the second line of the file. sets that number as the total possible points in a semester
secondLine = file.read();
int totalPoints = Integer.parseInt(secondLine);
// Just to test that number is being read correctly.
System.out.println(totalPoints + " Total possible points");
double avg = 0;
double[]vector = new double [numStu];
readFile(students,numStu,file,vector, avg);
System.out.println(students);
System.out.println(vector);
}
//puts the names into an arraylist and scores into a double vector
public static void readFile(ArrayList<String> students,int numStu, FileIn file, double[]vector, double avg)
{
for(int k=0; k<(numStu*2); k++)
{
//odd numbers are the students
if (k % 2 == 0)
students.add(file.read());
else
{
//code to read and add the numbers from one line together, and storing the added and averaged score
}
}
}
}
As you can see I'm missing the bottom part where im distributing the file elements into a double vector
my FileIn class looks like this:
private String myFileName;
private BufferedReader myFile;
public FileIn(String filename)
{
myFileName = filename;
try
{
myFile = new BufferedReader(new FileReader(myFileName));
}
catch(Exception e)
{
e.printStackTrace();
}
finally{}
}
public String read()
{
String myLine = new String();
try
{
myLine = myFile.readLine();
}
catch(Exception e)
{
e.printStackTrace();
}
finally{}
return myLine;
}
}
Complete the following piece of code, and you will know the answer to your own question once you finished it.
public class Foo {
public static int main(String[] args) {
String input = "10 15 20.5 70 40";
// write code to convert the input string to doubles and sum them up
double sum = ......;
// answer should equals to 155.5
}
}
Hints: String.split()
and Double.parseDouble()
, and make use of a for loop