Create a class AutonomousCar with the below attributes:
carld – int
brand – String noOfTestsConducted – int
noOfTestsPassed- int
environment – String
grade – String
Write getters, setters for the above attributes . Create constructor which takes parameter in the above sequence except grade.
Create class Solution with main method. Implement two static methods – findTestPassedByEnv and updateCarGrade in Solution class.
findTestPassedByEnv method:
This method will take two input parameters -array of AutonomousCar objects and string parameter environment. The method will return the sum of the noOfTestsPassed attribute from autonomousCar objects for the environment passed as parameter. If no autonomousCar with the given environment is present in the array of AutonomousCar objects, then the method should return 0.
updateCarGrade method:
This method will take a String parameter brand, along with the array of AutonomousCar objects. The method will return the autonomousCar object, if the input String parameter matches with the brand attribute of the autonomousCar object. Before returning the object, the grade should be derived based on the rating calculation mentioned below. This grade value should be assigned to the object. If any of the above conditions are not met, then the method should return null. The grade attribute should be calculated as follows: rating .(noOfTestsPassed * 100)/noOfTestsConducted If the rating > = 80 then grade should be ‘A1’, otherwise the grade should be ‘B2’.
The above mentioned static methods should be called from the main method. For findTestPassedByEnv method – The main method should print the totalTestPassed as it is, if the returned value is greater than 0, or it should print “There are no tests passed in this particular environment”.
For updateCarGrade method – The main method should print the brand and grade of the returned autonomousCar object. The brand and grade should be concatinated with :: while printing. eg:- Tesla::A1, where Tesla is the brand and Al is the grade.
If the returned value is null then it should print “No Car is available with the specified brand”. Before calling these static methods in main, use Scanner object to read the values of four autonomousCar objects referring attributes in the above mentioned attribute sequence (except grade attribute). Next, read the value for environment and brand.
Input
100
Tesla
1000
500
Hills
200
Ford
2000
1500
Desert
300
Royce
3000
1700
Hills
400
Mercedez
1000
400
Desert
Desert
Mercedez
Output
1900
Mercedez::B2
code:
import java.util.Scanner;
public class Solution {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
AutonomousCar[] cars = new AutonomousCar[4];
for (int i = 0; i < cars.length; i++) {
int carId = sc.nextInt();
sc.nextLine();
String brand = sc.nextLine();
int noOfTestsConducted = sc.nextInt();
int noOfTestsPassed = sc.nextInt();
sc.nextLine();
String environment = sc.nextLine();
cars[i] = new AutonomousCar(carId, brand, noOfTestsConducted, noOfTestsPassed, environment);
}
String env = sc.nextLine();
String brand = sc.nextLine();
int testsPassed = findTestPassedByEnv(cars, env);
if (testsPassed == 0)
System.out.println("There are no tests passed in this particular environment");
else
System.out.println(testsPassed);
AutonomousCar updatedCar = updateCarGrade(cars, brand);
if (updatedCar == null)
System.out.println("No Car is available with the specified brand");
else
System.out.println(updatedCar.getBrand() + "::" + updatedCar.getGrade());
}
public static int findTestPassedByEnv(AutonomousCar[] cars, String env) {
int sum = 0;
for (int i = 0; i < cars.length; i++) {
if (env.equalsIgnoreCase(cars[i].getEnvironment())) {
sum = sum + cars[i].getNoOfTestsPassed();
}
}
return sum;
}
public static AutonomousCar updateCarGrade(AutonomousCar[] cars, String brand) {
int rating;
for (int i = 0; i < cars.length; i++) {
if (brand.equalsIgnoreCase(cars[i].getBrand())) {
rating = (cars[i].getNoOfTestsPassed() * 100) / cars[i].getNoOfTestsConducted();
if (rating >= 80) cars[i].setGrade("A1");
else cars[i].setGrade("B2");
return cars[i];
}
}
return null;
}
}
class AutonomousCar {
private int carId, noOfTestsConducted, noOfTestsPassed;
private String brand, environment, grade;
AutonomousCar(int carId, String brand, int noOfTestsConducted, int noOfTestsPassed, String environment) {
this.carId = carId;
this.brand = brand;
this.noOfTestsConducted = noOfTestsConducted;
this.noOfTestsPassed = noOfTestsPassed;
this.environment = environment;
}
int getCarId() {
return carId;
}
String getBrand() {
return brand;
}
int getNoOfTestsConducted() {
return noOfTestsConducted;
}
int getNoOfTestsPassed() {
return noOfTestsPassed;
}
String getEnvironment() {
return environment;
}
void setGrade(String grade) {
this.grade = grade;
}
String getGrade() {
return grade;
}
}
|
Comments
Post a Comment