我正在尝试让程序让我输入用户名,然后输入标记并显示平均值。这就是我尝试过的:
// Calculate Students Average of series of exam marks stored in an array
import uulib.GUI;
public class ExamMarks {
public static void main(String[] args) {
final int SIZE = 10;
int[] marks = new int[SIZE];
double total, average;
String[] names = new String[]{""};
// Read marks into array
{
String name;
name = GUI.getString("Enter your name");
GUI.show("Names");
}
for(int i=0; i<marks.length; i++) {
marks[i] = GUI.getInt("Enter mark " + (i+1));
}
total = 0;
// calculate average mark
for(int i=0; i<marks.length; i++) {
total = total + marks[i];
}
average = total/SIZE;
GUI.show("Average mark is " + average);
}
}
我希望它要求一个名字然后标记十次,最后显示平均值。但它只问我一个名字,之后它要求我十分,并给我一个平均值。
答案 0 :(得分:2)
一些提示和观察:
name
仅在块内可见。如果您需要该块之外的名称,只需删除花括号。(double) total / (double) SIZE)
(即使只投出一个值就足够了)对于GUI使用问题 - 您导入自定义库,打赌您必须仔细检查手册以了解如何使用它。
修改强>
您的评论稍有改变;)通常您现在会创建一个像Result
这样的小类,其中包含studentName
属性和mark
属性(为简化起见:我们假设所有学生有唯一的名称,所以我们这里不需要学生ID。
如果您在没有类的情况下更好地解决任务,我们可以使用数组模拟它,一个用于名称,一个用于标记。
以下代码演示了该流程:
public void process() {
final int SIZE = 10;
String[] names = new String[SIZE];
int[] marks = new int[SIZE];
for(int i = 0; i < SIZE; i++) {
names[i] = readStudentNameFromGUI();
marks[i] = readStudentsMarkFromGUI();
}
double average = calculateAverage(marks);
}
注意:有些事情你可以(应该)在Java中做得更好,但我认为这很容易理解并获得解决方案。