0% found this document useful (0 votes)
4 views9 pages

Programming Assignment Unit 6

The document outlines a Vehicle Information System implemented in Java, featuring interfaces for different vehicle types including Car, Motorcycle, and Truck. Each vehicle class implements common properties and specific methods for their respective types, allowing for the management of vehicle data. The VehicleSystem class provides a user interface for adding vehicles and viewing the list of added vehicles, with error handling for user inputs.

Uploaded by

Big Sean
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
4 views9 pages

Programming Assignment Unit 6

The document outlines a Vehicle Information System implemented in Java, featuring interfaces for different vehicle types including Car, Motorcycle, and Truck. Each vehicle class implements common properties and specific methods for their respective types, allowing for the management of vehicle data. The VehicleSystem class provides a user interface for adding vehicles and viewing the list of added vehicles, with error handling for user inputs.

Uploaded by

Big Sean
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Programming Assignment Unit 6

Vehicle Information System

[Link]

/**
* Vehicle interface defining common vehicle properties.
*/
public interface Vehicle {
String getMake();
String getModel();
int getYear();
}

[Link]

/**
* CarVehicle interface defines additional methods specific to cars.
*/
public interface CarVehicle {
void setNumberOfDoors(int doors);
int getNumberOfDoors();
void setFuelType(String fuelType); // Accepts Petrol, Diesel, Electric
String getFuelType();
}

[Link]

/**
* MotorVehicle interface defines additional methods specific to motorcycles.
*/
public interface MotorVehicle {
void setNumberOfWheels(int wheels);
int getNumberOfWheels();
void setMotorcycleType(String type); // Sport, Cruiser, Off-road
String getMotorcycleType();
}
[Link]

/**
* TruckVehicle interface defines additional methods specific to trucks.
*/
public interface TruckVehicle {
void setCargoCapacity(double capacity); // in tons
double getCargoCapacity();
void setTransmissionType(String type); // Manual, Automatic
String getTransmissionType();
}

[Link]

/**
* Car class implements Vehicle and CarVehicle.
* Stores and retrieves details specific to cars.
*/
public class Car implements Vehicle, CarVehicle {
private String make, model, fuelType;
private int year, numberOfDoors;

public Car(String make, String model, int year, int numberOfDoors, String
fuelType) {
[Link] = make;
[Link] = model;
[Link] = year;
setNumberOfDoors(numberOfDoors);
setFuelType(fuelType);
}

@Override
public String getMake() { return make; }

@Override
public String getModel() { return model; }

@Override
public int getYear() { return year; }

@Override
public void setNumberOfDoors(int doors) {
if (doors < 2 || doors > 6) {
throw new IllegalArgumentException("Doors must be between 2 and 6.");
}
[Link] = doors;
}

@Override
public int getNumberOfDoors() { return numberOfDoors; }

@Override
public void setFuelType(String fuelType) {
if (![Link]("Petrol") &&
![Link]("Diesel") &&
![Link]("Electric")) {
throw new IllegalArgumentException("Invalid fuel type.");
}
[Link] = fuelType;
}

@Override
public String getFuelType() { return fuelType; }

@Override
public String toString() {
return "Car: " + make + " " + model + " (" + year + "), " + numberOfDoors
+
" doors, Fuel: " + fuelType;
}
}

[Link]

