Challenge

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

#include

#include

#include // Used for sleep function

 

// Enumeration for gear states

enum GearState {

GEAR_UP,

GEAR_DOWN,

GEAR_EMERGENCY,

};

 

// Enumeration for gear lights

enum GearLightColor {

LIGHT_RED,

LIGHT_GREEN,

};

 

// Structure representing a landing gear

struct LandingGear {

enum GearState state;

enum GearLightColor light_color;

};

 

// Function to control landing gear extension

void extendGear(struct LandingGear *gear) {

gear->state = GEAR_DOWN;

gear->light_color = LIGHT_GREEN;

printf("Landing gear extended\n");

}

 

 

// Function to control landing gear retraction

void retractGear(struct LandingGear *gear) {

gear->state = GEAR_UP;

gear->light_color = LIGHT_RED;

printf("Landing gear retracted\n");

}

 

// Function to handle take-off procedure

void takeOff(struct LandingGear *nose_gear) {

// Check squat switch for 4 seconds

sleep(4);

if (nose_gear->state == GEAR_UP) {

printf("Take-off successful.\n");

} else {

printf("Take-off aborted due to landing gear issue.\n");

}

}

 

int main() {

struct LandingGear nose_gear = {GEAR_DOWN, LIGHT_RED};

struct LandingGear left_gear = {GEAR_UP, LIGHT_GREEN};

struct LandingGear right_gear = {GEAR_UP, LIGHT_GREEN};

 

// Simulate take-off procedure

takeOff(&nose_gear);

 

// Simulate hydraulic pressure adjustments

printf("Adjusting hydraulic pressure on nose gear...\n");

// Adjust hydraulic pressure by modifying the gear structure

 

// Simulate gear extension/retraction

retractGear(&nose_gear);

extendGear(&left_gear);

extendGear(&right_gear);

 

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.