2015-09-17 2 views
2

У меня возникли проблемы с этим заданием, предоставленным мне.Сканер Java, NextDouble Вход пользователя Список продуктов

Вы напишете программу, которая примет список из 5 продуктов вместе с их ценами. Программа должна рассчитать общую стоимость предметов поэтапно и отформатировать выход так, чтобы он выглядел чистым и ровным.

Инструкции:

  • Подскажите пользователю по стоимости пункта # 1.
  • Повторите шаг # 1 четыре дополнительных раза.
  • Когда вы приняли все значения, распечатайте их на экране с общим значением, напечатанным рядом с ними. Убедитесь, что все прямолинейно и выровнено.

Вот пример работа:

Enter item #1: 2.59 
Enter item #2: 5.25 
Enter item #3: 6.34 
Enter item #4: 4.50 
Enter item #5: 8.72 

Установите всю вашу ширину спецификации до 10 и всей вашей точности до 2, где это необходимо. Вместо использования каких-либо регулярных пространств для выравнивания столбцов используйте только метод printf. Используйте метод println только для смены линий. Вы можете выполнить всю свою работу в методе main() вашей программы.

Вот мой код до сих пор, когда я пытаюсь запустить это в BlueJ, он не будет реально работать код:

import java.util.Scanner; 
public class P4_Icel_Murad_GroceryList { 
    public P4_Icel_Murad_GroceryList() { 
     Scanner in = new Scanner(System.in); 
    } 

    public static void main(String[] args) {  
     Scanner in = new Scanner(System.in); 
     //String a = in.nextLine(); 
     System.out.printf("Enter item #1: ", in.nextDouble()); 

     //System.out.printf("Enter item #2: " + in.nextLine() + "%.2f"); 
     //System.out.printf("Enter item #3: " + in.nextLine() + "%.2f"); 
     //System.out.printf("Enter item #4: " + in.nextLine() + "%.2f"); 
    } 
} 
+0

Я сделал другие из них сканера в качестве комментариев к цели, как я чувствую, что первый nextdouble() имеет ту же проблему –

+1

Конструктор бессмыслен, избавиться от него. 'in.nextDouble()' вызывается * до *, текст печатается, поэтому программа работает, она просто ждет ввода. – Andreas

ответ

2

Поскольку это задание, я не буду предоставлять фактический код для тебя. Однако, некоторые вещи, чтобы рассмотреть.

public P4_Icel_Murad_GroceryList(){ 
    Scanner in = new Scanner(System.in); 
} 

Этот код кажется немного бесполезным ... что вы планируете делать с этим объявленным сканером? Кроме того, in.nextDouble() возвращает двойное имя пользователя. Что вы делаете с этим значением? Вы не хотите просто распечатывать его, вы хотите его каким-то образом сохранить, чтобы впоследствии получить его, чтобы рассчитать сумму всех записей. Возможно, 5 разных переменных ... но, если вы еще не узнали о них, arrays кажутся идеальным кандидатом на эту проблему. Некоторые псевдо-код

Declare scanner 
Prompt user for 5 values 
Read next 5 doubles -- in.nextDouble() 
Total all values, and print to screen 
0

Never Mind, я был в состоянии ответить на мой собственный вопрос: результат

import java.util.Scanner; 
public class P4_Icel_Murad_GroceryList 
{ 
    public static void main(String[] args){  
     Scanner in = new Scanner(System.in); 
     //String a = in.nextLine(); 
     System.out.printf("Enter item #1: "); 
     double Num1 = in.nextDouble(); 
     System.out.printf("Enter item #2: "); 
     double Num2 = in.nextDouble(); 
     System.out.printf("Enter item #3: "); 
     double Num3 = in.nextDouble(); 
     System.out.printf("Enter item #4: "); 
     double Num4 = in.nextDouble(); 
     System.out.printf("Enter item #5: "); 
     double Num5 = in.nextDouble(); 
     System.out.println(); 
     System.out.printf("%-5s", "Item:"); 
     System.out.printf("%10s", "Cost:"); 
     System.out.printf("%10s", "Total:\n"); 
     System.out.printf("%5s", "#1"); 
     System.out.printf("%10.2f", Num1); 
     System.out.printf("%8s",Num1); 
     System.out.println(); 
     System.out.printf("%5s", "#2"); 
     System.out.printf("%10.2f", Num2); 
     System.out.printf("%8s",Num1 + Num2); 
     System.out.println(); 
     System.out.printf("%5s", "#3"); 
     System.out.printf("%10.2f", Num3); 
     System.out.printf("%8s",Num1 + Num2 + Num3); 
     System.out.println(); 
     System.out.printf("%5s", "#4"); 
     System.out.printf("%10.2f", Num4); 
     System.out.printf("%8s",Num1 + Num2 + Num3 + Num4); 
     System.out.println(); 
     System.out.printf("%5s", "#5"); 
     System.out.printf("%10.2f", Num5); 
     System.out.printf("%8.2f",Num1 + Num2 + Num3 + Num4 + Num5); 

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