Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.*;
- class Rent_A_Car{
- public static void main(){
- print("\f"); //Clearing the screen
- println("Hello");
- try{ //Cool Welcome
- Thread.sleep(1000);
- }catch (InterruptedException e){
- e.printStackTrace();
- }
- print("\f"); //Clearing the screen
- boolean flag = false, flag2 = true, car_flag = false; String enteredModelName, customerName, dateRented; int daysRented, renter = 0;
- String renterName[] = new String[15];
- String rentedCars[] = new String[15];
- String rentedDate[] = new String[15];
- int rentedDays[] = new int[15];
- Scanner sc = new Scanner(System.in); //Initializing Scanner class
- Scanner sc2 = new Scanner(System.in);
- char again = 'n', mainmenu = 'n';
- println("------------------------------------------------------------------------------------------------------------------------------------------------------------------");
- println("Welcome to Rayaan Rent A Car");
- println("------------------------------------------------------------------------------------------------------------------------------------------------------------------");
- String usernames[] = {"Rayaan", "Ali", "1"}; //Array for stroing usernames
- String passwords[] = {"chicken", "cat", "1"}; //Array for storing passwords
- print("\nUsername: ");
- String username = sc.next(); //Entered username by user
- print("Password: ");
- String password = sc.next(); //Entered password by user
- String carModel[] = {"Toyota Corolla", "Toyota Yaris", "Toyota Fortuner", "Toyota Land Cruiser", "Nissan Tiida",
- "Nissan Patrol", "Ford Explorer", "Ford Focus", "Mitsubishi Lancer", "Mitsubishi Pajero", "GMC Yukon XL"}; //Names of cars
- int costPerDay[] = {50, 45, 100, 200, 50, 200, 100, 75, 50, 100, 250}; //Rental cost per day
- for(int i = 0; i < 3; i++){ //For loop for index number of arrays
- if (username.equalsIgnoreCase(usernames[i]) && password.equals(passwords[i])){ //Verifying username and password match
- println("\f"+"Welcome, " + usernames[i] +"\n"); //Welcoming users, \f for clearing the screen
- println("Select an option:");
- println("1. Display the details of the car arranged in the descending order of rent");
- println("2. Search for a specific model and display the details");
- println("3. Rent a Car");
- println("4. Display the details of the cars that have been rented, arranged in the descending order of number of days for rent");
- println("5. Exit");
- int choice = sc.nextInt(); //Variable for storing user's choice
- switch(choice){
- case 1:
- print("\f");
- for(int x = 0; x < costPerDay.length-1; x++){ //Sort the Cost Per Day Array in descending order using bubble sort
- for(int j = x + 1; j < costPerDay.length; j++){
- if(costPerDay[x] < costPerDay[j]){
- int t = costPerDay[x];
- String s = carModel[x];
- costPerDay[x] = costPerDay[j];
- costPerDay[j] = t;
- carModel[x] = carModel[j];
- carModel[j] = s;
- }
- }
- }
- for(int x = 0; x < carModel.length; x++){
- println(carModel[x] + " - " + costPerDay[x] );
- }
- println("Return to Main Menu? (y/n)");
- mainmenu = sc.next().charAt(0);
- break;
- //End of case 1//
- case 2:
- do{
- print("\f");
- println("Enter the name of the car");
- enteredModelName = sc2.nextLine();
- for(int x = 0; x < carModel.length; x++){
- if (carModel[x].equalsIgnoreCase(enteredModelName)){
- car_flag = true;
- print("\f");
- println("Car name: " + carModel[x]);
- println("Cost per day: " + costPerDay[x]);
- break;
- }
- }
- if(!car_flag){
- println("Not Found!");
- }
- println("\nAgain? (y/n)");
- again = sc.next().charAt(0);
- }while(again == 'y' );
- println("Return to Main Menu? (y/n)");
- mainmenu = sc.next().charAt(0);
- break;
- //End of case 2//
- case 3:
- print("\f");
- println("Rent A Car");
- do{
- again = 'n';
- print("Model Name: ");
- enteredModelName = sc2.nextLine();
- for(int x = 0; x < carModel.length; x++){
- if (carModel[x].equalsIgnoreCase(enteredModelName)){
- car_flag = true;
- rentedCars[renter] = carModel[x];
- break;
- }
- }
- if(!car_flag){
- println("Not Found!");
- }
- }while(!car_flag);
- do{
- print("Customer Name: ");
- customerName = sc2.nextLine();
- renterName[renter] = customerName;
- }while(verifyName(customerName));
- do{
- print("Number of Days Rented: ");
- daysRented = sc.nextInt();
- rentedDays[renter] = daysRented;
- }while(!verifyNumber(daysRented));
- print("Date: ");
- dateRented = sc2.next();
- rentedDate[renter] = dateRented;
- print("\f");
- println("------------------------------------------------------------------------------------------------------------------------------------------------------------------");
- println("Rayaan Rent A Car");
- println("------------------------------------------------------------------------------------------------------------------------------------------------------------------");
- println("Customer name: " + renterName[renter]);
- println("Date: " + rentedDate[renter]);
- println("Car Model: " + rentedCars[renter]);
- println("Rent Per Day: " + costPerDay[renter]);
- println("Number of Days Rented: " + rentedDays[renter]);
- println("Total Cost: " + costPerDay[renter]*rentedDays[renter]);
- println("------------------------------------------------------------------------------------------------------------------------------------------------------------------");
- renter++;
- break;
- case 4:
- for(int x = 0; x < rentedDays.length-1; x++){ //Sort the Cost Per Day Array in descending order using bubble sort
- for(int j = x + 1; j < rentedDays.length; j++){
- if(rentedDays[x] < rentedDays[j]){
- int newDays = rentedDays[x];
- int newCost = costPerDay[x];
- String newRentedCars = rentedCars[x];
- String newDate = rentedDate[x];
- String newName = renterName[x];
- costPerDay[x] = costPerDay[j];
- costPerDay[j] = newCost;
- rentedCars[x] = rentedCars[j];
- rentedCars[j] = newRentedCars;
- renterName[x] = renterName[j];
- renterName[j] = newName;
- rentedDate[x] = rentedDate[j];
- rentedDate[j] = newDate;
- }
- }
- }
- int x = 0;
- if(rentedDays[x] > 0)
- for(x = 0; x < rentedCars.length - 1; x++){
- println(rentedCars[x] + " - " + renterName[x] + " - " + rentedDays[x] + " - " + rentedDate[x]);
- }
- println("Return to Main Menu? (y/n)");
- mainmenu = sc.next().charAt(0);
- break;
- case 5:
- exit();//Cool Exit
- }
- flag = true; flag2 = false;
- break;
- }else if(username.equalsIgnoreCase(usernames[i]) && !password.equals(passwords[i])){
- println("Invalid Password!");
- flag2 = false;
- break;
- }else if(!username.equalsIgnoreCase(usernames[i]) && password.equals(passwords[i])){
- println("Invalid Username!");
- flag2 = false;
- break;
- }
- }
- if(flag2){
- println("Invalid Username and Password!");
- }
- if(!flag){
- println("\nDo you want to try again? (y/n)");
- char restart = sc.next().charAt(0);
- if (restart == 'y'){
- main();
- }else{
- exit();//Cool Exit
- }
- }
- }
- public static void println(String s){
- System.out.println(s);
- }
- public static void print(String s){
- System.out.print(s);
- }
- public static boolean verifyName(String s){
- boolean name_flag = false;
- s = s.toUpperCase();
- for(int i = 0; i < s.length(); i++){
- char x = s.charAt(i);
- if(x >= 'A' && x <= 'Z' || x == ' '){
- name_flag = true;
- }else{
- println("Name can only contain letters! Try Again");
- name_flag = false;
- }
- }
- if(name_flag)
- return false;
- else
- return true;
- }
- public static boolean verifyNumber(int n){
- if(n > 0){
- return true;
- }else{
- println("Has to be more than zero! Try Again");
- return false;
- }
- }
- public static void exit(){//Coolest Exit function
- try{//Cool Exit
- print("\nExiting");
- Thread.sleep(100);
- print(".");
- Thread.sleep(600);
- print(".");
- Thread.sleep(600);
- print(".");
- Thread.sleep(600);
- }catch (InterruptedException e){
- e.printStackTrace();
- }
- System.exit(0);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement