如何修理我的计数器和平均值计算器

How to fix my counter and average calculator

我必须创建一个代码,根据用户输入的学生姓名获取用户输入的成绩。

当输入小于0的数字时停止输入,输出应该是学生姓名,所有分数的总和,平均分数。

出于某种原因,我无法打印平均值或总数,我的学生 class 中的计数器显示错误 "remove this token '++'"

这是我的主 class,还有我的学生 class :

/**
* COSC 210-001 Assignment 2
* Prog2.java
* 
* description
* 
* @author Tristan Shumaker
*/
import java.util.Scanner;

public class main {

    public static void main( String[] args) {
        double[] addQuiz = new double[99];
        int counter = 0;
        //Creates new scanner for input
        Scanner in = new Scanner( System.in);

        //Prompts the user for the student name
        System.out.print("Enter Student Name: ");
        String name = in.nextLine();

        // requests first score and primes loop
        System.out.print("Enter Student Score: ");
        int scoreInput = in.nextInt();

        while( scoreInput >= 0 ) {
            System.out.print("Enter Student Score: ");
            scoreInput = in.nextInt();
            counter++;
        }
        System.out.println( );
        System.out.println("Student name: " + name);
        System.out.printf( "\nAverage: %1.2f", total(addQuiz, counter) );
        System.out.printf( "\nAverage: %1.2f", average(addQuiz, counter) );
    }
}

和我的学生class:

public class Student {
    private String name;
    private int total;
    private int counter;

    public Student() {
        super();
    }

    public String getName() {
        return name;
    }

     public void setName(String name) {
        this.name = name;
    }

    public int getTotal() {
        return total;
    }

    public void setTotal(int total) {
        this.total = total;
    }

    public void addQuiz( int scoreInput) {
        total += scoreInput;
        int counter++;
    }

    public static double average( double[] addQuiz, int counter ) {
        double sum = 0;
        for( int t = 0; t < counter; t++) {
            sum += addQuiz[t];
        }
        return (double) sum / counter;
    }
}

非常感谢你们能够提供的任何帮助,在此先感谢。

addQuiz() 方法中的 int counter++; 更改为 counter++;,否则您将尝试声明一个标识符为 counter++ 的变量,这不是有效标识符.此外,由于您已将 average() 声明为 Student class 上的静态方法,因此您需要这样调用它:

Student.average(addQuiz, counter);

我在你的代码中没有看到 total() 的定义,所以我不知道是否同样适用于它。

编辑

为了回答 average() 返回零的原因,您似乎从未在传入的 addQuiz 双精度数组中设置任何值,因此它将包含所有零,并且结果 sum 将为 0。我 认为 你想要做的是更改 main 方法中的 while 循环以将 scoreInput 值放入数组中在 counter 索引处,像这样:

while( scoreInput >= 0 ) {
    System.out.print("Enter Student Score: ");
    scoreInput = in.nextInt();
    addQuiz[counter] = scoreInput;
    counter++;
}

在您的主要 class 中,您根本没有使用 Student class。

考虑做

Student student = new Student (name);

然后使用

等方法
student.addQuiz (scoreInput);

以后

student.getTotal ();

等等

您也根本不需要将变量 counter 存储在 Student 对象中,因为它是作为参数传递的。