java - 文件读取平均值

标签 java arrays file-io

我创建了这段代码来平均测试分数,但是我将每个学生 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/

相关文章:

java - 如何动态显示数组

c - 返回 char* 以在 C 中打印

java - 无法读取刚刚写入的文件

c# - 无法打开文件流进行读取,但我仍然可以复制文件?

java - Android - 错误 list 合并失败

java - 在 Eclipse 和 Java 中使用 m4 宏

java - 如何找到多维数组的值总和并替换未使用索引的值?

java - java从文件中读取和写入表达式

java - Spring 数据 JPA : persist a many to may relationship in both directions

c++ - 具有元素的自定义构造函数的对象数组/vector