Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

Goal: You are to write a GUI program in Java that will allow a user to enter the cars for an automobile fleet and display

Goal: You are to write a GUI program in Java that will allow a user to enter the cars for an automobile fleet and display them. You might add new fields to the Car objectsmake, model, year. Or you might add more sort capabilities to Fleet, allowing the GUI to display cars sorted by mileage. Be creative; find something that stinks about the minimum program, and improve it.

You may, under no circumstances, use a code generator.

Like all WidgetView programs, we have no control over the layout of our widgets. The grading will not penalize a submission for an awkward layout. Objectives By the end of this project will student will be able to

Write a GUI program that maintains a set of Cars in an automobile fleet, identify various specific carsthose with the highest mileage or best miles per gallon,

Demonstrate the ability to assemble already-written classes into a larger, more complicated program.

Demonstrate the ability to segregate business logic from user interface code.

Sort collections of objects Capabilities

At a minimum, the program should Allow a user to add a car with a given identifier, initial mileage and fuel consumption to the fleet. Display the fleet both in the order that the cars were entered, and in the order of worst-MPG to best-MPG.

Display the cars with the best MPG and the highest mileage. Display the miles per gallon for the entire fleet. Sample Execution Then initial panel has fields for adding a new car to the fleetan identification field, current mileage and fuel consumed. It also has (empty) best MPG, highest mileage, and fleet MPG fields. There are also two text areas, one for the fleet with the cars in the order they were entered, the other with cars listed from worst to best MPG.

image text in transcribed

Figure 1 Initial Panel

Next, lets buy our first car. We can only afford a used one:

image text in transcribed

Figure 2 Entering Edsel

Lets click the make new car button.

image text in transcribed

Figure 3 Fleet with One Car

Were not making much money on our first purchase, and we can only afford an inexpensive one next, but at least its new:

image text in transcribed

Figure 4 Entering a Second Car

Clicking to add it, we get this:

image text in transcribed

Figure 5 Fleet with Two Cars

This is working out better. Well skip separate pictures of entering the car and clicking the buttonyou get the idea:

image text in transcribed

Figure 6 Fleet with Three Cars

So thats the idea. Go and do better.

PROVIDED CODE:

import java.util.ArrayList; import java.util.Arrays;

public class Fleet { private ArrayList myCars; public Fleet() { myCars = new ArrayList(); } public Car find(String identifier) { for (Car c: myCars) { if (c.getIdentifier().equals(identifier)) { return c; } } return null; } public boolean add(Car carToAdd) { return myCars.add(carToAdd); } public int size() { return myCars.size(); } public Car get(int position) { return myCars.get(position); } public int getTotalMiles() { int totalMiles = 0; for (Car c: myCars) { totalMiles += c.getMiles(); } return totalMiles; } public int getTotalFuel() { int totalFuel = 0; for (Car c: myCars) { totalFuel += c.getFuelUsed(); } return totalFuel; } public double getCarAverageMPG() { if (size() == 0) return -1; double totMPG = 0; for (Car c: myCars) { totMPG += c.getMPG(); } return totMPG / myCars.size(); } public double getFleetAverageMPG() { if (getTotalFuel() == 0) return -1; return (double)getTotalMiles() / getTotalFuel(); } @Override public String toString() { String s = "Fleet [ "; for (Car c: myCars) { s += c.toString() + " "; } s += "]"; return s; } }

public class Car { private String identifier; private int milage; private int fuelUsed; public Car() { identifier = ""; milage = 0; fuelUsed = 0; }

public Car(String identifier) { this.identifier = identifier; milage = 0; fuelUsed = 0; } public Car(String identifier, int milage, int fuelUsed) { this.identifier = identifier; this.milage = milage; this.fuelUsed = fuelUsed; } public void addFuel(int fuel) { fuelUsed += fuel; } public void addMiles(int miles) { milage += miles; } public double getMPG() { return (double)milage / fuelUsed; }

public String getIdentifier() { return identifier; }

public void setIdentifier(String identifier) { this.identifier = identifier; }

public int getMiles() { return milage; }

public void setMiles(int milage) { this.milage = milage; }

public int getFuelUsed() { return fuelUsed; }

public void setFuelUsed(int fuelUsed) { this.fuelUsed = fuelUsed; } public int compareMPG(Car otherCar) { double myMPG = getMPG(); double otherMPG = otherCar.getMPG(); if (myMPG == otherMPG) return 0; if (myMPG - otherMPG > 0) return 1; return -1; }

public boolean equals(Object obj){ if (this==obj) return true; if (obj==null) return false; if (this.getClass()!=obj.getClass()) return false; final Car other = (Car)obj; if ((this.getIdentifier().equals(other.getIdentifier()) && this.getMPG()==other.getMPG())) return true; return false; } public String toString() { return "Car [identifier=" + identifier + ", milage=" + milage + ", fuelUsed=" + fuelUsed + "]"; }

}

new car id new car mileage new car fuel Fleet as entered make a new car [best MPG none] [highest mileage none] [fleet avg MPG-1.0] Fleet [ Fleet by MPG new car id new car mileage new car fuel Fleet as entered make a new car [best MPG none] [highest mileage none] [fleet avg MPG-1.0] Fleet [ Fleet by MPG

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Refactoring Databases Evolutionary Database Design

Authors: Scott Ambler, Pramod Sadalage

1st Edition

0321774515, 978-0321774514

More Books

Students also viewed these Databases questions

Question

What is the basis for Security Concerns in Cloud Computing?

Answered: 1 week ago

Question

Describe the three main Cloud Computing Environments.

Answered: 1 week ago