Untitled

 avatar
unknown
plain_text
4 months ago
3.3 kB
3
Indexable
#include <iostream>
#include <string>
#include <iomanip>

class Car {
private:
    std::string brand;
    std::string model;
    int year;
    double price;
    double fuelLevel;

public:
    // Constructors
    Car() : brand("Unknown"), model("Unknown"), year(0), price(0.0), fuelLevel(0.0) {}
    Car(std::string brand, std::string model, int year, double price, double fuelLevel) 
        : brand(brand), model(model), year(year), price(price), fuelLevel(fuelLevel) {}

    // Getters and Setters
    void setBrand(const std::string& brand) { this->brand = brand; }
    void setModel(const std::string& model) { this->model = model; }
    void setYear(int year) { this->year = year; }
    void setPrice(double price) { this->price = price; }
    void setFuelLevel(double fuelLevel) { this->fuelLevel = fuelLevel; }
    
    std::string getBrand() const { return brand; }
    std::string getModel() const { return model; }
    int getYear() const { return year; }
    double getPrice() const { return price; }
    double getFuelLevel() const { return fuelLevel; }

    // Show values vertically
    void showValues() const {
        std::cout << "Car Details (Vertical):\n"
                  << "Brand: " << brand << "\n"
                  << "Model: " << model << "\n"
                  << "Year: " << year << "\n"
                  << "Price: $" << price << "\n"
                  << "Fuel Level: " << fuelLevel << " liters\n";
    }

    // Show values horizontally
    void detailLine() const {
        std::cout << "Car Details (Horizontal): "
                  << "Brand: " << brand << ", "
                  << "Model: " << model << ", "
                  << "Year: " << year << ", "
                  << "Price: $" << price << ", "
                  << "Fuel Level: " << fuelLevel << " liters\n";
    }

    // Get values interactively
    void getValues() {
        std::cout << "Enter car details:\n";
        std::cout << "Brand: "; std::getline(std::cin, brand);
        std::cout << "Model: "; std::getline(std::cin, model);
        std::cout << "Year: "; std::cin >> year;
        std::cout << "Price: $"; std::cin >> price;
        std::cout << "Fuel Level (liters): "; std::cin >> fuelLevel;
        std::cin.ignore(); // Clear the input buffer
    }

    // Additional methods
    void drive(double distance) {
        double fuelConsumed = distance * 0.1; // Assume 0.1 liters per km
        fuelLevel -= fuelConsumed;
        if (fuelLevel < 0) fuelLevel = 0; // Prevent negative fuel
        std::cout << "Driven " << distance << " km. Fuel remaining: " << fuelLevel << " liters.\n";
    }

    void refill(double amount) {
        fuelLevel += amount;
        std::cout << "Refilled " << amount << " liters. Total fuel: " << fuelLevel << " liters.\n";
    }
};

int main() {
    // Create a Car object using the default constructor
    Car car1;
    car1.getValues();  // Interactive input

    // Display values in both formats
    car1.showValues();
    car1.detailLine();

    // Perform operations (drive and refill)
    car1.drive(50);   // Drive 50 km
    car1.refill(20);   // Refill 20 liters of fuel
    car1.detailLine();

    // Create another Car object using the parameterized constructor
    Car car2("Tesla", "Model S", 2023, 79999.99, 100);
    car2.showValues();
    car2.detailLine();

    return 0;
}
Editor is loading...
Leave a Comment