我必须创建一个代码,根据用户输入的学生姓名获取成绩的用户输入。
当输入小于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;
}
}
非常感谢你们给予的任何帮助,谢谢你们。
答案 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
对象中,因为它作为参数传递。