我需要设计并实现一个名为CinemaPrice的应用程序,以确定一个人付钱去看电影的费用。该程序应使用Random类生成1 - 100的年龄,并提示用户提供完整的票价。然后使用货币格式显示相应的票价(书中的示例)。您可能想要参考我们在课堂上一起做的示例,以帮助您使用“if语句”。根据以下基础确定机票价格:
1. 5岁以下,免费;
2.年龄5至12岁,半价;
3.年龄13至54岁,全价;
4. 55岁或以上,免费。
我真的很喜欢这方面的一些帮助我是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
我不知道如何提示和阅读用户的输入 - 你能帮忙吗?
答案 0 :(得分: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.");
}
这样的东西会起作用......
答案 1 :(得分: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);
}
现在这是基本的想法,但是如果你提供了一个不正确的输入(比如一个单词),你可以得到一个例外,你可以检查你得到的输入是否正确,只接受你想要的输入,像这样;
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);
}
}