Create a class Leave with the below attributes:
leaveId of type int
leaveType of type String having values as EL/CL/SL
noOfDays type int
dateOfApplication of type String in the format dd-mm-yy (12-07-21)
Note:
leaveType EL represents Earned Leave, CL is Casual Leave and SL is Sick Leave.
Assume that Leave details are only for the year 2021.
Create the init method which takes the parameters in the above sequence. The method should set the value of attributes to parameter values.
Create another class Employee with the below two attributes:
1. leaveList of type List having Leave objects
2. leaveBalance of type Dictionary having leaveType as Key and remaining leaves of that type as Value. Eg. {EL:20,CL:2,SL:31}
Create the init method which takes all parameters in the above sequence. The method should set the value of attributes to parameter values inside the method.
Create below two methods inside the Employee class:
1. getUpdatedLeaveBalance - This method checks for the number of days of leaves applied for a particular leavetype and then checks whether the employee has the required leave balance as per leaveBalance dictionary. If sufficient leave balance for the particular leave type is available, the method updates the leave balance of the employee. If the balance is not sufficient for a leave type on a particular leave applied date(dateOfApplication), method prints a message in following format "Insufficient balance for <leaveType> applied on <dateOfApplication>". Finally, method returns the updated leave balance in the form of a dictionary. The updated dictionary will have the elements sorted in decreasing order of value(remaining leaves).
Eg.
1. If leaveBalance is {EL:20,CL:2,SL:31} and Sick leave is applied for 2 days and Casual Leave is applied for 3 days(2 days on 01-02-21 and 1 day on 05-03-21), the updated leaveBalance will be {SL:29,EL:20,CL:0}
and message will be printed within the method as described above. "Insufficient balance for CL applied on 05-03-21". (without quotes)
Note:
All string comparisons should be case insensitive.
2. getLeaveCount
This method takes 2 integer parameters representing startMonth and endMonth. It finds out the number of leaves applied by the employee between the 1st day of startMonth and last day of endMonth from the leaveList and return the count.
If there are no leaves taken between the given startMonth and endMonth then method will return None.
Note:
All string comparisons should be case insensitive.
Instructions to write main function
To write main section of the code
a. You would require to write the main section completely, hence please follow the below instructions for the same.
b. You would require to write the main program which is inline to the "sample input description section" mentioned below and to read the data in the same sequence.
c. Create the respective objects(Leave and Employee) with the given sequence of arguments to fulfill the init method requirement defined in the respective classes referring to the below instructions.
1. Create a list of Leave objects. To create the list ,
a. Read a number representing how many Leave objects to be created.
b. Read data related to attributes of Leave (i.e. leaveId, leaveType, noOfDays, dateOfApplication), create the Leave object and add the object to the list of Leave objects which will be provided to the Employee object. This point repeats for the number of Leave objects to be created (considered in the first line of input, #1.a).
2. Create a leaveBalance dictionary with leave type as key and remaining leaves as Value. To create the dictionary ,
a. Read a number representing the leave balance of a particular leave type. This point repeats 2 more times for the leave types. (3 leave types are EL,CL,SL).
Ans::
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Bottle[] b = new Bottle[4];
for(int i=0;i<4;i++){
int id = sc.nextInt(); sc.nextLine();
String brand = sc.nextLine();
String type = sc.nextLine();
int capacity = sc.nextInt(); sc.nextLine();
String material = sc.nextLine();
double price = sc.nextDouble();
b[i] = new Bottle(id, brand, type, capacity, material, price);
}
sc.nextLine();
String material = sc.nextLine();
String brand = sc.nextLine();
int result1 = findLeastCapacity(b, material);
Bottle[] result2 = findBottlesWithBrand(b, brand);
if(result1==0)
System.out.println("There is no matching bottles with given material");
else{
System.out.println(result1);
}
if(result2==null){
System.out.println("Bottles are not available for the given brand");
}
else{
for(int i=0;i<result2.length;i++){
System.out.println(result2[i].getPrice());
}
}
}
public static int findLeastCapacity(Bottle[] b, String material){
int min = 99999;
for(Bottle k : b){
if(k.getMaterial().equalsIgnoreCase(material)){
if(k.getCapacity()<min)
min = k.getCapacity();
}
}
if(min==99999)
return 0;
else
return min;
}
public static Bottle[] findBottlesWithBrand(Bottle[] b, String brand){
Bottle[] temp = new Bottle[4];
int m=0;
for(Bottle k : b){
if(k.getBrand().equalsIgnoreCase(brand)){
temp[m] = k;
m++;
}
}
if(m==0)
return null;
for(int i=0;i<m-1;i++){
for(int j=0;j<m-i-1;j++){
if(temp[j].getPrice()<temp[j+1].getPrice()){
Bottle x = temp[j];
temp[j] = temp[j+1];
temp[j+1] = x;
}
}
}
Bottle result[] = new Bottle[m];
for(int i=0;i<m;i++){
result[i] = temp[i];
}
return result;
}
}
class Bottle{
private int id,capacity;
private String brand,type,material;
private double price;
Bottle(int id, String brand, String type, int capacity, String material, double price){
this.id = id;
this.brand = brand;
this.type = type;
this.capacity = capacity;
this.material = material;
this.price = price;
}
int getId(){
return id;
}
int getCapacity(){
return capacity;
}
String getBrand(){
return brand;
}
String getType(){
return type;
}
String getMaterial(){
return material;
}
double getPrice(){
return price;
}
}
class Leave:
def init_(self, lid, typ, nodays, dapp):
self.lid lid
self.typ - typ
self.nodays nodays
self.dapp - dapp
class Employee:
init_(self, 1 list, 1 bal):
self.1 list 1 list
self.1_bal - 1 bal
def getUptBal(self):
count - 0
for 1 in self.1 list:
for k,v in self.1 bal.items():
if i.typ.lower() -k.lower():
if self.1 ballk] - 1.nodays:
self.1 ball[k] - self.1 bal[k].i.nodays
else:
print("Insufficient balance for () applied on ().format(1.typ,i.dapp))
return self.1 bal
def Icount (self, sm, em):
for i in self.1 list:
d- 1.dapp.split("-")
if sa <- int (d[1]) <m:
if 1:
return 1
- Int(input())
1_list = []
1 bal ("IL":0,"CL":0,"SL":0)
for i in range():
lid int(Input ())
typ Input()
nodays Int(input())
dapp Input()
1 11st.append(Leave(lid, typ, nodays, dapp))
1_bal["CL"] Int (input ())
1 bal["EL"] Int (Amput())
1 ball st"] lute (())
Int(input())
Int(input())
Employee (1 list, 1_bal)
ans e.getUpt Bal()
for i,j in ans.items():
ans1 e.Icount(m, n)
if ans1:
print (ans1)
print("No leave applied between given months")
QUES::
1. Xplore PRA 6thSep2021 Java SBQ
https://www.videosprofitnetwork.com/watch.xml?key=5769a31c95817082a68f68d116db6325Create a class Bottle with below attributes:
bottleld - int
bottleBrand - String
bottle Type - String
capacity - int
material - String
price-double
The above attributes should be private, write
getters, setters and parameterized constructor as
required.
Create class Solution with main method..
Implement two static methods findLeastCapacity
and findBottlesWithBrand in Solution class.
find LeastCapacity method:
This method will take two input parameters-array
of Bottle objects and a String parameter.
The method will return the least capacity from array
parameter is present in the array of Bottle
objects, then the method should return 0,
of Bottle objects for the given material(String
parameter passed). If no Bottle with the given String
findBottlesWithBrand method:
This method will take two input parameters-array
of Bottle objects and a String parameter.
The method will return the array of bottle objects in
the descending order of their price for the given
brand name(String narameter passed).
ANS:: Code in java::import java.util.*;
class Solution{public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Bottle[] b = new Bottle[4];
for(int i=0;i<4;i++){
int id = sc.nextInt(); sc.nextLine();
String brand = sc.nextLine();
String type = sc.nextLine();
int capacity = sc.nextInt(); sc.nextLine();
String material = sc.nextLine();
double price = sc.nextDouble();
b[i] = new Bottle(id, brand, type, capacity, material, price);
}
sc.nextLine();
String material = sc.nextLine();
String brand = sc.nextLine();
int result1 = findLeastCapacity(b, material);
Bottle[] result2 = findBottlesWithBrand(b, brand);
if(result1==0)
System.out.println("There is no matching bottles with given material");
else{
System.out.println(result1);
}
if(result2==null){
System.out.println("Bottles are not available for the given brand");
}
else{
for(int i=0;i<result2.length;i++){
System.out.println(result2[i].getPrice());
}
}
}
public static int findLeastCapacity(Bottle[] b, String material){
int min = 99999;
for(Bottle k : b){
if(k.getMaterial().equalsIgnoreCase(material)){
if(k.getCapacity()<min)
min = k.getCapacity();
}
}
if(min==99999)
return 0;
else
return min;
}
public static Bottle[] findBottlesWithBrand(Bottle[] b, String brand){
Bottle[] temp = new Bottle[4];
int m=0;
for(Bottle k : b){
if(k.getBrand().equalsIgnoreCase(brand)){
temp[m] = k;
m++;
}
}
if(m==0)
return null;
for(int i=0;i<m-1;i++){
for(int j=0;j<m-i-1;j++){
if(temp[j].getPrice()<temp[j+1].getPrice()){
Bottle x = temp[j];
temp[j] = temp[j+1];
temp[j+1] = x;
}
}
}
Bottle result[] = new Bottle[m];
for(int i=0;i<m;i++){
result[i] = temp[i];
}
return result;
}
}
class Bottle{
private int id,capacity;
private String brand,type,material;
private double price;
Bottle(int id, String brand, String type, int capacity, String material, double price){
this.id = id;
this.brand = brand;
this.type = type;
this.capacity = capacity;
this.material = material;
this.price = price;
}
int getId(){
return id;
}
int getCapacity(){
return capacity;
}
String getBrand(){
return brand;
}
String getType(){
return type;
}
String getMaterial(){
return material;
}
double getPrice(){
return price;
}
}
Comments
Post a Comment