关键词不能为空

当前您在: 主页 > 英语 >

停车场管理系统代码(c++)

作者:高考题库网
来源:https://www.bjmy2z.cn/gaokao
2021-01-29 23:19
tags:

-

2021年1月29日发(作者:through)


#include


#include


using namespace std;



const int MAX_STOP=4;




//


定义停车场最大停车数



const int MAX_PLATE=10;



//


定义车牌号最大长度





//


数据结构定义



//


定义存储汽车信息的结构体



typedef struct


{



char license_plate[MAX_PLATE];//


汽车牌照号码,定义为一个字符指针类型




char state;





//


汽车当前状态,


字符


p


表示停放在停车位上,


字符


s


表示停放在便道上,


每辆车的初 始状态用字符


i


来进行表示



}CAR;



//


定义模拟停车场的栈结构



typedef struct


{



CAR STOP[MAX_STOP]; //


汽车信息的存储空间







int top;





//


用来指示栈顶位置的静态指针



}SeqStack;



//


定义模拟便道的队列结构



typedef struct node


{



CAR W


AIT;





//


汽车信息的存储空问







struct node *next;





//


用来指示队列位置的动态指针



}QNode;




//


链队列节点的类型




//


定义链队列的收尾指针



typedef struct


{



QNode *front,*rear;


}LQueue;




//


将头尾指针封装在一起的链队





//


函数声明



int Empty_LQueue(LQueue *q);





//


判队空



int LeaveCheck(SeqStack parking,char *license_plate); //


检查离开的车是否在停车场中



int QueueLength(LQueue *q);





//


判队长度



int Out_LQueue(LQueue *&sidewalk,char *license_plate);



//


出队操作



int StackEmpty(SeqStack parking);





//


判断栈是否为空



int StackFull(SeqStack parking);





//


判断栈是否为满



int StackPop(SeqStack &parking);





//


出栈操作



int StackTop(SeqStack parking, char *license_plate); //


取栈项元素



void Car_come(SeqStack &parking,LQueue *&sidewalk);



//


有车到来时的操作



void Car_leave(SeqStack &parking,LQueue *&sidewalk);



//


有车离开的操作



void Display(SeqStack parking);





//


显示停车场内的所有信息调试时用



void InitStack(SeqStack &parking);





//


初始化栈



void InitList(LQueue *&sidewalk);





//


初始化队列



void In_LQueue(LQueue *&sidewalk, char *license_plate); //


进队操作



void Input_Check(char *license_plate);





////


检验输入的车牌是否合法



void StackPush(SeqStack &parking,char *license_plate); //


进栈操作




void main()


{



//


定义变量




SeqStack parking;



LQueue *sidewalk= NULL;



char *choice= new char;



int flag=1; //


定义一个变量判断是否退出




//


初始化一个为空的停乍场




InitStack(parking);



//


初始化一个为空的便道




InitList(sidewalk);



//


运行界面及功能选择




while(flag)



{




cout<<








停车场模拟管理系统

















cout<<










cou t<<


有车到来时请按


[C]












cout<<


有车要走时请按


[l]












cou t<<


查看停车场请按


[D]









cout<<

要退出系统请按


[Q]










cout<<







cou t<<


请选择操作:





gets(choice);




if(1!=strlen(choice))




{





cout<<

请正确输入选项!






continue;




}




else




{





switch(*choice)





{





case 'c':





case 'C':






{







Car_come(parking,sidewalk);







break;






}





case'l' :





case'L':






{






Car_leave (parking,sidewalk);






break;






}





case'q':





case 'Q':






{







flag=0;







break;






}





case 'd':





case 'D':






{







Display(parking);break;






}





default:






cout<<

选择不正确!请重新选择






}




}



}


}



//


有车到来时的操作



void Car_come(SeqStack &parking, LQueue *&sidewalk)


{


//


定义变量




char license_plate[MAX_PLATE];






cout<<

请输入车辆的车牌号码:







Input_Check(license_plate);






//< /p>


判断停车场是否已满,满则进入便道,不满进入停车场







if(StackFull(parking))



{




In_LQueue(sidewalk,license_plate);





//


进入便道





cout<<

停车场已满清在便道等候,您的位置为




}



else



{




StackPush(parking,license_plate);





//


进入停车场





cout<<

请进入停车场中的



号停车位




}


}



//


有车离开时的操作



void Car_leave(SeqStack &parking, LQueue *&sidewalk)


{


//


定义变量




SeqStack tmpparking;





//


定义临时停车场




char leave_license_plate[MA X_PLATE];//


要离开的车牌号




char license_plate[MAX_PLATE];



//


存放从停车场中读出来的车牌信息




InitStack(tmpparking);





//


初始化临时停车场




//


判断停车场中是否有车




if(StackEmpty(parking))



{



< /p>


cout<<


当前停车场中没有车





return;





//


退出子函数




}







cou t<<


请输入要离开的车牌照:











Input_Check(leave_license_plate);




cout<<

当前停车场中有



辆车





if(LeaveCheck(parking ,leave_license_plate))//


判断车是否在停车场中

< p>




{





//


车在停车场中






cou t<<
















while(StackTop(parking,license_plate)&&


(strcmp([].license_plate, leave_license_plate)!=0))





{






strcpy([].license_plate, license_plate);






cout<<









退







号位







StackPush(tmpparking,license_plate);


//


停车场中的车暂时退出进入临时停


车场







StackPop(parking);



//


出栈






}





cou t<<


牌照为



的车离开停车场



号位






StackPop(parking);



//


出栈






//


将临时停车场巾的车停回停车场






while(StackEmpty(tmpparking)!=1)





{






StackTop(tmpparking, license_plate);

-


-


-


-


-


-


-


-



本文更新与2021-01-29 23:19,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/587787.html

停车场管理系统代码(c++)的相关文章