Skip to main content

NavalVessel

 Problem Statement

Create a class NavalVessel with the below attributes:
vesselld – int
vesselName – String
noOfVoyagesPlanned – int
noOfVoyagesCompleted – int
purpose – String
classification – String

Write getters, setters for the above attributes. Create constructor which takes parameter in the above sequence except classification.

Create class Solution with main method. Implement two static methods – findAvgVoyagesByPct and findVesselByGrade in Solution class.

findAvgVoyagesByPct method:

This method will take two input parameters -array of NavalVessel objects and int parameter percentage. The method will return the average of the noOfVoyagesCompleted attribute from NavalVessel objects which meets the percentage requirement as mentioned below.The percentage for each navalVessel is calculated as percentage .(noOfVoyagesCompleted * 100)/noOfVoyagesPlanned. If the above calculated percentage is greater than or equal to the percentage passed as the parameter, then those objects should participate in the average calculation. If there are no objects with the mentioned criteria, then the method should return 0.

findVesselByGrade method:

This method will take a String parameter purpose, along with the array of NavalVessel objects. The method will return the NavalVessel object, if the input String parameter matches with the purpose attribute of the NavalVessel object. Before returning the object, the classification should be derived as mentioned below. This classification value should be assigned to the object before returning. If any of the above conditions are not met, then the method should return null. The classification attribute should be calculated based on the percentage calculation mentioned above. If the percentage = 100 then classification should be ‘Star’, if percentage is between 99 and 80 then classification should be ‘Leader, if percentage is between 79 and 55 then classification should be ‘Inspirer otherwise the classification should be ‘Striver’ If the returned value is null then it should print “No Naval Vessel is available with the specified purpose”.

Before calling these static methods in main, use Scanner object to read the values of four NavalVessel objects referring attributes in the above mentioned attribute sequence (except the classification attribute). Next, read the value for percentage and purpose.
Input

111
Rojer
100
100
Passenger
222
Kalam
200
100
Goods
333
Yashwin
400
300
Army
444
Thanishwini
500
500
Welfare
75
Army

Output

300
Yashwin%Inspirer



code:

 

import java.util.Scanner;

public class Solution {

 public static void main(String[] args) {
  Scanner sc = new Scanner(System.in);
  NavalVessel[] navalVessels = new NavalVessel[4];
  for (int i = 0; i < navalVessels.length; i++) {
   int vesselId = sc.nextInt();
   sc.nextLine();
   String vesselName = sc.nextLine();
   int noOfVoyagesPlanned = sc.nextInt();
   int noOfVoyagesCompleted = sc.nextInt();
   sc.nextLine();
   String purpose = sc.nextLine();
   navalVessels[i] = new NavalVessel(vesselId, vesselName, noOfVoyagesPlanned, noOfVoyagesCompleted, purpose);
  }
  int searchPercentageValue = sc.nextInt();
  sc.nextLine();
  String searchPurposeValue = sc.nextLine();
  int avgOfVoyagesCompleted = findAvgVoyagesByPct(navalVessels, searchPercentageValue);

  if (avgOfVoyagesCompleted > 0)
   System.out.println(avgOfVoyagesCompleted);
  else
   System.out.println("There are no voyages completed with this percentage");

  NavalVessel navalvessel = findVesselByGrade(navalVessels, searchPurposeValue);
  if (navalvessel == null)
   System.out.println("No Naval Vessel is available with the specified purpose");
  else
   System.out.println(navalvessel.getVesselName() + "%" + navalvessel.getClassification());
 }

 public static int findAvgVoyagesByPct(NavalVessel[] navalVessels, int searchPercentageValue) {
  int avg = 0, count = 0;
  for (int i = 0; i < navalVessels.length; i++) {
   int percent = (navalVessels[i].getNoOfVoyagesCompleted() * 100) / navalVessels[i].getNoOfVoyagesPlanned();
   if (percent >= searchPercentageValue) {
    avg += navalVessels[i].getNoOfVoyagesCompleted();
    count++;
   }
  }
  if (avg == 0)
   return 0;
  else
   return avg / count;
 }

