Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

JAVA PROGRAMMING You have seen car Dealership in street. What if you are ask to

ID: 3859010 • Letter: J

Question

JAVA PROGRAMMING

You have seen car Dealership in street.


What if you are ask to write java Program to design Dealership class.

Think what dealership has, Cars, SalePersons, Manager and more objects.


We are only concerned for Car, SalesPerson, Manager and Dealership.


Write a class for Car and have the following private fields or members:
make , price, year and vinNumber


Write a class for SalesPerson and have the following private fields or members
First name, last name, Bonus, address, date of hiring.


Write a class for Manager and have the following private fields or members:
First name, last name, address, date of hiring.


Write a class for Dealership and have the following private fields or members:
Array of SalesPerson, Array of Car, and one Manager.


Provide constructor and methods for all of above classes. You should have
setters and getters, and method toString() that returns states of objects that
is what it knows about object (example: First name, last…).


Dealership class should have methods addSalesPerson, removeSalesPerson,
carSold , removeCar, addCar, and toString().


toString() should print state of Dealership: manager , SalesPersons, Cars,
and number of car sold.


The Following shows one possible layout of Dearship class:

public class Dealership {
private ArrayList <SalesPerson> sp = new ArrayList <SalesPerson> ();
private ArrayList <Car> cars= new ArrayList <Car> ();
private Manager mg;

public Dealership()
{
}
public void addCar(Car another)
{
}
public void addSalesPerson(SalesPerson s)
{
}
public void removeSalesPerson(SalesPerson s)
{
}
public void carSold (SalesPerson s)
{
}
public void removeCar( Car aCar)
{
}
public SalesPerson getPersonOfTheMonth()
{
}
public String toString()
{
}
Note: thats why we use ArrayList class because we have no clue of how many cars,or SalesPerson Dealership has. ArrayList has very useful methods that make life easy.
Dealership must only created when associate a Manager with it no other way


Method getPersonOfTheMonth()
Should return SalesPerson that makes highest bonus.

Feel free to add any other
Methods that you think is good to have for Dealership


Your Driver class that you must use:
public class TestDealership
{
public static void main(String [] args)
{
// Create one manager
// Create at least 5 SalesPerson
// Create at Least 10 Cars
// Create one Dealership and associates manager with it.
// Use Dealership to add SalesPerson and Cars
// now test your program for all the method that was given in Dealership
// Example carSold, reamoveCar, reamoveSalesPerson….
// Note if the Car was sold you should not sell again
System.exit(0);
}
}

Explanation / Answer

Given below is the needed classes for the question. I have just filled up some dummy data for the people's names, addreses, car details etc.. Please modify the test program to have some relevant and meaningful data there.

If the answer helped, please do rate it . Thank you.

Car.java

public class Car {

   private String make;

   private double price;

   private int year;

   private String vinNumber;

  

   public Car(String make, double price, int year, String vinno)

   {

       this.make = make;

       this.price = price;

       this.year = year;

       this.vinNumber = vinno;

   }

  

   public String getMake() {

       return make;

   }

   public void setMake(String make) {

       this.make = make;

   }

   public double getPrice() {

       return price;

   }

   public void setPrice(double price) {

       this.price = price;

   }

   public int getYear() {

       return year;

   }

   public void setYear(int year) {

       this.year = year;

   }

   public String getVinNumber() {

       return vinNumber;

   }

   public void setVinNumber(String vinNumber) {

       this.vinNumber = vinNumber;

   }

   @Override

   public String toString() {

       return "Car [make=" + make + ", price=" + price + ", year=" + year + ", vinNumber=" + vinNumber + "]";

   }

  

}

SalesPerson.java

import java.util.Date;

public class SalesPerson {

   private String firstName;

   private String lastName;

   private double bonus;

   private String address;

   private Date hiringDate;

  

   public SalesPerson(String fname, String lname, String addr, Date doh)

   {

       this.firstName = fname;

       this.lastName = lname;

       this.address = addr;

       this.hiringDate = doh;

       this.bonus = 0;

   }

   public double getBonus() {

       return bonus;

   }

   public void setBonus(double bonus) {

       this.bonus = bonus;

   }

   public String getAddress() {

       return address;

   }

   public void setAddress(String address) {

       this.address = address;

   }

   public Date getHiringDate() {

       return hiringDate;

   }

   public void setHiringDate(Date hiringDate) {

       this.hiringDate = hiringDate;

   }

   public String getFirstName() {

       return firstName;

   }

   public String getLastName() {

       return lastName;

   }

   @Override

   public String toString() {

       return "SalesPerson [firstName=" + firstName + ", lastName=" + lastName + ", bonus=" + bonus + ", address="

               + address + ", hiringDate=" + hiringDate + "]";

   }

  

  

}

Manager.java

import java.util.Date;

public class Manager {

   private String firstName;

   private String lastName;

   private String address;

   private Date hiringDate;

  

  

   public Manager(String fname, String lname, String addr, Date doh)

   {

       this.firstName = fname;

       this.lastName = lname;

       this.address = addr;

       this.hiringDate = doh;

   }

   public String getAddress() {

       return address;

   }

   public void setAddress(String address) {

       this.address = address;

   }

   public Date getHiringDate() {

       return hiringDate;

   }

   public void setHiringDate(Date hiringDate) {

       this.hiringDate = hiringDate;

   }

   public String getFirstName() {

       return firstName;

   }

   public String getLastName() {

       return lastName;

   }

   @Override

   public String toString() {

       return "Manager [firstName=" + firstName + ", lastName=" + lastName + ", address=" + address + ", hiringDate="

               + hiringDate + "]";

   }

  

}

DealerShip.java

import java.util.ArrayList;

public class DealerShip {

   private ArrayList <SalesPerson> salesmen ;

   private ArrayList <Car> cars;

   private Manager manager;

  

   public DealerShip(Manager mgr)

   {

       this.manager = mgr;

       salesmen = new ArrayList<SalesPerson>();

       cars= new ArrayList<Car>();

   }

  

   public void addCar(Car another)

   {

       cars.add(another);

   }

   public void addSalesPerson(SalesPerson s)

   {

       salesmen.add(s);

   }

   public void removeSalesPerson(SalesPerson s)

   {

       salesmen.remove(s);

   }

   public void carSold (SalesPerson s, Car c)

   {

       if(cars.contains(c))

       {

           double amt = c.getPrice() * 0.05;

           s.setBonus(s.getBonus() + amt );

           removeCar(c); //remove the car once sold

       }

   }

   public void removeCar( Car aCar)

   {

       cars.remove(aCar);

   }

   public SalesPerson getPersonOfTheMonth()

   {

       double highest = 0;

       SalesPerson spOfMonth = null;

       for(SalesPerson p : salesmen)

           if(p.getBonus() > highest)

           {

               highest = p.getBonus();

               spOfMonth = p;

           }

      

       return spOfMonth;

   }

   @Override

   public String toString() {

       String str = "DealerShip ";

       str += " List of cars ";

       for(Car c : cars)

           str += " " + c.toString() +" ";

      

       str += " List of Sales person ";

       for(SalesPerson p : salesmen)

           str += " " + p.toString() +" ";

      

       SalesPerson spOfMonth = getPersonOfTheMonth();

       if(spOfMonth != null)

           str += " " + spOfMonth.toString() + " ";

       return str;

   }

  

  

}

TestDealership.java

import java.util.Calendar;

public class TestDealership

{

   public static void main(String [] args)

   {

       Calendar cal = Calendar.getInstance();

       // Create one manager

       cal.set(2017, 0, 15);//15 jan 2017

       Manager mgr = new Manager("John", "Smith", "123, ABC Street, City1", cal.getTime());

      

       // Create at least 5 SalesPerson

       cal.set(2017, 0, 25);

       SalesPerson sp1 = new SalesPerson("Bob", "J", "345, Street2, City2", cal.getTime());

       cal.set(2017, 0, 29);

       SalesPerson sp2 = new SalesPerson("Peter", "P", "345, Street3, City3", cal.getTime());

      

       cal.set(2017, 1, 10);

       SalesPerson sp3 = new SalesPerson("Henry", "J", "345, Street2, City2", cal.getTime());

      

       cal.set(2017, 1, 10);

       SalesPerson sp4 = new SalesPerson("Michael", "J", "345, Street2, City2", cal.getTime());

      

       cal.set(2017, 1, 12);

       SalesPerson sp5 = new SalesPerson("Tony", "J", "345, Street2, City2", cal.getTime());

      

      

      

       // Create at Least 10 Cars

       Car c1 = new Car("Ford",5000, 2017, "c111");

       Car c2 = new Car("Toyota",6000, 2016, "c222");

       Car c3 = new Car("Chevrolet",5200, 2016, "c333");

       Car c4 = new Car("Audi",9000, 2016, "c444");

       Car c5 = new Car("Ford",5000, 2017, "c555");

       Car c6 = new Car("Toyota",6000, 2016, "c666");

       Car c7 = new Car("Chevrolet",5200, 2016, "c777");

       Car c8 = new Car("Audi",9000, 2016, "c888");

       Car c9 = new Car("Chevrolet",5200, 2016, "c999");

       Car c10 = new Car("Audi",9000, 2016, "c1010");

      

      

      

      

      

       // Create one Dealership and associates manager with it.

       DealerShip dealership = new DealerShip(mgr);

      

       // Use Dealership to add SalesPerson and Cars

       dealership.addSalesPerson(sp1);

       dealership.addSalesPerson(sp2);

       dealership.addSalesPerson(sp3);

       dealership.addSalesPerson(sp4);

       dealership.addSalesPerson(sp5);

      

      

       dealership.addCar(c1);

       dealership.addCar(c2);

       dealership.addCar(c3);

       dealership.addCar(c4);

       dealership.addCar(c5);

       dealership.addCar(c6);

       dealership.addCar(c7);

       dealership.addCar(c8);

       dealership.addCar(c9);

       dealership.addCar(c10);

      

      

      

       // now test your program for all the method that was given in Dealership

       System.out.println("Dealership after filling in all data");

       System.out.println(dealership);

      

       // Example carSold, reamoveCar, reamoveSalesPerson….

       // Note if the Car was sold you should not sell again

      

       System.out.println("selling car " + c1.getVinNumber() + " by sales person " + sp1.getFirstName() + " " + sp1.getLastName() );

       dealership.carSold(sp1, c1);

       System.out.println("selling car " + c3.getVinNumber() + " by sales person " + sp2.getFirstName() + " " + sp2.getLastName() );

       dealership.carSold(sp2, c3);

       System.out.println("selling car " + c5.getVinNumber() + " by sales person " + sp5.getFirstName() + " " + sp5.getLastName() );

       dealership.carSold(sp5, c5);

      

       System.out.println("Removing car " + c6.getVinNumber());

       dealership.removeCar(c6);

      

       System.out.println("Removing sales person " + sp3.getFirstName() + " " + sp3.getLastName());

       dealership.removeSalesPerson(sp3);

      

       System.out.println("Sales person of the month: " + dealership.getPersonOfTheMonth());

      

       System.out.println("Dealership after above operations ....");

       System.out.println(dealership);

       System.exit(0);

   }

}

output

Dealership after filling in all data

DealerShip

   List of cars

       Car [make=Ford, price=5000.0, year=2017, vinNumber=c111]

       Car [make=Toyota, price=6000.0, year=2016, vinNumber=c222]

       Car [make=Chevrolet, price=5200.0, year=2016, vinNumber=c333]

       Car [make=Audi, price=9000.0, year=2016, vinNumber=c444]

       Car [make=Ford, price=5000.0, year=2017, vinNumber=c555]

       Car [make=Toyota, price=6000.0, year=2016, vinNumber=c666]

       Car [make=Chevrolet, price=5200.0, year=2016, vinNumber=c777]

       Car [make=Audi, price=9000.0, year=2016, vinNumber=c888]

       Car [make=Chevrolet, price=5200.0, year=2016, vinNumber=c999]

       Car [make=Audi, price=9000.0, year=2016, vinNumber=c1010]

   List of Sales person

       SalesPerson [firstName=Bob, lastName=J, bonus=0.0, address=345, Street2, City2, hiringDate=Wed Jan 25 11:41:47 IST 2017]

       SalesPerson [firstName=Peter, lastName=P, bonus=0.0, address=345, Street3, City3, hiringDate=Sun Jan 29 11:41:47 IST 2017]

       SalesPerson [firstName=Henry, lastName=J, bonus=0.0, address=345, Street2, City2, hiringDate=Fri Feb 10 11:41:47 IST 2017]

       SalesPerson [firstName=Michael, lastName=J, bonus=0.0, address=345, Street2, City2, hiringDate=Fri Feb 10 11:41:47 IST 2017]

       SalesPerson [firstName=Tony, lastName=J, bonus=0.0, address=345, Street2, City2, hiringDate=Sun Feb 12 11:41:47 IST 2017]

selling car c111 by sales person Bob J

selling car c333 by sales person Peter P

selling car c555 by sales person Tony J

Removing car c666

Removing sales person Henry J

Sales person of the month: SalesPerson [firstName=Peter, lastName=P, bonus=260.0, address=345, Street3, City3, hiringDate=Sun Jan 29 11:41:47 IST 2017]

Dealership after above operations ....

DealerShip

   List of cars

       Car [make=Toyota, price=6000.0, year=2016, vinNumber=c222]

       Car [make=Audi, price=9000.0, year=2016, vinNumber=c444]

       Car [make=Chevrolet, price=5200.0, year=2016, vinNumber=c777]

       Car [make=Audi, price=9000.0, year=2016, vinNumber=c888]

       Car [make=Chevrolet, price=5200.0, year=2016, vinNumber=c999]

       Car [make=Audi, price=9000.0, year=2016, vinNumber=c1010]

   List of Sales person

       SalesPerson [firstName=Bob, lastName=J, bonus=250.0, address=345, Street2, City2, hiringDate=Wed Jan 25 11:41:47 IST 2017]

       SalesPerson [firstName=Peter, lastName=P, bonus=260.0, address=345, Street3, City3, hiringDate=Sun Jan 29 11:41:47 IST 2017]

       SalesPerson [firstName=Michael, lastName=J, bonus=0.0, address=345, Street2, City2, hiringDate=Fri Feb 10 11:41:47 IST 2017]

       SalesPerson [firstName=Tony, lastName=J, bonus=250.0, address=345, Street2, City2, hiringDate=Sun Feb 12 11:41:47 IST 2017]

SalesPerson [firstName=Peter, lastName=P, bonus=260.0, address=345, Street3, City3, hiringDate=Sun Jan 29 11:41:47 IST 2017]