public class Motorcycle implements Vehicle, MotorVehicle {


private String make, model, motorcycleType;
private int year, wheels;

public Motorcycle(String make, String model, int year, int wheels, String
type) {
[Link] = make;
[Link] = model;
[Link] = year;
setNumberOfWheels(wheels);
setMotorcycleType(type);
}
@Override
public String getMake() { return make; }

@Override
public String getModel() { return model; }

@Override
public int getYear() { return year; }

@Override
public void setNumberOfWheels(int wheels) {
if (wheels < 2 || wheels > 3) {
throw new IllegalArgumentException("Motorcycles must have 2 or 3
wheels.");
}
[Link] = wheels;
}

@Override
public int getNumberOfWheels() { return wheels; }

@Override
public void setMotorcycleType(String type) {
if (![Link]("Sport") &&
![Link]("Cruiser") &&
![Link]("Off-road")) {
throw new IllegalArgumentException("Invalid motorcycle type.");
}
[Link] = type;
}

@Override
public String getMotorcycleType() { return motorcycleType; }

@Override
public String toString() {
return "Motorcycle: " + make + " " + model + " (" + year + "), " + wheels
+
" wheels, Type: " + motorcycleType;
}
}
[Link]

public class Truck implements Vehicle, TruckVehicle {


private String make, model, transmissionType;
private int year;
private double cargoCapacity;

public Truck(String make, String model, int year, double cargoCapacity,


String transmissionType) {
[Link] = make;
[Link] = model;
[Link] = year;
setCargoCapacity(cargoCapacity);
setTransmissionType(transmissionType);
}

@Override
public String getMake() { return make; }

@Override
public String getModel() { return model; }

@Override
public int getYear() { return year; }

@Override
public void setCargoCapacity(double capacity) {
if (capacity <= 0) {
throw new IllegalArgumentException("Cargo capacity must be
positive.");
}
[Link] = capacity;
}

@Override
public double getCargoCapacity() { return cargoCapacity; }

@Override
public void setTransmissionType(String type) {
if (![Link]("Manual") &&
![Link]("Automatic")) {
throw new IllegalArgumentException("Invalid transmission type.");
}
[Link] = type;
}
@Override
public String getTransmissionType() { return transmissionType; }

@Override
public String toString() {
return "Truck: " + make + " " + model + " (" + year + "), " +
cargoCapacity + " tons, Transmission: " + transmissionType;
}
}

[Link]

// Source code is decompiled from a .class file using FernFlower decompiler.


import [Link];
import [Link];
import [Link];

public class VehicleSystem {


public VehicleSystem() {
}

public static void main(String[] var0) {


Scanner var1 = new Scanner([Link]);
ArrayList var2 = new ArrayList();
boolean var3 = false;

label38:
while(!var3) {
[Link]("\n--- Vehicle Information System ---");
[Link]("1. Add Car");
[Link]("2. Add Motorcycle");
[Link]("3. Add Truck");
[Link]("4. View All Vehicles");
[Link]("5. Exit");
[Link]("Enter your choice: ");

try {
int var4 = [Link]([Link]());
switch (var4) {
case 1:
[Link]("Enter make: ");
String var5 = [Link]();
[Link]("Enter model: ");
String var6 = [Link]();
[Link]("Enter year: ");
int var7 = [Link]([Link]());
[Link]("Enter number of doors: ");
int var8 = [Link]([Link]());
[Link]("Enter fuel type (Petrol/Diesel/Electric): ");
String var9 = [Link]();
[Link](new Car(var5, var6, var7, var8, var9));
[Link]("Car added successfully!");
break;
case 2:
[Link]("Enter make: ");
String var10 = [Link]();
[Link]("Enter model: ");
String var11 = [Link]();
[Link]("Enter year: ");
int var12 = [Link]([Link]());
[Link]("Enter number of wheels: ");
int var13 = [Link]([Link]());
[Link]("Enter motorcycle type (Sport/Cruiser/Off-
road): ");
String var14 = [Link]();
[Link](new Motorcycle(var10, var11, var12, var13, var14));
[Link]("Motorcycle added successfully!");
break;
case 3:
[Link]("Enter make: ");
String var15 = [Link]();
[Link]("Enter model: ");
String var16 = [Link]();
[Link]("Enter year: ");
int var17 = [Link]([Link]());
[Link]("Enter cargo capacity in tons: ");
double var18 = [Link]([Link]());
[Link]("Enter transmission type (Manual/Automatic):
");
String var20 = [Link]();
[Link](new Truck(var15, var16, var17, var18, var20));
[Link]("Truck added successfully!");
break;
case 4:
[Link]("\n--- Vehicle List ---");
if ([Link]()) {
[Link]("No vehicles added yet.");
break;
} else {
Iterator var21 = [Link]();

while(true) {
if (![Link]()) {
continue label38;
}

Vehicle var22 = (Vehicle)[Link]();


[Link]([Link]());
}
}
case 5:
var3 = true;
[Link]("Exiting Vehicle System. Goodbye!");
break;
default:
[Link]("Invalid choice. Try again.");
}
} catch (NumberFormatException var23) {
[Link]("Invalid input format. Please enter correct
numbers.");
} catch (IllegalArgumentException var24) {
[Link]("Error: " + [Link]());
}
}

[Link]();
}
}

Car: implements Vehicle and CarVehicle

Motorcycle: implements Vehicle and MotorVehicle

Truck: implements Vehicle and TruckVehicle

a VehicleSystem class with a main() method that:

 Uses a menu to let users:


o Add a Car
o Add a Motorcycle
o Add a Truck
o View all added vehicles
o Exit the program
 Collects user input using Scanner with error handling for:
o Invalid numeric values
o Invalid choice inputs (e.g., unsupported fuel types)

Output

You might also like