Problem Statement
Create a class TravelAgencies with below attributes:
regNo – int
agencyName – String
pakageType – String
price – int
flightFacility – boolean
Write getters, setters for the above attributes . Create constructor which takes parameter in the above sequence.
Create class Solution with main method. Implement two static methods – findAgencyWithHighestPackagePrice and agencyDetailsforGivenIdAndType in Solution class.
findAgencyWithHighestPackagePrice method:
This method will take array of TravelAgencies objects as an input parameter and return the highest package price from the given array of objects.
agencyDetailsForGivenldAndType method:
This method will take three input parameters -array of TravelAgencies objects, int parameter regNo and String parameter packageType. The method will return the TravelAgencies object based on below conditions.
- FlightFacility should be available.
- The input parameters(regNo and packageType) should matched with the regNo and packageType of TravelAgencies object.
If any of the above conditions are not met, then the method should return null. Note : Same Travel agency can have more than one package type. Travel agency and package type combination is unique. All the searches should be case insensitive.
The above mentioned static methods should be called from the main method.
For findAgencyWithHighestPackagePrice method – The main method should print the highestPackagePrice as it is. For agencyDetailsForGivenldAndType method -The main method should print the AgencyName and price of the returned object.The AgencyName and price should be concatinated with : while printing.
Input
123
A2Z Agency
Platinum
50000
true
345
SSS Agency
Gold
30000
false
987
Cox and Kings
Diamond
40000
true
888
Global Tours
Silver
20000
false
987
Diamond
Output
50000
Cox and Kings:40000
code:
import java.util.Scanner;
public class Solution {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
TravelAgencies[] ta = new TravelAgencies[4];
for (int i = 0; i < ta.length; i++) {
int regNo = sc.nextInt();
sc.nextLine();
String agencyName = sc.nextLine();
String packageType = sc.nextLine();
int price = sc.nextInt();
boolean flightFacility = sc.nextBoolean();
ta[i] = new TravelAgencies(regNo, agencyName, packageType, price, flightFacility);
}
int getRegNo = sc.nextInt();
sc.nextLine();
String getPackageType = sc.nextLine();
sc.close();
int highestPackagePrice = findAgencyWithHighestPackagePrice(ta);
TravelAgencies travelAgencies = agencyDetailsForGivenIdAndType(ta, getRegNo, getPackageType);
System.out.println(highestPackagePrice);
if (travelAgencies == null)
System.out.println("A string value should be printed here!");
else
System.out.println(travelAgencies.getAgencyName() + ":" + travelAgencies.getPrice());
}
public static int findAgencyWithHighestPackagePrice(TravelAgencies[] agencies) {
int maxPrice = agencies[0].getPrice();
for (int i = 1; i < agencies.length; i++) {
if (agencies[i].getPrice() > maxPrice)
maxPrice = agencies[i].getPrice();
}
return maxPrice;
}
public static TravelAgencies agencyDetailsForGivenIdAndType(TravelAgencies[] agencies, int regNo, String packageType) {
for (int i = 0; i < agencies.length; i++) {
if (agencies[i].getFlightFacility()) {
if (agencies[i].getRegNo() == regNo && packageType.equalsIgnoreCase(agencies[i].getPackageType())) {
return agencies[i];
}
}
}
return null;
}
}
class TravelAgencies {
int regNo;
String agencyName;
String packageType;
int price;
boolean flightFacility;
TravelAgencies(int regNo, String agencyName, String packageType, int price, boolean flightFacility) {
this.regNo = regNo;
this.agencyName = agencyName;
this.packageType = packageType;
this.price = price;
this.flightFacility = flightFacility;
}
int getRegNo() {
return regNo;
}
String getAgencyName() {
return agencyName;
}
String getPackageType() {
return packageType;
}
int getPrice() {
return price;
}
boolean getFlightFacility() {
return flightFacility;
}
}
Comments
Post a Comment