文档详情

停车场管理系统49360

l****
实名认证
店铺
DOC
53KB
约10页
文档ID:217064372
停车场管理系统49360_第1页
1/10

WORD 停车场管理系统[实验目的]综合运用线性表、队列、排序、随机数等数据结构知识,掌握并提高分析、设计、实现与测试程序的综合能力[实验容与要求]停车场拥有M个车位和一条进入停车场的便道,便道上最多停放N辆汽车汽车要想进入车位,首先进入便道等候若有空闲车位,则停车入位,否则在便道继续等候,直至有车位空出若便道已经停满等候的汽车,后到达的汽车只能离开,选择其他停车场设计一个停车场管理系统,模拟停车场的运作,并统计停车场的收入1) 使用随机数产生某一时间段进入和离开停车场的车辆数目;(2) 存储并记录如下数据项:汽车到达和离去的时间与汽车的车号;(3) 车辆到达时,提示汽车的停车位置编号(为车辆分配编号最小的可用车位),若车位已满给出相应提示;(4) 汽车离去时,输出汽车在停车场停留的时间和应交纳的费用5) 对该停车场进行统计:统计每天到达、离开的车次,停车总时数、每天停车场的收入等[测试数据]M=30,N=5,以1小时为时间的最小单位,每小时停车费30元,每小时到达的车辆数目在0-20辆之间均匀分布,车辆停留1小时后离开的概率是25%,每多停留1小时后离开概率增加25%,4小时后一定要离开。

一天以24小时计算[实现提示]用队列模拟便道,可用车位需按照编号排序,申请车位时分配编号最小的车位,可用车位动态变化,选择排序方法时应考虑算法效率include #include #include #include using namespace std;/****************************************车位*****************************************/class chewei {private: bool biaozhi; //用来标识车位是否被占用 int intime,outtime; //车位上的车辆的进站时间和出站时间 int zongshijian,zongfeiyong; //该车位上总时间和产生的总费用 int zongchel; //总共离开车辆数 int chepai; //在该车位上停车的车辆的车牌号 int time; //车辆停留时间public: chewei(){biaozhi=true;intime=0;zongshijian=0;zongfeiyong=0;zongchel=0;} void shezhibz(){biaozhi=false;} //判断该车位上是否有车 void shezhicp(int cp){chepai=cp;} //车到来的时候将车牌号改为该车的车牌号 void incar(int cp,int sj); //车辆进入 void outcar(int sj); //车辆出来 int tingliusj(int t); //查看该车的停留时间 int alltime(); //总时间 int allcost(); //总费用 int allcar();};void chewei::incar(int cp,int sj){biaozhi=false; chepai=cp; intime=sj;}void chewei::outcar(int sj){ int time,feiyong; time=sj-intime; feiyong=time*30; biaozhi=true; cout<<"车牌号为: "<next==NULL;} void kongche(int item); //将空车位插入其中 int shanchu(); //车位被占就从中删除它 int changdu(){return length;} //空闲车位的总量};void kycw::kongche(int item){ //按照从小到大的顺序将空车位插入其中 ky * p, * q; p=head->next; length++; if(p==NULL) head->next=new ky(item,NULL); else{ if(p->haoma>item) head->next=new ky(item,p); else while((p->next!=NULL)&&(p->haomanext; } if((p->next==NULL)&&(p->haoma>item)){ q=head->next; while((q->next)->next!=NULL) q=q->next; q->next=new ky(item,p); } else p->next=new ky(item,p->next); }}int kycw::shanchu(){ //弹出最小的车位 ky * p; length--; p=head->next; int a; a=p->haoma; head->next=p->next; return a;}/**********************************便道**********************************/struct node{ int data; node *next; node(node *nextnode=NULL) { next=nextnode; } node(int item,node *nextnode=NULL) { data=item; next=nextnode; }};class biandao{private: node *head; int length;public: biandao() { head=new node(); length=0; } bool isempty() //判断便道是否为空 { return head->next==NULL; } int changdu() //便道中剩余车辆 { return length; } void jinrubiandao(int cp); //车辆进入便道 int jinrucheku();};void biandao::jinrubiandao(int cp) //车辆进入便道{ node *p; p=head; length++; while(p->next!=NULL) p=p->next; p->next=new node(cp,NULL);}int biandao::jinrucheku() //便道最前端的车进入停车位,记下车牌号{ length--; node *p; int c; p=head; c=p->next->data; head->next=(p->next)->next; return c;}/******************************主程序*************************/int main(){ int M=4; int N=2; chewei cw[4]; biandao bd;。

下载提示
相似文档
正为您匹配相似的精品文档