Advertisement
Rayaank

Rent_A_Car

Nov 10th, 2017
160
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.40 KB | None | 0 0
  1. import java.util.*;
  2. class Rent_A_Car{
  3. public static void main(){
  4. print("\f"); //Clearing the screen
  5. println("Hello");
  6. try{ //Cool Welcome
  7. Thread.sleep(1000);
  8. }catch (InterruptedException e){
  9. e.printStackTrace();
  10. }
  11. print("\f"); //Clearing the screen
  12. boolean flag = false, flag2 = true, car_flag = false; String enteredModelName, customerName, dateRented; int daysRented, renter = 0;
  13. String renterName[] = new String[15];
  14. String rentedCars[] = new String[15];
  15. String rentedDate[] = new String[15];
  16. int rentedDays[] = new int[15];
  17. Scanner sc = new Scanner(System.in); //Initializing Scanner class
  18. Scanner sc2 = new Scanner(System.in);
  19. char again = 'n', mainmenu = 'n';
  20. println("------------------------------------------------------------------------------------------------------------------------------------------------------------------");
  21. println("Welcome to Rayaan Rent A Car");
  22. println("------------------------------------------------------------------------------------------------------------------------------------------------------------------");
  23. String usernames[] = {"Rayaan", "Ali", "1"}; //Array for stroing usernames
  24. String passwords[] = {"chicken", "cat", "1"}; //Array for storing passwords
  25. print("\nUsername: ");
  26. String username = sc.next(); //Entered username by user
  27. print("Password: ");
  28. String password = sc.next(); //Entered password by user
  29. String carModel[] = {"Toyota Corolla", "Toyota Yaris", "Toyota Fortuner", "Toyota Land Cruiser", "Nissan Tiida",
  30. "Nissan Patrol", "Ford Explorer", "Ford Focus", "Mitsubishi Lancer", "Mitsubishi Pajero", "GMC Yukon XL"}; //Names of cars
  31. int costPerDay[] = {50, 45, 100, 200, 50, 200, 100, 75, 50, 100, 250}; //Rental cost per day
  32. for(int i = 0; i < 3; i++){ //For loop for index number of arrays
  33. if (username.equalsIgnoreCase(usernames[i]) && password.equals(passwords[i])){ //Verifying username and password match
  34. println("\f"+"Welcome, " + usernames[i] +"\n"); //Welcoming users, \f for clearing the screen
  35. println("Select an option:");
  36. println("1. Display the details of the car arranged in the descending order of rent");
  37. println("2. Search for a specific model and display the details");
  38. println("3. Rent a Car");
  39. println("4. Display the details of the cars that have been rented, arranged in the descending order of number of days for rent");
  40. println("5. Exit");
  41. int choice = sc.nextInt(); //Variable for storing user's choice
  42. switch(choice){
  43. case 1:
  44. print("\f");
  45. for(int x = 0; x < costPerDay.length-1; x++){ //Sort the Cost Per Day Array in descending order using bubble sort
  46. for(int j = x + 1; j < costPerDay.length; j++){
  47. if(costPerDay[x] < costPerDay[j]){
  48. int t = costPerDay[x];
  49. String s = carModel[x];
  50. costPerDay[x] = costPerDay[j];
  51. costPerDay[j] = t;
  52. carModel[x] = carModel[j];
  53. carModel[j] = s;
  54. }
  55. }
  56. }
  57. for(int x = 0; x < carModel.length; x++){
  58. println(carModel[x] + " - " + costPerDay[x] );
  59. }
  60. println("Return to Main Menu? (y/n)");
  61. mainmenu = sc.next().charAt(0);
  62. break;
  63. //End of case 1//
  64. case 2:
  65. do{
  66. print("\f");
  67. println("Enter the name of the car");
  68. enteredModelName = sc2.nextLine();
  69. for(int x = 0; x < carModel.length; x++){
  70. if (carModel[x].equalsIgnoreCase(enteredModelName)){
  71. car_flag = true;
  72. print("\f");
  73. println("Car name: " + carModel[x]);
  74. println("Cost per day: " + costPerDay[x]);
  75. break;
  76. }
  77. }
  78. if(!car_flag){
  79. println("Not Found!");
  80. }
  81. println("\nAgain? (y/n)");
  82. again = sc.next().charAt(0);
  83. }while(again == 'y' );
  84. println("Return to Main Menu? (y/n)");
  85. mainmenu = sc.next().charAt(0);
  86. break;
  87. //End of case 2//
  88. case 3:
  89. print("\f");
  90. println("Rent A Car");
  91. do{
  92. again = 'n';
  93. print("Model Name: ");
  94. enteredModelName = sc2.nextLine();
  95. for(int x = 0; x < carModel.length; x++){
  96. if (carModel[x].equalsIgnoreCase(enteredModelName)){
  97. car_flag = true;
  98. rentedCars[renter] = carModel[x];
  99. break;
  100. }
  101. }
  102. if(!car_flag){
  103. println("Not Found!");
  104. }
  105. }while(!car_flag);
  106. do{
  107. print("Customer Name: ");
  108. customerName = sc2.nextLine();
  109. renterName[renter] = customerName;
  110. }while(verifyName(customerName));
  111. do{
  112. print("Number of Days Rented: ");
  113. daysRented = sc.nextInt();
  114. rentedDays[renter] = daysRented;
  115. }while(!verifyNumber(daysRented));
  116. print("Date: ");
  117. dateRented = sc2.next();
  118. rentedDate[renter] = dateRented;
  119. print("\f");
  120. println("------------------------------------------------------------------------------------------------------------------------------------------------------------------");
  121. println("Rayaan Rent A Car");
  122. println("------------------------------------------------------------------------------------------------------------------------------------------------------------------");
  123. println("Customer name: " + renterName[renter]);
  124. println("Date: " + rentedDate[renter]);
  125. println("Car Model: " + rentedCars[renter]);
  126. println("Rent Per Day: " + costPerDay[renter]);
  127. println("Number of Days Rented: " + rentedDays[renter]);
  128. println("Total Cost: " + costPerDay[renter]*rentedDays[renter]);
  129. println("------------------------------------------------------------------------------------------------------------------------------------------------------------------");
  130. renter++;
  131. break;
  132. case 4:
  133. for(int x = 0; x < rentedDays.length-1; x++){ //Sort the Cost Per Day Array in descending order using bubble sort
  134. for(int j = x + 1; j < rentedDays.length; j++){
  135. if(rentedDays[x] < rentedDays[j]){
  136. int newDays = rentedDays[x];
  137. int newCost = costPerDay[x];
  138. String newRentedCars = rentedCars[x];
  139. String newDate = rentedDate[x];
  140. String newName = renterName[x];
  141. costPerDay[x] = costPerDay[j];
  142. costPerDay[j] = newCost;
  143. rentedCars[x] = rentedCars[j];
  144. rentedCars[j] = newRentedCars;
  145. renterName[x] = renterName[j];
  146. renterName[j] = newName;
  147. rentedDate[x] = rentedDate[j];
  148. rentedDate[j] = newDate;
  149. }
  150. }
  151. }
  152. int x = 0;
  153. if(rentedDays[x] > 0)
  154. for(x = 0; x < rentedCars.length - 1; x++){
  155. println(rentedCars[x] + " - " + renterName[x] + " - " + rentedDays[x] + " - " + rentedDate[x]);
  156. }
  157. println("Return to Main Menu? (y/n)");
  158. mainmenu = sc.next().charAt(0);
  159. break;
  160. case 5:
  161. exit();//Cool Exit
  162. }
  163. flag = true; flag2 = false;
  164. break;
  165. }else if(username.equalsIgnoreCase(usernames[i]) && !password.equals(passwords[i])){
  166. println("Invalid Password!");
  167. flag2 = false;
  168. break;
  169. }else if(!username.equalsIgnoreCase(usernames[i]) && password.equals(passwords[i])){
  170. println("Invalid Username!");
  171. flag2 = false;
  172. break;
  173. }
  174. }
  175. if(flag2){
  176. println("Invalid Username and Password!");
  177. }
  178. if(!flag){
  179. println("\nDo you want to try again? (y/n)");
  180. char restart = sc.next().charAt(0);
  181. if (restart == 'y'){
  182. main();
  183. }else{
  184. exit();//Cool Exit
  185. }
  186. }
  187. }
  188.  
  189. public static void println(String s){
  190. System.out.println(s);
  191. }
  192.  
  193. public static void print(String s){
  194. System.out.print(s);
  195. }
  196.  
  197. public static boolean verifyName(String s){
  198. boolean name_flag = false;
  199. s = s.toUpperCase();
  200. for(int i = 0; i < s.length(); i++){
  201. char x = s.charAt(i);
  202. if(x >= 'A' && x <= 'Z' || x == ' '){
  203. name_flag = true;
  204. }else{
  205. println("Name can only contain letters! Try Again");
  206. name_flag = false;
  207. }
  208. }
  209. if(name_flag)
  210. return false;
  211. else
  212. return true;
  213. }
  214.  
  215. public static boolean verifyNumber(int n){
  216. if(n > 0){
  217. return true;
  218. }else{
  219. println("Has to be more than zero! Try Again");
  220. return false;
  221. }
  222. }
  223.  
  224. public static void exit(){//Coolest Exit function
  225. try{//Cool Exit
  226. print("\nExiting");
  227. Thread.sleep(100);
  228. print(".");
  229. Thread.sleep(600);
  230. print(".");
  231. Thread.sleep(600);
  232. print(".");
  233. Thread.sleep(600);
  234. }catch (InterruptedException e){
  235. e.printStackTrace();
  236. }
  237. System.exit(0);
  238. }
  239. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement