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

Java 如何修理我的计数器和平均计算器,java,class,counter,setter,getter,Java,Class,Counter,Setter,Getter,我必须创建一个代码,根据用户输入的学生姓名,接受用户输入的分数 当输入的数字小于0时,输入停止,输出应为学生姓名、所有分数的总和和平均分数 由于某些原因,我无法获得要打印的平均值或总数,并且我的学生类中的计数器显示了一个错误“删除此标记'+'。” 这是我的主课和学生课: /** * COSC 210-001 Assignment 2 * Prog2.java * * description * * @author Tristan Shumaker */ import java.util.Sc

我必须创建一个代码,根据用户输入的学生姓名,接受用户输入的分数

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

由于某些原因,我无法获得要打印的平均值或总数,并且我的学生类中的计数器显示了一个错误“删除此标记'+'。”

这是我的主课和学生课:

/**
* 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) );
    }
}
我的学生班:

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;
    }
}
公共班级学生{
私有字符串名称;
私人整数合计;
专用int计数器;
公立学生(){
超级();
}
公共字符串getName(){
返回名称;
}
公共void集合名(字符串名){
this.name=名称;
}
公共int getTotal(){
返回总数;
}
公共无效集合总计(整数总计){
这个.总计=总计;
}
公共void addquick(int scoreInput){
总+=分数输入;
int计数器++;
}
公共静态双平均(双[]加法测验,整数计数器){
双和=0;
for(int t=0;t

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

change
int counter++addquick()
方法中的code>添加到
counter++
,否则您将尝试声明标识符为
计数器+
的变量,该标识符不是有效标识符。另外,由于您已将
average()
声明为
Student
类上的静态方法,因此您需要这样调用它:

Student.average(addQuiz, counter);
我没有在您的代码中看到
total()
的定义,所以我不知道这是否适用

编辑

要回答
average()
返回零的原因,您似乎从未在传入的
addquick
双数组中设置任何值,因此它将包含所有零,因此
sum
将为0。我认为您要做的是更改main方法中的while循环,将
scoreInput
值放入
计数器的数组中,如下所示:

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

在你的主课上,你根本不用你的
学生

考虑做

Student student = new Student (name);
然后使用以下方法:

student.addQuiz (scoreInput);
后来

student.getTotal ();
等等


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

非常感谢。这是一个错误,我看了一百遍都没注意到。
addquick
Student
@ScaryWombat上的一种方法是的;它包含一个错误(OP询问了这个问题)。它也是OP的主类中的一个双数组,在调用
average()
方法时使用。。。“你的意思是什么?如果有你们这些有帮助的人在这里,你们知道我的平均数会返回0的原因吗?”thesu用我认为你想要的东西编辑了我的答案好吧,我想我理解你所说的概念,我会努力弄明白的。谢谢你