我创建了这段代码来平均测试分数,但是我将每个学生 test1、test2、test3 等放入一个数组中。现在我怎样才能获得一个测试的测试分数的总体平均值(例如,q1 在数组索引 0 中,但它们是 8 个不同的 q1。我如何获得它们的平均值?)
import java.io.File;
import java.io.IOException;
import java.util.*;
public class Project3 {
public static void main(String[] args) throws IOException {
ReadFile r = new ReadFile();
r.openFile();
r.readFile();
r.closeFile();
--
import java.io.*;
import java.lang.*;
import java.util.*;
public class Grades {
private Formatter x;
//Formatter variable- output string to file
public void openFile(){
//method to open file
try{
x = new Formatter("grades.txt");
}
catch(Exception e){
System.out.println("Could not find file.");
}
}
public void addRecords(){
x.format("%d",8);
x.format(" %s %s, %d, %d, %d, %d, %d, %d, %d", " Thui", "Bhu", 100, 90, 80, 100, 89, 99, 88);
x.format(" %s %s, %d, %d, %d, %d, %d, %d, %d", "\n ArianaB", "Smith", 90, 90, 100, 100, 99, 100, 95);
x.format(" %s %s, %d, %d, %d, %d, %d, %d, %d", "\n Emily", "Gonzales", 100, 90, 100, 70, 78, 78, 80);
x.format(" %s %s, %d, %d, %d, %d, %d, %d, %d", "\n Jenifer", "L", 80, 90, 90, 100, 89, 99, 85);
x.format(" %s %s, %d, %d, %d, %d, %d, %d, %d", "\n Maria", "Jones", 65, 72, 77, 68, 62, 70, 65);
x.format(" %s %s, %d, %d, %d, %d, %d, %d, %d", "\n Bill", "Gates", 60, 54, 38, 62, 65, 60, 50);
x.format(" %s %s, %d, %d, %d, %d, %d, %d, %d", "\n Escobar", "Morris", 83, 77, 88, 76, 79, 72, 76 );
x.format(" %s %s, %d, %d, %d, %d, %d, %d, %d", "\n Anne", "Latner", 80, 90, 85, 95, 90, 95, 90 );
}
public void closeFile(){
x.close();
}
//
}
--
import java.io.*;
import java.util.InputMismatchException;
import java.util.*;
public class ReadFile {
private Scanner x;
public void openFile(){
try{
x = new Scanner (new File ("grades.txt"));
}
catch(Exception e){
System.out.println("could not find file");
}}
public void createFile()throws IOException {
try{
File file = new File("grades.txt");
Scanner s = new Scanner(file);
while(s.hasNext()){
{
double q1average = 0.0, q2average = 0.0, q3average = 0.0, q4average = 0.0;
double proji = 0.0, projii =0.0, projiii = 0.0;
double q1sum = 0.0, q2sum = 0.0, q3sum = 0.0, q4sum = 0.0;
double proji_sum = 0.0, projii_sum = 0.0, projiii_sum =0.0;
while(s.hasNext()) {
String[] split = s.nextLine().split(", ");
q1sum += Double.parseDouble(split[1]); // add all first grades
q1average++;
q2sum += Double.parseDouble(split[2]); // add all first grades
q2average++;
q3sum += Double.parseDouble(split[3]); // add all first grades
q3average++;
q4sum += Double.parseDouble(split[4]); // add all first grades
q4average++;
proji_sum += Double.parseDouble(split[5]); // add all first grades
proji++;
projii_sum += Double.parseDouble(split[6]); // add all first grades
projii++;
projiii_sum += Double.parseDouble(split[7]); // add all first grades
projiii++;
int maxq1 =0;
if(Double.parseDouble(split[1]) > maxq1)
maxq1 = (int) Double.parseDouble(split[1]);
System.out.println(maxq1);
}
double q1_average = (q1sum/q1average);
double q2_average = (q2sum / q2average);
double q3_average = (q3sum / q3average);
double q4_average = (q4sum / q4average);
double p1_average = (proji_sum/proji);
double p2_average = (projii_sum/projii);
double p3_average = (projiii_sum/projiii);
}
}}catch(Exception e){
e.printStackTrace();
}
}
public void closeFile(){
x.close();
}
}
最佳答案
与获得纸上平均值的方法相同:将所有单独的测试分数相加,然后除以总分数。因此,创建一个临时变量,然后在循环中将各个测试分数相加,然后除以循环后的学生总数。
关于java - 文件读取平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20939206/