2015-04-11 2 views
0

Я сделал это немного дальше. Оказывается, я могу использовать в моем назначении циклы, но не массивы. Итак, вот текущая версия (не учитывайте никаких окончательных вычислений или чего-то еще.) Итак, если вы посмотрите на метод домашней работы, вы увидите, что я прошу «количество заданий». Теперь, для каждого задания, мне нужно попросить и суммировать как заработанные баллы, так и максимальный возможный балл. Так, например, если бы было 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); 
    } 

} 
+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) 
} 

Так вот, вы наполнили коллекцию заданий. Теперь вы можете распечатать его, рассчитать среднее значение и т. Д.

Надеюсь, что выше код дает вам несколько замечаний о том, как реализовать это.

+0

Ничего себе, спасибо baza92! Я все время возвращался к нему полностью. Это направление позволит мне собрать нужные мне входы, а затем передать их в вычисления, которые мне нужно выполнить. –

Смежные вопросы