OPA May8 Java

Create a class Player with below attributes:
playerId - int
skill - String
level - String 
points - int

 

Write getters, setters and parameterized constructor in the above mentioned attribute sequence as required. 

 

Create class Solution with the main method. 

Implement two static methods - findPointsForGivenSkill and getPlayerBasedOnLevel in Solution class.

 

findPointsForGivenSkill method:
This method will take two input parameters - array of Player objects and string parameter skill. 
The method will return the sum of the points attribute from player objects for the skill passed as parameter. 
If no player with the given skill is present in the array of player objects, then the method should return 0. 

 

getPlayerBasedOnLevel method:
This method will take two String parameters level and skill, along with the array of Player objects.
The method will return the player object, if the input String parameters matches with the level and skill attribute of the player object and its point attribute is greater than or equal to 20. If any of the conditions are not met, then the method should return null.

 

Note : No two player object would have the same value for skill and level attribute.
       All player object would have the points greater than 0.
       All the searches should be case insensitive.


These above mentioned static methods should be called from the main method. 

For findPointsForGivenSkill method - The main method should print the points as it is if the returned price is greater than 0, or it
should print "The given Skill is not available".

For getPlayerBasedOnLevel method - The main method should print the playerId of the returned player object. If the returned value is null
then it should print "No player is available with specified level, skill and eligibility points".

 

Before calling these static methods in main, use Scanner object to read the values of four Player objects referring attributes in the above mentioned attribute sequence. 
Next, read the value for skill and level.
Please consider the skill value read above as skill parameter for both the static methods.


Consider below sample input and output:
Input:

101
cricket
Basic
20
102
cricket
Intermediate
25
111
football
Intermediate
50
113
baseball
Advanced
100
cricket
Intermediate

 

Output:
45
102

Solutions:

import java.io.*;
import java.util.*;
import java.text.*;
import java.math.*;
import java.util.regex.*;

public class Solution {
   public static void main(String[] args)
    {
        //code to read values 
        //code to call required method
        //code to display the result
        Scanner sc = new Scanner(System.in);
        Player players[] = new Player[4];
        for(int i = 0; i<4; i++) {
            int playerId = sc.nextInt();
            sc.nextLine();
            String skill = sc.nextLine();
            String level = sc.nextLine();
            int points = sc.nextInt();
            sc.nextLine();
            players[i] = new Player(playerId, skill, level, points);
        }
        String newskill = sc.nextLine();
        String newlevel = sc.nextLine();
        int totalPoints = findPointsForGivenSkill(players, newskill);
        Player chosenOne = getPlayerBasedOnLevel(players, newskill, newlevel);
        if(totalPoints>0)
            System.out.println(totalPoints);
        else
            System.out.println("The given Skill is not available");
        if(chosenOne == null)
            System.out.println("No player is available with specified level, skill and eligibility points");
        else
            System.out.println(chosenOne.getPlayerId());
    }

    public static int findPointsForGivenSkill(Player[] players, String skill)
      {
          //method logic
          int points = 0;
          for(int i = 0; i<4; i++) {
              if(players[i].getSkill().equalsIgnoreCase(skill))
                points = points + players[i].getPoints();
          }
          return points;
      }

    public static Player getPlayerBasedOnLevel(Player[] players, String skill, String level)
      {
          //method logic
          for(int i=0;i<4; i++) {
              if(players[i].getSkill().equalsIgnoreCase(skill) && players[i].getLevel().equalsIgnoreCase(level)){
                  if(players[i].getPoints() >= 20)
                    return players[i];
              }
          }
          return null;
      }
}

class Player
{
    //code to build Player class`
    private int playerId;
    private String skill;
    private String level;
    private int points;
    public int getPlayerId() {
        return playerId;
    }
    public void setPlayerId(int playerId) {
        this.playerId = playerId;
    }
    public String getSkill() {
        return skill;
    }
    public void setSkill(String skill) {
        this.skill = skill;
    }
    public String getLevel() {
        return level;
    }
    public void setLevel(String level) {
        this.level = level;
    }
    public int getPoints() {
        return points;
    }
    public void setPoints(int points) {
        this.points = points;
    }
    public Player(int playerId, String skill, String level, int points) {
        this.playerId = playerId;
        this.skill = skill;
        this.level = level;
        this.points = points;
    }
}

 

OPA JULY 17 Java

Travel Agencies Management


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.

1. FlightFacility should be available.

2. 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

solutions:

import java.util.Scanner;
public class Main{ 
    public static void main(String[] args){
        Scanner s = new Scanner(System.in);
        int regNo;
        String agencyName;
        String packageType;
        int price;
        boolean flightFacility;
        
        TravelAgencies[] ta = new TravelAgencies[4]; 

        for(int i=0;i<4;i++){
            regNo = s.nextInt();s.nextLine();
            agencyName = s.nextLine();
            packageType = s.nextLine();
            price = s.nextInt();
            flightFacility = s.nextBoolean();
            ta[i] = new TravelAgencies(regNo, agencyName, packageType, price, flightFacility); 
        }
        
        int getRegNo = s.nextInt();s.nextLine();
        String getPackageType = s.nextLine(); 
        s.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){
        TravelAgencies ta = new TravelAgencies(); 
        for(int i=0;i<agencies.length;i++){
            if(agencies[i].getFlightFacility()){ 
                if(agencies[i].getRegNo()==regNo && packageType.equalsIgnoreCase(agencies[i].getPackageType())){ //condition 2 checking
                    ta = agencies[i];
                    return ta; 
                }
            }
        }
        return null; 
    }
}

class TravelAgencies{
    int regNo;
    String agencyName;
    String packageType;
    int price;
    boolean flightFacility;
    TravelAgencies(){} 
    TravelAgencies(int regNo, String agencyName, String packageType, int price, boolean flightFacility){
        super();
        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;
    }
}

©2018 by The real one. Proudly created with Wix.com