Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 分级模式:二维数组并打印平均值_Java_Multidimensional Array - Fatal编程技术网

Java 分级模式:二维数组并打印平均值

Java 分级模式:二维数组并打印平均值,java,multidimensional-array,Java,Multidimensional Array,我对java非常陌生,我的老师给我们布置了这个作业,让我们可以在网上寻找如何让代码工作。我感到很失落,因为我只使用了一次数组,而双数组只使用了一次。我真的需要一些帮助和解释如何让这个程序运行 到目前为止,我的老师教我如何划分学生和分数,但他没有教我如何打印分数。还有,当您使用双数组时,如何仅计算每个学生的行而不是列的平均值 放坡模式:在一个单独的函数中,您将实现一个放坡模式。写一篇 从用户提供的文件中读取学生姓名及其考试成绩的程序。 文件中的前两个值表示学生人数,后面是测试次数。 然后,程序应计

我对java非常陌生,我的老师给我们布置了这个作业,让我们可以在网上寻找如何让代码工作。我感到很失落,因为我只使用了一次数组,而双数组只使用了一次。我真的需要一些帮助和解释如何让这个程序运行

到目前为止,我的老师教我如何划分学生和分数,但他没有教我如何打印分数。还有,当您使用双数组时,如何仅计算每个学生的行而不是列的平均值

放坡模式:在一个单独的函数中,您将实现一个放坡模式。写一篇 从用户提供的文件中读取学生姓名及其考试成绩的程序。 文件中的前两个值表示学生人数,后面是测试次数。 然后,程序应计算每个学生的平均考试分数,并分配适当的分数 等级(A、B、C、D、E或F)以及每次测试的平均值。您的程序必须执行以下操作 功能。 a) 空函数计算平均分数,以确定每个学生的平均测试分数

下面是txt文件:

汤姆9167845069

苏西74 78 58 62 64

彼得55 95 81 77 61

保罗9195927786

黛安9154525392

艾米丽8271666895

娜塔莉9776718869

本62 67 99 85 94

马克53 61 72 83 73

安娜6491615368

以下是我到目前为止的情况:

public class Grades {



private static final String FILENAME2 = "/Users/Jarvis/Documents/Students.txt";

public static void main(String[] args) {
    BufferedReader br = null;
    FileReader fr = null;

    try {

        fr = new FileReader(FILENAME2);
        br = new BufferedReader(fr);

        String students [] = new String[10];
        int [][] grades = new int [10][5];
        String[] words;
        String sCurrentLine;
        int counter=0;
        br = new BufferedReader(new FileReader(FILENAME2));

        while ((sCurrentLine = br.readLine()) != null) {

            words = sCurrentLine.split(" ");
            students[counter]=words[0];
            System.out.print(students[0]+ " ");

            for (int i=1; i < words.length; i++){
               grades[counter][i-1]=Integer.parseInt(words[i]);

            } //end of outer for loop


            System.out.println();

        } // end of while loop



         } catch (IOException e) {

        e.printStackTrace();

    }

}//end of main

public static void calculateAverage (int grade [][]){

    int temp;
    int sum;


} // end of calculateAverage()
公共课成绩{
私有静态最终字符串FILENAME2=“/Users/Jarvis/Documents/Students.txt”;
公共静态void main(字符串[]args){
BufferedReader br=null;
FileReader fr=null;
试一试{
fr=新文件读取器(文件名2);
br=新的缓冲读取器(fr);
字符串学生[]=新字符串[10];
整数[][]等级=新整数[10][5];
字符串[]个单词;
弦电流线;
int计数器=0;
br=新的BufferedReader(新的文件读取器(FILENAME2));
而((sCurrentLine=br.readLine())!=null){
words=sCurrentLine.split(“”);
学生[计数器]=单词[0];
系统输出打印(学生[0]+“”);
for(int i=1;i
首先,您需要在循环的底部添加
计数器++;

至于平均值,这将计算每个学生的平均成绩(假设此格式为
grade[student][grade]
),然后打印学生的编号
grade[student]
,后面是他们的平均成绩
grades.get();

public静态void-calculateAverage(整数等级[]){
ArrayList averageGrades=新ArrayList();
整数和=0;
对于(int student=0;student
计数器应为计数器++。
public static void calculateAverage (int grade[][]){

    ArrayList<Double> averageGrades = new ArrayList<Double>();
    int sum = 0;

    for(int student = 0; student < grade.length; student++){
    for(int i = 0; i < grade[student].length; i++){

        if(i == 0){
            sum = grade[student][i];
        }else if(i == grade[student].length - 1){

            sum += grade[student][i]; //Add next grade to sum

            averageGrades.add((double) (sum/i)); //Divide the sum by the number of grades (average)

        }else{

        sum += grade[student][i]; //Add next grade to sum

        }

    }
}

    for(int counter = 0; counter < averageGrades.size(); counter++){
        //Cycle through the grades and print them after the student name (grade[counter])
        System.out.println(grade[counter] + " " + averageGrades.get(counter));

    }



  }