
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 JUNE 05 JAVA
Create a class Movie with the below attributes:
movieId - int
director - String
rating - int
budget - 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 - findAvgBudgetByDirector and getMovieByRatingBudget in Solution class.
findAvgBudgetByDirector method:
This method will take two input parameters - array of Movie objects and string parameter director.
The method will return the average of the budget attribute from Movie objects directed by the director passed as parameter.
If no movie with the given director is present in the array of movie objects, then the method should return 0.
getMovieByRatingBudget method:
This method will take two int parameters rating and budget, along with the array of movie objects.
The method will return the movie object, if the input parameters rating and budget, matches with the rating and budget attribute of the movie object respectively.
Also check if rating is a factor of budget (eg: 3 is a factor of 12 because 3 divides 12 without leaving a remainder).
If any of the conditions are not met, then the method should return null.
Note : No two movie object would have the same value for rating and budget attributes.
All the searches should be case insensitive.
The budget mentioned are in crores and in INR.
These above mentioned static methods should be called from the main method.
For findAvgBudgetByDirector method - The main method should print the average budget as it is if the returned value is greater than 0, or it
should print "Sorry - The given director has not yet directed any movie".
For getMovieByRatingBudget method - The main method should print the movieId of the returned movie object. If the returned value is null
then it should print "Sorry - No movie is available with the specified rating and budget requirement".
Before calling these static methods in main, use Scanner object to read the values of four
Movie objects referring attributes in the above mentioned attribute sequence.
Next, read the value for director, rating and budget.
Consider below sample input and output:
Input:
1101
ratham
4
100
1201
shankar
5
500
1301
shankar
3
50
1401
ratham
5
300
ratham
5
300
​
Output:
200
1401
​
​
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)
{
Scanner sc = new Scanner(System.in);
Movie[] mv = new Movie[4];
for(int i=0;i<4;i++)
{
int a = sc.nextInt();sc.nextLine();
String b = sc.nextLine();
int c = sc.nextInt();
int d = sc.nextInt();
mv[i] = new Movie(a,b,c,d);
}
sc.nextLine();
String nm = sc.nextLine();
int um = sc.nextInt();
int dm = sc.nextInt();
int res = findAvgBudgetByDirector(mv, nm);
if (res>0)
System.out.println(res);
else
System.out.println("Sorry - The given director has not yet directed any movie");
Movie temp = getMovieByRatingBudget(mv, um, dm);
if(temp == null)
System.out.println("Sorry - No movie is available with the specified rating and budget requirement");
else
System.out.println(temp.id);
}
public static int findAvgBudgetByDirector (Movie[] mv, String nm)
{
//method logic
int avg,s=0,j=0;
for(int i=0;i<4;i++)
{
if(nm.equalsIgnoreCase(mv[i].dt))
{
s = s+mv[i].bt;
j++;
}
}
if(j>0)
{
avg = s/j;
return avg;
}
else
return 0;
}
public static Movie getMovieByRatingBudget(Movie[] mv, int rating, int budget)
{
//method logic
Movie temp = new Movie();
for(int i=0;i<4;i++)
{
if((rating == mv[i].rt) && (budget == mv[i].bt) && (mv[i].bt % mv[i].rt == 0))
{
temp.id = mv[i].id;
return temp;
}
}
return null;
}
}
class Movie
{
//code to build Movie class
int id,rt,bt;
String dt;
Movie()
{
}
Movie(int id, String dt, int rt, int bt)
{
this.id = id;
this.dt = dt;
this.rt = rt;
this.bt = bt;
}
}