Challenge

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

/****************************************************************************************
 * FILE NAME 	: flight.c
 * Created on 	: 31-Oct-2022
 * Author 		: sarath
 * DESCRIPTION 	: Program for controlling aircrafts landing and retraction gear
 *****************************************************************************************/
#include
#include
#include
typedef enum						//defining the states of gear using enum
{
	gear_down,
	checking_before_takeoff,
	raising_gear,
	gear_up,
	checking_before_landing,
	lowering_gear
}state_type;
typedef enum						//defining indicating lights using enum
{
	off,
	green,
	red
}light;
typedef enum						//defining pilots lever state position
{
	lever_rising,
	lever_up,
	lever_falling,
	lever_down
}lever_state;
typedef enum						//squat switch position definition using enum
{
	closed,
	opened
}squat_state;

int current_state;					//declaration of current state
lever_state pls;					//declaration of pilots lever position
squat_state ss;						//declaration of squat switch position

int main()
{
	current_state= gear_down;
	while(1)
	{
		printf("\nenter squat lever position 0 for closing and 1 opening");
		fflush(stdout);
		scanf("%d",&ss);
		printf("\n enter lever position 0 for lever rising, 1 for lever up, 2 for lever falling, 3 for lever down");
		fflush(stdout);
		scanf("%d",&pls);
		if(ss==closed)					//checking squat switch closed condition i.e grounded plane
		{
			switch(pls)
			{
				case (lever_down):
					printf("\ncurrent state is %s","gear_down");
					printf("\nnext state is %s","gear_down");
					printf("\nlight is %s","green");
					current_state=gear_down;
					break;
				case (lever_falling):
					printf("\ncurrent state is %s","checking_before_takeoff");
					sleep(3);
					printf("\nnext state is %s","gear_down");
					printf("\nlight is %s","red");
					current_state=gear_down;
					break;
			}
		}
		else if(ss==opened)				//checking squat switch opened i.w plane is airborn or in transition
		{
			switch(pls)
			{
			case (lever_rising):
				if(current_state==gear_down)
				{
					printf("\ncurrent state is %s","gear_down");
					printf("\nnext state is %s","checking_before_takeoff");
					printf("\nlight is %s","green");
					current_state=checking_before_takeoff;
				}
				else if(current_state==lowering_gear)
				{
					printf("\ncurrent state is %s","lowering_gear");
					printf("\nnext state is %s","checking_before_takeoff");
					printf("\nlight is %s","red");
					current_state=checking_before_takeoff;
				}
				else
					printf("\n the lever position u r entering can only work if ur current state is gear down or lowering gear");
					break;
			case (lever_up) :
				if(current_state==checking_before_takeoff)
				{
					printf("\ncurrent state is %s","checking_before_takeoff");
					sleep(3);
					printf("\nnext state is %s","raising_gear");
					printf("\nlight is %s","red");
					current_state=raising_gear;
				}
				else if(current_state==raising_gear)
				{
					printf("\ncurrent state is %s","raising_gear");
					printf("\nnext state is %s","gear_up");
					printf("\nlight is %s","off");
					current_state=gear_up;
				}
				break;
			case (lever_falling):
				if(current_state==raising_gear)
				{
					printf("\ncurrent state is %s","raising_gear");
					printf("\nnext state is %s","checking_before_landing");
					printf("\nlight is %s","red");
					current_state=checking_before_landing;
				}
				else if(current_state==gear_up)
				{
					printf("\ncurrent state is %s","gear_up");
					printf("\nnext state is %s","checking_before_landing");
					printf("\nlight is %s","red");
					current_state=checking_before_landing;
				}
				break;
			case (lever_down):
				if(current_state==checking_before_landing)
				{
					printf("\ncurrent state is %s","checking_before_landing");
					sleep(3);
					printf("\nnext state is %s","lowering_gear");
					printf("\nlight is %s","red");
					current_state=lowering_gear;
				}
				else if(current_state==lowering_gear)
				{
					printf("\ncurrent state is %s","raising_gear");
					printf("\nnext state is %s","gear_down");
					printf("\nlight is %s","green");
					current_state=gear_down;
				}
				break;
			}
		}
	}
}
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.