Java编程(数组和循环)
基本编程概念 实验室9–阵列 编写电影院预订程序,允许客户预订电影院座位。在节目开始时,要求客户输入姓名并显示自定义问候语。预订座位后,应将其标记为“**”。如果客户选择了其他客户已预订的座位,则显示一条消息通知客户并建议下一个可用座位。 样本输出: 嗨,你叫什么名字? 艾米 欢迎你,艾米Java编程(数组和循环),java,arrays,Java,Arrays,基本编程概念 实验室9–阵列 编写电影院预订程序,允许客户预订电影院座位。在节目开始时,要求客户输入姓名并显示自定义问候语。预订座位后,应将其标记为“**”。如果客户选择了其他客户已预订的座位,则显示一条消息通知客户并建议下一个可用座位。 样本输出: 嗨,你叫什么名字? 艾米 欢迎你,艾米 电影院1座位计划 00 01 02 03 04 05 06 07 08 09 1011121314 1516171819 20 21 22 23 24 25 26 27 28 29 你想要哪个座位? 二十
电影院1座位计划
00 01 02 03 04
05 06 07 08 09
1011121314
1516171819
20 21 22 23 24
25 26 27 28 29
你想要哪个座位? 二十一, 您想再预订一次吗?(Y或N) 如果所选座位已被其他人预订,请告知下一个可用座位 现在是代码。代码的问题在于我可能不知道如何将某人的“y”改为布尔值的“true”。为什么编码永远都不容易
import java.util.*;
public class cinema
{
public static void main(String args[])
{
Scanner input = new Scanner(System.in);
int booking;
String name;
int suggestion = 0;
boolean check1 = true;
String check2 = "_";
String check11 = "_";
//create array
final int ARRAY_LENGTH = 30;
int[] array = new int[ARRAY_LENGTH];
String[] seats = { "00", "01" , "02" , "03" , "04" , "05" , "06" , "07" , "08" , "09" , "10"
, "11" , "12" , "13" , "14" , "15" , "16" , "17" , "18" , "19" , "20" , "21"
, "22" , "23" , "24" , "25" , "26" , "27" , "28" , "29"};
System.out.println("Hi, what is your name?");
name = input.nextLine();
System.out.printf("Welcome,%s!\n",name);
System.out.println("*********************");
System.out.println("CINEMA 1 SEATING PLAN");
System.out.println("*********************");
do{
for(int a = 0; a < 30; a++ ){
System.out.printf("%s\t", seats[a]);
if (a % 5 == 4){
System.out.printf("\n");
}
}
System.out.println("Which seat do you want?");
booking = input.nextInt();
if(seats[booking] == "**"){
System.out.println("Sorry! Seat taken.");
for(int b = 0; b < 30; b++){
if(seats[booking + b] == "**"){
check2 = seats[booking + b];
}
else if(seats[booking - b] == "**"){
check2 = seats[booking - b];
}
else{
}
}//end for loop
System.out.printf("Suggest to take seat:%s\n", check2);
}//end if
seats[booking] = "**";
System.out.println("Would you like to make another booking?(Y or N)");
check11 = input.nextLine();
while(check11 == "y"||check11 == "n"){
if(check11 == "y"){
check1 = true;
System.out.print("a");
}
else if(check11 == "n"){
check1 = false;
System.out.print("b");
}
else{
System.out.println("Would you like to make another booking?(Y or N)");
check11 = input.nextLine();
}
}//end while
}while(check1);//outer while
}
//end main
}
import java.util.*;
公共影院
{
公共静态void main(字符串参数[])
{
扫描仪输入=新扫描仪(System.in);
国际订票;
字符串名;
int=0;
布尔校验1=真;
字符串检查2=“25;”;
字符串检查11=“25;”;
//创建数组
最终整数数组长度=30;
int[]数组=新的int[array_LENGTH];
字符串[]座位={“00”、“01”、“02”、“03”、“04”、“05”、“06”、“07”、“08”、“09”、“10”
, "11" , "12" , "13" , "14" , "15" , "16" , "17" , "18" , "19" , "20" , "21"
, "22" , "23" , "24" , "25" , "26" , "27" , "28" , "29"};
System.out.println(“你好,你叫什么名字?”);
name=input.nextLine();
System.out.printf(“欢迎,%s!\n”,名称);
System.out.println(“*************************”);
系统输出打印(“电影院1座位计划”);
System.out.println(“*************************”);
做{
对于(int a=0;a<30;a++){
System.out.printf(“%s\t”,seats[a]);
如果(a%5==4){
System.out.printf(“\n”);
}
}
System.out.println(“您想要哪个座位?”);
booking=input.nextInt();
如果(座位[预订]=“**”){
System.out.println(“对不起,有人坐了”);
对于(int b=0;b<30;b++){
如果(座位[预订+b]==“**”){
check2=座位[预订+b];
}
否则如果(座位[预订-b]==“**”){
check2=座位[预订-b];
}
否则{
}
}//循环结束
System.out.printf(“建议就座:%s\n”,勾选2);
}//如果结束
座位[预订]=“**”;
System.out.println(“您想再预订一次吗?(Y或N)”);
check11=input.nextLine();
while(check11==“y”| | check11==“n”){
如果(勾选11=“y”){
检查1=正确;
系统输出打印(“a”);
}
否则如果(勾选11==“n”){
check1=假;
系统输出打印(“b”);
}
否则{
System.out.println(“您想再预订一次吗?(Y或N)”);
check11=input.nextLine();
}
}//结束时
}while(选中1);//外部while
}
//端干管
}
请不要将其标记为重复。它的问题是不同的。
我拿不到电话
“您想再预订一次吗?(Y或N)”
工作。当我的意思是我不能让它工作时,我的意思是程序不会让我有机会进入y或n。真正的问题是check11=input.nextLine();。有人能告诉我有什么问题吗
另外,前面的参考资料也没有帮助。我不明白它是如何引用我的问题的。要比较两个字符串,必须使用equals方法 例如:'
"y".equals(check11)
明显重复的人不需要答案,他们需要接近票数的选票。我认为你还没有代表结束投票,但你可以找出一个重复的,其他人可以用来结束问题。(在本例中,这是规范性的)。这不是问题所在。问题是我的代码。最后一个while语句将不会激活。我在问你是否知道问题是什么。除了回答“我可能不知道如何将某人的“y”改为布尔值的“true”的链接问题外,还要注意
while(check1==true)
是个坏主意;只需while(选中1)
即可(可能需要更具表现力的变量名,例如keeploping
)check1
已经是一个布尔值,因此无需使用==
获取另一个布尔值。始终使用if(flag)
或if(!flag)
“此外,前面的参考文献也没有帮助。我不明白它是如何引用我的问题的。”然后仔细阅读。您说您不知道如何将某人的“y”
转换为布尔值。该问题的答案告诉您如何将“y”
转换为布尔值。如果你想问别的问题,那么你需要用一个更有针对性的问题来明确这一点,最好是用一个。我不知道怎么做。但我很确定我得到了完整的和可验证的。完整如中所示,这是我试图修复的代码的精确副本。我在我的电脑和互联网软件上反复尝试过。“您想再预订一次吗?(Y或N)”创建了一个永恒的循环,幸运的是System.out.println(“您想要哪个座位?”)停止了该循环;booking=input.nextInt();请原谅这个新手,初学者,大学,文凭学生。