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

时间:2016-02-12 00:32:21

标签: java class counter setter getter

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

当输入小于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;
    }
}

非常感谢你们给予的任何帮助,谢谢你们。

2 个答案:

答案 0 :(得分:0)

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

Student.average(addQuiz, counter);

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

修改

要回答average()返回零的原因,看起来你从未在传入的addQuiz双数组中设置任何值,因此它将包含全零,因此sum将为0.我认为你要做的是在main方法中更改while循环,将scoreInput值放在{{1像这样的索引:

counter

答案 1 :(得分:0)

在您的主要课程中,您根本没有使用÷课程。

考虑做

Student

然后使用

等方法
Student student = new Student (name);

以后

student.addQuiz (scoreInput);

您也不需要将变量student.getTotal (); 存储在counter对象中,因为它作为参数传递。