Advertisement
Guest User

Untitled

a guest
Apr 24th, 2019
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 14.97 KB | None | 0 0
  1. public class AirplaneSeatingSystem {
  2. public static void main(String[] args) {
  3. AirplaneMenu menu = new AirplaneMenu();
  4. menu.run();
  5. }
  6. }
  7. public class Airplane
  8. {
  9. //constants
  10. public final int NUM_ROWS_FIRST = 5;
  11. public final int NUM_ROWS_ECON = 15;
  12. public final int NUM_SEATS_FIRST = 4;
  13. public final int NUM_SEATS_ECON = 6;
  14.  
  15. //instance fields
  16. private String[][] firstClass;
  17. private String[][] economyClass;
  18.  
  19. //default constructor
  20. public Airplane()
  21. {
  22. firstClass = new String[NUM_ROWS_FIRST][4];
  23. economyClass = new String[NUM_ROWS_ECON][6];
  24. }
  25.  
  26. //constructor
  27. public Airplane(String[][] fClass, String[][] eClass)
  28. {
  29. firstClass = fClass;
  30. economyClass = eClass;
  31. }
  32.  
  33. //returns airplane layout
  34. public String showSeat()
  35. {
  36. String airplane = "";
  37. for (int i = 0; i < firstClass.length; i++)
  38. {
  39. if(i < 6)
  40. airplane+= " ";
  41. airplane += (i + 1)+ ":";
  42. for(int j = 0; j < firstClass[i].length; j++)
  43. {
  44. airplane += firstClass[i][j] + " ";
  45. }
  46. airplane += "\n";
  47. }
  48.  
  49. for(int a = 0; a < economyClass.length; a++)
  50. {
  51. if(a < 4)
  52. airplane += " ";
  53. airplane += (a + NUM_ROWS_FIRST + 1) + ":";
  54. for(int b = 0; b < economyClass[a].length; b++)
  55. {
  56. if(b == 3)
  57. airplane += " ";
  58. airplane += economyClass[a][b];
  59. }
  60. airplane += "\n";
  61. }
  62. return airplane;
  63. }
  64.  
  65. //initializes elements of array representing first class
  66. public void createFirstClass()
  67. {
  68. for(int i = 0; i < firstClass.length; i++)
  69. {
  70. for(int j = 0; j < firstClass[i].length; j++)
  71. {
  72. firstClass[i][j] = ".";
  73. }
  74. }
  75. }
  76.  
  77. //initializes elements of array representing economy class
  78. public void createEconClass()
  79. {
  80. for(int i = 0; i < economyClass.length; i++)
  81. {
  82. for(int j = 0; j < economyClass[i].length; j++)
  83. {
  84. economyClass[i][j] = ".";
  85. }
  86. }
  87. }
  88.  
  89. //adds seats in the specified class for a specific number of passengers according to seating preference
  90. public void addSeat(String planeClass, int numPassengers, String pref)
  91. {
  92. if(planeClass.equals("F"))
  93. {
  94. if(numPassengers == 1)
  95. firstClassOneSeat(pref);
  96. else if(numPassengers == 2)
  97. firstClassTwoSeats();
  98. }
  99. else if(planeClass.equals("E"))
  100. {
  101. if(numPassengers == 1)
  102. econClassOneSeat(pref);
  103. else if(numPassengers == 2)
  104. econClassTwoSeats(pref);
  105. else if(numPassengers == 3)
  106. econClassThreeSeats();
  107. }
  108. }
  109.  
  110. //checks if there are matches to the requested seats
  111. public boolean seatAvailable(String planeClass, int numPassengers, String pref)
  112. {
  113. boolean seatAvailable = true;
  114. if(planeClass.equals("F"))
  115. {
  116. if(numPassengers == 1)
  117. seatAvailable = firstClassOneSeatAvailable(pref);
  118. else
  119. seatAvailable = firstClassTwoSeatsAvailable();
  120. }
  121. else
  122. {
  123. if(numPassengers == 1)
  124. seatAvailable = econClassOneSeatAvailable(pref);
  125. else if(numPassengers == 2)
  126. seatAvailable = econClassTwoSeatsAvailable(pref);
  127. else
  128. seatAvailable = econClassThreeSeatsAvailable();
  129. }
  130. return seatAvailable;
  131. }
  132.  
  133. //checks if a single seat in first class is available
  134. public boolean firstClassOneSeatAvailable(String seatPref)
  135. {
  136. boolean available = false;
  137. int i = 0;
  138. while(!available && i < firstClass.length)
  139. {
  140. if(seatPref.equals("W"))
  141. {
  142. if(firstClass[i][0].equals(".") || firstClass[i][3].equals("."))
  143. {
  144. available = true;
  145. }
  146. }
  147. else if(seatPref.equals("A"))
  148. {
  149. if(firstClass[i][1].equals(".") || (firstClass[i][2].equals(".")))
  150. {
  151. available = true;
  152. }
  153. }
  154. i++;
  155. }
  156.  
  157. return available;
  158. }
  159.  
  160. //checks if a two seats in first class are available
  161. public boolean firstClassTwoSeatsAvailable()
  162. {
  163. boolean available = false;
  164. int i = 0;
  165. while(!available && i < firstClass.length)
  166. {
  167. if((firstClass[i][0].equals(".") && firstClass[i][1].equals("."))
  168. || (firstClass[i][2].equals(".") && firstClass[i][3].equals(".")))
  169. {
  170. available = true;
  171. }
  172. i++;
  173. }
  174.  
  175. return available;
  176. }
  177.  
  178. //checks if a single seat in economy class is available
  179. public boolean econClassOneSeatAvailable(String seatPref)
  180. {
  181. boolean available = false;
  182. int i = 0;
  183. while(!available && i < firstClass.length)
  184. {
  185. if(seatPref.equals("W"))
  186. {
  187. if(economyClass[i][0].equals(".") || economyClass[i][5].equals("."))
  188. {
  189. available = true;
  190. }
  191. }
  192. else if(seatPref.equals("C"))
  193. {
  194. if(economyClass[i][1].equals(".") || economyClass[i][4].equals("."))
  195. {
  196. available = true;
  197. }
  198. }
  199. else if(seatPref.equals("A"))
  200. {
  201. if(economyClass[i][2].equals(".") || economyClass[i][3].equals("."))
  202. {
  203. available = true;
  204. }
  205. }
  206. i++;
  207. }
  208.  
  209. return available;
  210. }
  211.  
  212. //checks if two seats in economy class are available
  213. public boolean econClassTwoSeatsAvailable(String seatPref)
  214. {
  215. boolean available = false;
  216. int i = 0;
  217. while(!available && i < firstClass.length)
  218. {
  219. if(seatPref.equals("W") || seatPref.equals("C"))
  220. {
  221. if((economyClass[i][0].equals(".") && economyClass[i][1].equals("."))
  222. || (economyClass[i][4].equals(".") && economyClass[i][5].equals(".")))
  223. {
  224. available = true;
  225. }
  226. }
  227. else if(seatPref.equals("A") || seatPref.equals("C"))
  228. {
  229. if((economyClass[i][1].equals(".") && economyClass[i][2].equals("."))
  230. || (economyClass[i][3].equals(".") && economyClass[i][4].equals(".")))
  231. {
  232. available = true;
  233. }
  234. }
  235. i++;
  236. }
  237.  
  238. return available;
  239. }
  240.  
  241. //checks if three seats in economy class are available
  242. public boolean econClassThreeSeatsAvailable()
  243. {
  244. boolean available = false;
  245. int i = 0;
  246. while(!available && i < firstClass.length)
  247. {
  248. if((economyClass[i][0].equals(".") && economyClass[i][1].equals(".") && economyClass[i][2].equals("."))
  249. || (economyClass[i][3].equals(".") && economyClass[i][4].equals(".") && economyClass[i][5].equals(".")))
  250. {
  251. available = true;
  252. }
  253. i++;
  254. }
  255.  
  256. return available;
  257. }
  258.  
  259. //adds one seat to first class
  260. public void firstClassOneSeat(String seatPref)
  261. {
  262. for (int i = 0; i < firstClass.length; i++)
  263. {
  264. if(seatPref.equals("W"))
  265. {
  266. if(firstClass[i][0].equals("."))
  267. {
  268. firstClass[i][0] = "*";
  269. return;
  270. }
  271. else if(firstClass[i][3].equals("."))
  272. {
  273. firstClass[i][3] = "*";
  274. return;
  275. }
  276.  
  277. }
  278. else if(seatPref.equals("A"))
  279. {
  280. if(firstClass[i][1].equals("."))
  281. {
  282. firstClass[i][1] = "*";
  283. return;
  284. }
  285. else if(firstClass[i][2].equals("."))
  286. {
  287. firstClass[i][2] = "*";
  288. return;
  289. }
  290.  
  291. }
  292. }
  293. }
  294.  
  295. //adds two seats to first class
  296. public void firstClassTwoSeats()
  297. {
  298. for(int i = 0; i < firstClass.length; i++)
  299. {
  300. if(firstClass[i][0].equals(".") && firstClass[i][1].equals("."))
  301. {
  302. firstClass[i][0] = "*";
  303. firstClass[i][1] = "*";
  304. return;
  305. }
  306. else if(firstClass[i][2].equals(".") && firstClass[i][3].equals("."))
  307. {
  308. firstClass[i][2] = "*";
  309. firstClass[i][3] = "*";
  310. return;
  311. }
  312.  
  313. }
  314. }
  315.  
  316. //adds one seat to economy class
  317. public void econClassOneSeat(String seatPref)
  318. {
  319. for(int i = 0; i < economyClass.length; i++)
  320. {
  321. if(seatPref.equals("W"))
  322. {
  323. if(economyClass[i][0].equals("."))
  324. {
  325. economyClass[i][0] = "*";
  326. return;
  327. }
  328. else if(economyClass[i][5].equals("."))
  329. {
  330. economyClass[i][5] = "*";
  331. return;
  332. }
  333.  
  334. }
  335. else if(seatPref.equals("C"))
  336. {
  337. if(economyClass[i][1].equals("."))
  338. {
  339. economyClass[i][1] = "*";
  340. return;
  341. }
  342. else if(economyClass[i][4].equals("."))
  343. {
  344. economyClass[i][4] = "*";
  345. return;
  346. }
  347.  
  348. }
  349. else if(seatPref.equals("A"))
  350. {
  351. if(economyClass[i][2].equals("."))
  352. {
  353. economyClass[i][2] = "*";
  354. return;
  355. }
  356. else if(economyClass[i][3].equals("."))
  357. {
  358. economyClass[i][3] = "*";
  359. return;
  360. }
  361.  
  362. }
  363. }
  364. }
  365.  
  366. //adds two seats to economy class
  367. public void econClassTwoSeats(String seatPref)
  368. {
  369. for(int i = 0; i < economyClass.length; i++)
  370. {
  371. if(seatPref.equals("W") || seatPref.equals("C"))
  372. {
  373. if(economyClass[i][0].equals(".") && economyClass[i][1].equals("."))
  374. {
  375. economyClass[i][0] = "*";
  376. economyClass[i][1] = "*";
  377. return;
  378. }
  379. else if(economyClass[i][4].equals(".") && economyClass[i][5].equals("."))
  380. {
  381. economyClass[i][4] = "*";
  382. economyClass[i][5] = "*";
  383. return;
  384. }
  385.  
  386. }
  387. else if(seatPref.equals("A") || seatPref.equals("C"))
  388. {
  389. if(economyClass[i][1].equals(".") && economyClass[i][2].equals("."))
  390. {
  391. economyClass[i][1] = "*";
  392. economyClass[i][2] = "*";
  393. return;
  394. }
  395. else if(economyClass[i][3].equals(".") && economyClass[i][4].equals("."))
  396. {
  397. economyClass[i][3] = "*";
  398. economyClass[i][4] = "*";
  399. return;
  400. }
  401.  
  402. }
  403. }
  404. }
  405.  
  406. //adds three seats to economy class
  407. public void econClassThreeSeats()
  408. {
  409. for(int i = 0; i < economyClass.length; i++)
  410. {
  411. if(economyClass[i][0].equals(".") && economyClass[i][1].equals(".") && economyClass[i][2].equals("."))
  412. {
  413. economyClass[i][0] = "*";
  414. economyClass[i][1] = "*";
  415. economyClass[i][2] = "*";
  416. return;
  417. }
  418. else if(economyClass[i][3].equals(".") && economyClass[i][4].equals(".") && economyClass[i][5].equals("."))
  419. {
  420. economyClass[i][3] = "*";
  421. economyClass[i][4] = "*";
  422. economyClass[i][5] = "*";
  423. return;
  424. }
  425.  
  426. }
  427. }
  428. }
  429.  
  430. import java.util.Scanner;
  431. public class AirplaneMenu
  432. {
  433. //instance field
  434. private Airplane myAirplane;
  435.  
  436. //default constructor
  437. public AirplaneMenu()
  438. {
  439. myAirplane = new Airplane();
  440. }
  441.  
  442. //runs the airplane menu
  443. public void run()
  444. {
  445. //creates airplane layout
  446. myAirplane.createFirstClass();
  447. myAirplane.createEconClass();
  448. String choice = "";
  449. while (!choice.equals("Q"))
  450. {
  451. //prints menu
  452. System.out.println("A)dd\tS)how\tQ)uit");
  453.  
  454. //accepts user input
  455. Scanner console = new Scanner(System.in);
  456. choice = console.nextLine();
  457. if(choice.equals("A"))
  458. {
  459. String airplaneClass = "";
  460. String seatingPref = "";
  461. int numPassengers = 0;
  462.  
  463. System.out.println("F)irst\tE)conomy");
  464. airplaneClass = console.nextLine();
  465. if(airplaneClass.equals("F"))
  466. {
  467. System.out.println("Passengers? (1-2)");
  468. numPassengers = console.nextInt();
  469. if(numPassengers < 2)
  470. {
  471. Scanner input = new Scanner(System.in);
  472. System.out.println("A)isle\tW)indow");
  473. seatingPref = input.nextLine();
  474. }
  475.  
  476. //checks if there is a match
  477. if(!myAirplane.seatAvailable("F", numPassengers, seatingPref))
  478. System.out.println("No match exists. Seat unavailable.");
  479. else
  480. myAirplane.addSeat("F", numPassengers, seatingPref);
  481. }
  482. else if(airplaneClass.equals("E"))
  483. {
  484. System.out.println("Passengers? (1-3)");
  485. numPassengers = console.nextInt();
  486. if (numPassengers < 3)
  487. {
  488. Scanner input1 = new Scanner(System.in);
  489. System.out.println("A)isle\tC)enter\tW)indow");
  490. seatingPref = input1.nextLine();
  491. }
  492.  
  493. //checks if there is a match
  494. if(!myAirplane.seatAvailable("E", numPassengers, seatingPref))
  495. System.out.println("No match exists. Seat unavailable.");
  496. else
  497. myAirplane.addSeat("E", numPassengers, seatingPref);
  498.  
  499. }
  500. }
  501. //shows seating
  502. else if(choice.equals("S"))
  503. {
  504. System.out.println(myAirplane.showSeat());
  505. }
  506.  
  507. System.out.println();
  508.  
  509. }
  510. }
  511. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement