作者joetsai (酒菜)
站内Programming
标题[问题] 面试遇到的题目
时间Tue Aug 12 21:35:19 2008
今天去面试的考试是上机考java 题目如下
有一戏院有30个座位
预约座位时以随机决定显示座位号码
如果座位满了显示座位已满
class名称为Reservation method名称为Reserve
以Random.nextFloat()乱数决定
我算是写出来了 但是觉得写的不好 不知道版上哪位高手能给个意见
谢谢
import java.util.Random;
import java.util.Scanner;
public class Reservation {
private boolean[] seat;
private int seat_count = 30;
public Reservation(){
seat = new boolean[seat_count];
for(int i = 0; i < seat.length; i++){
seat[i] = false;
}
}
public static void main(String args[]){
Reservation res = new Reservation();
Scanner sc = new Scanner(System.in);
System.out.print("请问要预约戏院座位吗?[Y/N]:");
String answer = sc.nextLine();
while(answer.equals("y") || answer.equals("Y")){
if(!res.Reserve()){
break;
}
System.out.print("请问还要预约戏院座位吗?[Y/N]:");
answer = sc.nextLine();
}
}
public boolean Reserve(){
if(seat_count > 0){
Random ran = new Random();
int order = (int) (ran.nextFloat() * seat_count) + 1;
int seat_number = 1;
while(order > 0){
if(seat[seat_number - 1] == false){
order--;
}
seat_number++;
}
seat[seat_number-2] = true;
seat_count--;
System.out.println("你预约到 " + (seat_number - 1)
+ " 号座位");
return true;
}
else{
System.out.println("不好意思位子已满!!!");
return false;
}
}
}
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 122.125.228.176
※ 编辑: joetsai 来自: 122.125.228.176 (08/12 22:01)
1F:推 slalala:我选位置那边会用NextInt...限定为3O 61.59.146.26 08/13 02:33
2F:推 slalala:ran.nextInt(30)+1 61.59.146.26 08/13 02:41
3F:→ joetsai:限定要以nextFloat()选位置 没打清楚 抱歉 122.125.229.18 08/13 08:27
4F:推 runtime:判断Yy我会先统一转小写再判断 163.22.18.83 08/14 15:39