Challenge

Project 2 - Implement the Code for controlling the retraction and extension of Airplane’s landing gear

#include
using namespace std;
enum class GearState {
Extended,
Retracted,
Transitioning,
};

class LandingGear {
private:
GearState state;

public:
LandingGear() : state(GearState::Retracted) {}

void extend() {
if (state == GearState::Retracted) {
cout << "Landing gear extending..." << endl;
state = GearState::Transitioning;
state = GearState::Extended;
cout << "Landing gear extended." << endl;
} else if (state == GearState::Extended) {
cout << "Landing gear is already extended." << endl;
} else {
cout << "Landing gear is transitioning. Please wait..." << endl;
}
}

void retract() {
if (state == GearState::Extended) {
cout << "Landing gear retracting..." << endl;
state = GearState::Transitioning;
state = GearState::Retracted;
cout << "Landing gear retracted." << endl;
} else if (state == GearState::Retracted) {
cout << "Landing gear is already retracted." << endl;
} else {
cout << "Landing gear is transitioning. Please wait..." << endl;
}
}

GearState getState() const {
return state;
}
};

int main() {
LandingGear gear;

gear.extend(); // Output: Landing gear extending... Landing gear extended.
gear.retract(); // Output: Landing gear retracting... Landing gear retracted.

gear.retract(); // Output: Landing gear is already retracted.
gear.extend(); // Output: Landing gear is transitioning. Please wait...

if (gear.getState() == GearState::Extended) {
cout << "Landing gear is extended." << endl;
} else if (gear.getState() == GearState::Retracted) {
cout << "Landing gear is retracted." << endl;
}

return 0;
}

Your portfolio, next

Ship work like this
in your own course.

Talk to a career counsellor

Free 20-minute call. We'll map the right course to where you want to work.

By submitting you agree to our Terms and Privacy Policy.