关键词不能为空

当前您在: 主页 > 英语 >

停车场管理系统代码(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++)的相关文章

  • 余华爱情经典语录,余华爱情句子

    余华的经典语录——余华《第七天》40、我不怕死,一点都不怕,只怕再也不能看见你——余华《第七天》4可是我再也没遇到一个像福贵这样令我难忘的人了,对自己的经历如此清楚,

    语文
  • 心情低落的图片压抑,心情低落的图片发朋友圈

    心情压抑的图片(心太累没人理解的说说带图片)1、有时候很想找个人倾诉一下,却又不知从何说起,最终是什么也不说,只想快点睡过去,告诉自己,明天就好了。有时候,突然会觉得

    语文
  • 经典古训100句图片大全,古训名言警句

    古代经典励志名言100句译:好的药物味苦但对治病有利;忠言劝诫的话听起来不顺耳却对人的行为有利。3良言一句三冬暖,恶语伤人六月寒。喷泉的高度不会超过它的源头;一个人的事

    语文
  • 关于青春奋斗的名人名言鲁迅,关于青年奋斗的名言鲁迅

    鲁迅名言名句大全励志1、世上本没有路,走的人多了自然便成了路。下面是我整理的鲁迅先生的名言名句大全,希望对你有所帮助!当生存时,还是将遭践踏,将遭删刈,直至于死亡而

    语文
  • 三国群英单机版手游礼包码,三国群英手机单机版攻略

    三国群英传7五神兽洞有什么用那是多一个武将技能。青龙飞升召唤出东方的守护兽,神兽之一的青龙。玄武怒流召唤出北方的守护兽,神兽之一的玄武。白虎傲啸召唤出西方的守护兽,

    语文
  • 不收费的情感挽回专家电话,情感挽回免费咨询

    免费的情感挽回机构(揭秘情感挽回机构骗局)1、牛牛(化名)向上海市公安局金山分局报案,称自己为了挽回与女友的感情,被一家名为“实花教育咨询”的情感咨询机构诈骗4万余元。

    语文