2013-09-18 4 views
-3

Мне нужно спроектировать и реализовать приложение под названием CinemaPrice, чтобы определить, сколько человек платит за просмотр кинотеатра. Программа должна генерировать возраст от 1 до 100 с использованием класса Random и запрашивать у пользователя полную стоимость билета. Затем отобразите соответствующую стоимость билета, используя формат валюты (пример в вашей книге). Вы можете обратиться к примеру, который мы сделали вместе в классе, чтобы помочь вам с выражением «if». Определите стоимость билета на следующей основе:
1. до 5 лет, бесплатно; 2. в возрасте от 5 до 12 лет, половина цены; 3. в возрасте от 13 до 54 лет, полная стоимость; 4. в возрасте 55 лет или старше, бесплатно.Чтение ввода пользователя в Java

Я действительно хотел бы некоторую помощь в этом я новичок в Java и проводил часы на этом сейчас я хотел бы закончить :) Это то, что я до сих пор:

import java.util.Scanner; //Needed for the Scanner class 
import java.util.Random; 
import java.text.DecimalFormat; 

public class CinemaPrice 
{  
public static void main(String[] args) //all the action happens here!  
{ Scanner input = new Scanner (System.in); 

    int age = 0; 
    double priceNumber = 0.00; 


    Random generator = new Random(); 
    age = generator.nextInt(100) + 1; 


    if ((age <= 5) || (age >=55) { 
     priceNumber = 0.0; 
    }else if (age <= 12){ 
     priceNumber = 12.50; 
    }else { 
     system.out.println("Sorry, But the age supplied was invalid."); 
    } 
    if (priceNumber <= 0.0) { 
     System.out.println("The person age " + age + " is free!); 
    } 
    else { 
     System.out.println("Price for the person age " + age + "is: $" + priceNumber); 
    } 
} //end of the main method 

} // end of the class 

I не знаю, как запрашивать и читать данные от пользователя, хотя - можете ли вы помочь?

+2

Это домашнее задание ..... –

+1

В чем Ваш вопрос? –

+0

В чем вопрос? – Tim

ответ

0

Первый вопрос, который я вижу в том, что вам необходимо обновить условный оператор здесь что-нибудь от 13 до 54 будет инвалидом возраста ...

if ((age <= 5) || (age >=55) { 
    priceNumber = 0.0; 
}else if (age <= 12){ 
    priceNumber = 12.50; 
}else if (age < 55){ 
    //whatever this ticket price is 
}else { 
    system.out.println("Sorry, But the age supplied was invalid."); 
} 

Нечто подобное будет работать ...

+0

хорошо, что исправлено, что мне нужно предложить пользователю ввести значения для цены на билет и возраст, но не уверен, как это сделать, если бы я сделал это после инструкции else ? –

0

Вы заявили, что ваша реальная проблема заключается в получении данных в вашей программе, следующие должны продемонстрировать с помощью класса Scanner

public static void main(String[] args) { 
    System.out.println("Enter an age"); 

    Scanner scan=new Scanner(System.in); 

    int age=scan.nextInt(); 
    System.out.println("Your age was " + age); 

    double price=scan.nextDouble(); 
    System.out.println("Your price was " + price); 

} 

Теперь это основная идея, б ut, если вы предоставляете неверный ввод (например, слово), вы можете получить исключение, однако вы можете проверить, что ввод, который вы получаете, правильный и только принять его, если это то, что вы хотите, например;

public class Main{ 

    public static void main(String[] args) { 
     System.out.println("Enter an age"); 

     Scanner scan=new Scanner(System.in); 


     while (!scan.hasNextInt()) { //ask if the scanner has "something we want" 
      System.out.println("Invalid age"); 
      System.out.println("Enter an age"); 
      scan.next(); //it doesn't have what we want, demand annother 
     } 
     int age = scan.nextInt(); //we finally got what we wanted, use it 


     System.out.println("Your age was " + age); 

    } 

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