如何修理我的计数器和平均值计算器
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
对象中,因为它是作为参数传递的。
我必须创建一个代码,根据用户输入的学生姓名获取用户输入的成绩。
当输入小于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
对象中,因为它是作为参数传递的。