Answer should look like this: You are given the following UML diagram of classes
ID: 3854559 • Letter: A
Question
Answer should look like this:
You are given the following UML diagram of classes and a flow chart. Implement the classes as they are shown in the UML diagram, and then implement the operations shown in the flow chart as described in section Problem Details below Start Process Car UML Read car data from Vehicle fuel double mpg double currentSpeed int Process car no baseMpg:double Calculate and scaleFactor double update mpg +update Mpg0:void Add car to array is a Calculate fuel remaining Car All cars processed? make string model string Stop +updateFuelRemaining (time Travelled:hours):void Write output file Main StopExplanation / Answer
public class Vehicle {
double fuel;
double mpg;
int currentSpeed;
double baseMpg;
double scaleFactor;
public Vehicle(int currentSpeed, double baseMpg, double scaleFactor) {
super();
this.currentSpeed = currentSpeed;
this.baseMpg = baseMpg;
this.scaleFactor = scaleFactor;
}
public void updateMpg(){
this.mpg = baseMpg -
scaleFactor*currentSpeed +
0.01*Math.exp(currentSpeed/20.0);
}
public double getFuel() {
return fuel;
}
public void setFuel(double fuel) {
this.fuel = fuel;
}
public double getMpg() {
return mpg;
}
public void setMpg(double mpg) {
this.mpg = mpg;
}
public int getCurrentSpeed() {
return currentSpeed;
}
public void setCurrentSpeed(int currentSpeed) {
this.currentSpeed = currentSpeed;
}
public double getBaseMpg() {
return baseMpg;
}
public void setBaseMpg(double baseMpg) {
this.baseMpg = baseMpg;
}
public double getScaleFactor() {
return scaleFactor;
}
public void setScaleFactor(double scaleFactor) {
this.scaleFactor = scaleFactor;
}
}
//---------------------------------------------------------------------------------------------------
public class Car extends Vehicle{
String make;
String model;
public Car(int currentSpeed, double baseMpg, double scaleFactor, String make, String model, double fuel) {
super(currentSpeed, baseMpg, scaleFactor);
this.make = make;
this.model = model;
this.fuel = fuel;
// TODO Auto-generated constructor stub
}
void updateFuelRemaining(double timeTravelled){
this.fuel = this.fuel - this.mpg*timeTravelled;
}
public String getMake() {
return make;
}
public void setMake(String make) {
this.make = make;
}
public String getModel() {
return model;
}
public void setModel(String model) {
this.model = model;
}
}
//---------------------------------------------------------------------------------------------
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Scanner;
public class Process {
double mpg,fuel;
public static void main(String[] args) {
// TODO Auto-generated method stub
ArrayList<Car> a = new ArrayList<Car>();
try {
File file = new File("e:\cars.csv");
Scanner scanner = new Scanner(file);
while (scanner.hasNext()) {
String s = scanner.next();
String[] s2 = s.split(",");
Car c = new Car(Integer.parseInt(s2[2]),
Double.parseDouble(s2[4]),
Double.parseDouble(s2[5]),
s2[0], s2[1], Double.parseDouble(s2[3]));
ProcessCar(c,Double.parseDouble(s2[6]));
a.add(c);
}
scanner.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
try{
PrintWriter writer = new PrintWriter("e:\processed_cars.txt", "UTF-8");
for(Car k:a){
String t = "Make: "+k.getMake()+
" Model: "+k.getModel()+
" Current Speed: "+Double.toString(k.getCurrentSpeed())+
" Mpg: "+ Double.toString(k.getMpg())+
" Fuel: "+ Double.toString(k.getFuel());
writer.println(t);
}
writer.close();
} catch (IOException e) {
// do something
}
}
static void ProcessCar(Car car, double timeTravelled){
car.updateMpg();
car.updateFuelRemaining(timeTravelled);
}
}