 public static NavalVessel findVesselByGrade(NavalVessel[] navalVessels, String searchPurposeValue) {
  for (int i = 0; i < navalVessels.length; i++) {
   if (searchPurposeValue.equalsIgnoreCase(navalVessels[i].getPurpose())) {
    int percentage = (navalVessels[i].getNoOfVoyagesCompleted() * 100) / navalVessels[i].getNoOfVoyagesPlanned();
    if (percentage == 100) navalVessels[i].setClassification("Star");
    else if (percentage >= 80 && percentage <= 99) navalVessels[i].setClassification("Leader");
    else if (percentage >= 55 && percentage <= 79) navalVessels[i].setClassification("Inspirer");
    else
     navalVessels[i].setClassification("Striver");
    return navalVessels[i];
   }
  }
  return null;
 }
}

class NavalVessel {
 private int vesselId, noOfVoyagesPlanned, noOfVoyagesCompleted;
 private String vesselName, purpose, classification;
 NavalVessel(int vesselId, String vesselName, int noOfVoyagesPlanned, int noOfVoyagesCompleted, String purpose) {
  this.vesselId = vesselId;
  this.vesselName = vesselName;
  this.noOfVoyagesPlanned = noOfVoyagesPlanned;
  this.noOfVoyagesCompleted = noOfVoyagesCompleted;
  this.purpose = purpose;
 }
 int getVesselId() {
  return vesselId;
 }
 String getVesselName() {
  return vesselName;
 }
 int getNoOfVoyagesPlanned() {
  return noOfVoyagesPlanned;
 }
 int getNoOfVoyagesCompleted() {
  return noOfVoyagesCompleted;
 }
 String getPurpose() {
  return purpose;
 }
 void setClassification(String classification) {
  this.classification = classification;
 }
 String getClassification() {
  return classification;
 }
}



Comments

Popular posts from this blog

How to Introduce Yourself to project team and client when you join a new project as fresher in service based company ?

Question:     How to Introduce Yourself to project team /client  when you join a new project as fresher ? Answer:  Hii Everyone,    Today I will be talking about how we can introduce ourselves to a team  when we join a new project in any servicebased company as a fresher.     After I completed my Engineering ,I got placed into TCS.I got allocated  into a project.I introduced myself to a team.So I will be telling about how   exactly I introduced myself to the team.The impressive introduction is  necessary if you want team members to treat you better in this work from  home period.If you fail to impress team members ,If your introduction is not  impressive ,then probably your team members will ignore you.    Before I tell you about how exactly I introduced myself,I would like  to talk about the points that you should remember before giving your  introduction. .start your introduction with Hii Ev...

Automating Infrastructure on Google Cloud with Terraform: Challenge Lab

As more and more organizations move to the cloud, the need for powerful infrastructure automation tools has never been greater. That's where Terraform comes in, a cutting-edge tool that allows you to automate the deployment, management, and scaling of your infrastructure with ease. With Terraform, you can define your entire infrastructure as code, making it easy to maintain, version, and reproduce. Whether you're deploying infrastructure to AWS, Google Cloud, or another cloud provider, Terraform provides a powerful and flexible platform for automating your workflows. In this blog post, we'll take a look at how to automate infrastructure on google cloud with terraform. Task A. Create the configuration files  Task B. Import infrastructure  Task C.Configure a remote backend  Task D. Modify and update infrastructure  Task E.Destroy resources  Task F. Use a module from the Registry  Task G. Configure a firewall ......................................................

TCS IRA 13 DECEMBER JAVA CODING QUESTION SOLUTION.

Create a class newspaper with below attributes. regNo-int name-String publicationYear-int price-int Write parametrised constructor as required. Create class Solution with main method. Implement 2 static methods findTotalPriceByPublicationYear and  searchNewspaperByName in solution class. findTotalPriceByPublicationYear method:    This method will take array of the Newspaper objects and int parameter type.This method will return the total price of newspapers from array of  Newspaper objects,If the publication year attribute matches with the int  parameter passed .If no Newspaper with the given publication year is present  in the array ,then the method should return 0. The main method should print total price if the returned value is greater  than 0.Else it should print "No Newspaper found with the mentioned attribute". searchNewspaperByName method :    This method will take the array of the Newspaper objects and the String  parameter type...