使用扫描仪输入定义所需的扫描仪输入数量

时间:2015-04-11 19:44:43

标签: java loops console

我做得更远了。事实证明我可以在我的任务中使用循环而不是数组。所以这是当前的版本(请记住没有最终的计算或任何东西。)所以,如果你看看作业方法,你可以看到我要求的“作业数量”。现在,对于每个作业,我需要要求并且将获得的分数和最大可能分数相加。因此,例如,如果有3个作业,他们可能分别获得18,22和29分,最高分数分别为20分,25分和30分。我需要使用控制台抓住两者,但我不知道如何使用相同的循环(或在相同的方法中)获取两个变量。

提前感谢您的帮助!

import java.util.*;

public class Grades {
    public static void main(String[] args) {
        welcomeScreen();
      weightCalculator();
      homework();

    }

    public static void welcomeScreen() {

        System.out.println("This program accepts your homework scores and");
        System.out.println("scores from two exams as input and computes");
        System.out.println("your grade in the course.");
      System.out.println();

    }


    public static void weightCalculator() {

      System.out.println("Homework and Exam 1 weights? ");
        Scanner console = new Scanner(System.in);
            int a = console.nextInt();
            int b = console.nextInt();

            int c = 100 - a - b;

         System.out.println();
            System.out.println("Using weights of " + a + " " + b + " " + c);

    }

   public static void homework() {

        Scanner console = new Scanner(System.in);

        System.out.print("Number of assignments? ");
        int totalAssignments = console.nextInt();

        int sum = 0;
            for (int i = 1; i <= totalAssignments; i++) {
                System.out.print(" #" + i + "? ");
                int next = console.nextInt();
                sum += next;
            }       

        System.out.println();
        System.out.println("sum = " + sum);
    }

}

1 个答案:

答案 0 :(得分:0)


我不知道你的问题究竟在哪里,所以我会尽力给你一些评论。这就是我的开始(当然还有其他方法可以实现):

首先 - 创建Assignment类,以包装好的包装形式保存所有信息:

public class Assignment {
    private int pointsEarned;
    private int pointsTotal;

    public Assignment(int pointsEarned, int pointsTotal) {
        this.pointsEarned = pointsEarned;
        this.pointsTotal = pointsTotal;
    }
    ...getters, setters...
}

要请求分配数量,您只需使用nextInt()方法并将其分配给某个变量:

Scanner sc = new Scanner(System.in);
int numberOfAssignments = sc.nextInt();

然后,使用此变量创建一些赋值集合(例如使用简单数组):

Assignment[] assignments = new Assignment[numberOfAssignments];

接下来,您可以再次使用扫描仪填充此集合:

for(int i = 0; i < numberOfAssignments; i++) {
   int pointsEarned = sc.nextInt();
   int pointsTotal = sc.nextInt();
   assignments[i] = new Assignment(pointsEarned, pointsTotal)
}

所以在这里,你已经填写了作业集。您现在可以打印它,计算平均值等。

我希望上面的代码能为您提供一些如何实现这一点的评论。