作者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)
推 slalala:我選位置那邊會用NextInt...限定為3O 61.59.146.26 08/13 02:33
推 slalala:ran.nextInt(30)+1 61.59.146.26 08/13 02:41
→ joetsai:限定要以nextFloat()選位置 沒打清楚 抱歉 122.125.229.18 08/13 08:27
推 runtime:判斷Yy我會先統一轉小寫再判斷 163.22.18.83 08/14 15:39