1. 数据结构课程设计 停车场管理(数据结构)
让我想起了大学数据结构的老师,这个题目就是一个数据结构题目而已.
2. 数据结构课设:银行排队系统模拟
用优先级队列来模拟整个过程,每个客户都需要有到达、离开两次入队操作。
建立一个大小为n的数组,来记录每个窗口(接下来的)的空闲时间,初始化全部赋值为0。
这里我们假设有1、2两个窗口,T(1)=T(2)=0
建立一个(按时间的)优先级队列,初始化为空。
假设银行0时开业,下面举例来说明:
第一个客人于1分钟到达,假设这个客人办理业务需要的时间为10分钟(一般模拟过程中,这个时间是在某个范围内随机生成的)。为该用户分配一个空闲窗口1,同时T(1)=11。此时需要入队:
------------------------
------------------------
第二个客人于3分钟时到达,假设这个客人办理业务需要的时间为5分钟。由于T(2)==0<3,说明在这位客人到达时第2号窗口是闲的,那么让他去2号窗口,同时T(2)=3+5=8。然后入队:
-------------------------------------------------
->
-------------------------------------------------
第三个客人于4分钟时到达,假设这个客人办理业务需要的时间为6分钟。此时T(1)=11>4,T(2)=8>4,两个窗口都是忙碌的。但由于T(2)<T(3),我们认为2号窗口相对来说轻松一些,让他去2号窗口排队,同时T(2)=T(2)+6=14。然后入队:
--------------------------------------------------------------------------
->->
---------------------------------------------------------------------------
……
整个过程持续下去,一直到关门时间为止。
上面的示例在队列中只记录了离开时间,实际上还可以记录到达时间、在哪个窗口办理等等信息,这样只需要将这个优先级队列依次执行出队操作,就能统计出平均业务受理时间、平均等待时间、哪个窗口工作量多少.
3. 求代写用C++设计一个银行排队系统, 数据结构课程设计……
去论文网吧,这上面枪手少
4. 课程设计数据结构严蔚敏银行业务模拟
http://download.pudn.com/downloads104/sourcecode/app/45666021yinhangyewumonixitong.rar
看看这个,仅供参考
5. 数据结构课程设计产品进销存管理系统
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<iostream>
#include <fstream>
using namespace std;
//结构体
struct commodity
{
int num;//商品号
char kind[10];//产品的种类
char name[10];//产品的名称
int count;//产品的总量
char date[15];//进货日期
int sale;//销出数量
char saledate[15];//销售时间
} cod[50],codtemp[50],dod[50];//产品名称cod,产品种类dod
//定义函数
void inputnum();
void inputkind();
void inputname();
void sort();
int count(int n);
void binarysearch();
int choice;
int main(int argc, char *argv[])
{
cout<<"\t\t\t欢迎进入产品进销存管理系统"<<endl;
do{
cout<<"\t1.产品入库"<<endl;
cout<<"\t2.查找产品"<<endl;
cout<<"\t3.退出系统"<<endl;
cin>>choice;
switch(choice) {
case 1:cout<<"\t1.产品类的添加"<<endl;
cout<<"\t2.产品的添加"<<endl;
cout<<"\t3.数量的添加"<<endl;
cin>>choice;
switch(choice){
case 1:inputkind();break;
case 2:inputname();break;
case 3:inputnum();break;
default:cout<<"错误!";break;
}break;
case 2:binarysearch();break;
case 3:exit(0); break;
default:cout<<"错误!"<<endl;
break;
}
} while(1);
system("PAUSE");
return 0;
}
//计算文件中结构体个数
int count(int n)
{
FILE *fp;
int i;
if((fp=fopen("产品","r"))==NULL)
{
cout<<"打不开文件!"<<endl;
exit(0);
}
for(i=0;fread(&cod[i],sizeof(struct commodity),1,fp);i++) //读文件
{
}
return i;
}
//产品种类的添加
void inputkind()
{
FILE *fp1,*fp2;
int i,size,size1,j;
if((fp1=fopen("产品种类","a"))==NULL)
{ //追加
cout<<"打不开文件!"<<endl;
exit(0);
}
cout<<"请输入新入库产品种类的个数:";
cin>>size;
for(i=0;i<size;i++)
{//在产品种类文件中添加
cout<<"请输入第"<<i+1<<"个产品种类的资料"<<endl;
cout<<"产品的种类:";
cin>>dod[i].kind;
cout<<"请输入该产品种类中产品的个数:";
cin>>size1;
if((fp2=fopen("产品","a"))==NULL)
{ //追加
cout<<"打不开文件!"<<endl;
exit(0);
}
for(j=0;j<size1;j++)
{//在产品文件中添加
cout<<"请再次输入种类:";
cin>>cod[j].kind;
cout<<"请输入产品号:";
cin>>cod[j].num;
cout<<"产品的名称:";
cin>>cod[j].name;
cout<<"产品的数量:";
cin>>cod[j].count;
cout<<"产品的进货日期:";
cin>>cod[j].date;
cout<<"销出数量:";
cin>>cod[j].sale;
cout<<"销售时间:";
cin>>cod[j].saledate;
}
fwrite(&cod[i],sizeof(struct commodity),1,fp2);
}
fwrite(&dod[i],10,1,fp1); //把数据写入文件
fclose(fp1);
fclose(fp2);//关闭
}
//产品的添加
void inputname()
{
FILE *fp;
int i,size;
if((fp=fopen("产品","a"))==NULL)
{ //追加
cout<<"打不开文件!"<<endl;
exit(0);
}
cout<<"请输入新入库产品的个数:";
cin>>size;
for(i=0;i<size;i++) {
{
cout<<"请输入第"<<i+1<<"个产品的资料"<<endl;
cout<<"所属产品的种类:";
cin>>cod[i].kind; //
cout<<"请输入产品号:";
cin>>cod[i].num;
cout<<"产品的名称:";
cin>>cod[i].name;
cout<<"产品的数量:";
cin>>cod[i].count;
cout<<"产品的进货日期:";
cin>>cod[i].date;
cout<<"销出数量:";
cin>>cod[i].sale;
cout<<"销售时间:";
cin>>cod[i].saledate;
}
fwrite(&cod[i],sizeof(struct commodity),1,fp); //把数据写入文件
}
fclose(fp); //关闭
}
//数量的添加
void inputnum()
{
FILE *fp;
int i,size,j;
int k=count(1);
char str[10];//记录增加数量的产品名称
sort();
if((fp=fopen("产品","rb"))==NULL)
{ //追加
cout<<"打不开文件!"<<endl;
exit(0);
}
cout<<"请输入增加数量的产品名称:";
cin>>str;
cout<<"请输入数量:";
cin>>size;
for(i=0;fread(&cod[i],sizeof(struct commodity),1,fp);i++)
{
if(strcmp(str,cod[i].name)==0)
{
cod[i].count=cod[i].count+size;
{ //重写
fp=fopen("产品","wb");
for(j=0;j<k;j++)
fwrite(&cod[j],sizeof(struct commodity),1,fp);
fclose(fp);
}
break;
}
}
fclose(fp); //关闭
cout<<"添加成功!"<<endl;
}
//商品排序
void sort() //排序函数
{
int i,j,n,last,w;
int templist[30];
struct commodity temp;
FILE *fp;
if((fp=fopen("产品","rb"))==NULL)
{
cout<<"打不开文件!"<<endl;
exit(0);
}
int k=count(1);
for(i=0;i<k;i++)
{
fread(&cod[i],sizeof(struct commodity),1,fp);
templist[i]=cod[i].num;
}
i--;
while(i>0) //冒泡排序
{
last=0;
for(n=0;n<i;n++)
{
if(templist[n+1]<templist[n])
{
w=templist[n];templist[n]=templist[n+1];templist[n+1]=w;
last=n;
}
}
i=last;
}
for(i=0;i<k;i++)
for(j=0;j<k;j++)
{
fseek(fp,j*sizeof(struct commodity),0);
fread(&cod[j],sizeof(struct commodity),1,fp);
if(templist[i]==cod[j].num) //比较数组中i的值是否与结构体中商品号相等
codtemp[i]=cod[j]; //将文件中存储的结构体数据暂存在临时结构体中
}
fclose(fp);
{ //重写
FILE *fp;
fp=fopen("产品","wb");
for(i=0;i<k;i++)
fwrite(&codtemp[i],sizeof(struct commodity),1,fp);
fclose(fp);
}
}
// 查找商品
void binarysearch()
{
int low=0,high,k,mid=0,m,seek;
char str[10];
k=count(1);
high=k-1;
sort(); //调用
cout<<"请选择查找方式:"<<endl;
cout<<"1.产品号查找"<<endl;
cout<<"2.产品名查找"<<endl;
cin>>seek;
switch(seek)
{ case 1:
{
cout<<"请输入产品号:";
cin>>m;
while(low<=high) //折半查找
{
mid=(low+high)/2;
if(m==cod[mid].num)
{
FILE *fp;
if((fp=fopen("commodity","r"))==NULL)
{
cout<<"打不开文件."<<endl;
exit(0);
}
fseek(fp,mid*sizeof(struct commodity),0);
fread(&cod[mid],sizeof(struct commodity),1,fp);
fclose(fp);
//
cout<<"所属产品类:";
cout<<cod[mid].kind<<endl;
cout<<"产品号:";
cout<<cod[mid].num<<endl;
cout<<"产品名称:";
cout<<cod[mid].name<<endl;
cout<<"产品总量:"<<cod[mid].count<<endl;
cout<<"进货日期:"<<cod[mid].date<<endl;
cout<<"销出数量:"<<cod[mid].sale<<endl;
cout<<"销售日期:"<<cod[mid].saledate<<endl;
break;
}
else if(m<cod[mid].num)
high=mid-1;
else low=mid+1;
}
if(low!=high)
cout<<"不存在该商品!"<<endl;
break;
}
case 2:
{ FILE *fp;
fp=fopen("产品","r");
cout<<"请输入产品名:"<<endl;
cin>>str;
for(int i=0;fread(&cod[i],sizeof(struct commodity),1,fp);i++)
{
if(strcmp(str,cod[i].name)==0) //是否匹配
{
cout<<"所属产品类:";
cout<<cod[i].kind<<endl;
cout<<"产品号:";
cout<<cod[i].num<<endl;
cout<<"产品名称:";
cout<<cod[i].name<<endl;
cout<<"产品总量:"<<cod[i].count<<endl;
cout<<"进货日期:"<<cod[i].date<<endl;
cout<<"销出数量:"<<cod[i].sale<<endl;
cout<<"销售日期:"<<cod[i].saledate<<endl;
break;
}
}
fclose(fp);
break;
}
default :
cout<<"系统关闭!"<<endl;
break;
}
}
6. 数据结构课程设计(c语言):活期储蓄处理
#include <iostream>
#include <string>
#include <time.h>
using namespace std;
int total; //初始时银行现存资金总额
int closeTime; //营业结束时间
int arriveTime; //两个到达事件之间的间隔上限
int dealTime; //客户之间交易的时间上限
int dealMoney = 30000; //交易额上限
int currentTime = 0; //当前时间
int totalTime = 0; //客户逗留总时间
int counter = 0; //客户总数
int number = 1; //初始客户序列号+
struct service
{
int num; //客户号
string type; //到达或离开
int beginTime;
int endTime;
int money; //正数为存款,负数为取款
service* next;
};
struct queue
{ //队列
service* head;
service* rear;
};
void push(queue &q,int d)
{// 插入元素d为Q的新的队尾元素
service* temp = new service;
temp->money = d;
temp->next = NULL;
if(NULL == q.head)
{//队列为空,初始化
q. head = temp;
q. rear = temp;
}//if
else
{//队列不为空,插入元素d
q. rear->next = temp;
q. rear = q.rear->next;
}//else
}
void pop(queue &q)
{// 若队列不空,出对列函数
service* temp;
temp = q. head;
if(NULL ==q. head->next)
q.head = q. rear =NULL;
else
q. head=q. head->next;
delete temp;
}
service* front(queue &q)
{//返回队首元素
return q. head;
}
service* back(queue &q)
{//返回队尾元素
return q. rear;
}
service* searchAndDel(queue &q,int m)
{//在队列中寻找可处理元素
service* sign = q. head; //标记头节点
service* temp;
while(NULL != q. head)
{
if((-(q. head->money)) <m)
{//队首元素可以处理
if(q. head==q.rear)
{
temp = q. head;
q. head = q. rear = NULL;
return temp;
}//if
else
{//队首元素出列
temp = q. head;
q. head = q. head->next; // 首节点后移一位,返回原首节点
return temp;
}//else
}//while
else
{//队首元首不能被处理
if(q. head == q. rear){}
else
{//首节点移到队列尾部
q. rear->next = q. head;
q. rear = q. rear->next;
q. head =q. head->next;
q. rear->next = NULL;
}//else
}//else
if(q. head == sign)//队列循环一周时停止
return NULL;
}
return NULL;
}
bool state =1; //用于判断是否有窗口在处理
int currentTimeOfDeal = 0;
int theArriveTime = 0;
queue eq; //事件队列
queue fq; //队列一
queue sq; //对列二
//初始化三个队列
void arrive()
{/*"到达"函数 随机产生顾客,进入队列一
产生到达事件 进入事件队列*/
push(fq,(rand()% (2*dealMoney) -dealMoney)); //随机产生顾客加入第一队列
back(fq)->beginTime = currentTime;
back(fq)->num = number;
push(eq,(back(fq)->money)); //将产生事件加入事件队列
back(eq)->beginTime = currentTime;
back(eq)->type = "到达";
back(eq)->num = number;
++number;
}
void putMoney()
{ //存款函数
total += front(fq)->money; //更新资金总额
push(eq,front(fq)->money); //加入事件队列 离开
back(eq)->type = "离开";
back(eq)->num = front(fq)->num;
back(eq)->endTime = (front(fq)->beginTime + rand()%dealTime +1);
++counter; //更新客户总数
totalTime += (back(eq)->endTime - front(fq)->beginTime); //更新逗留时间
pop(fq); //删除第一队列第一个业务
currentTimeOfDeal = back(eq)->endTime;
state =0;
}
void getMoney()
{//取款函数
if( (-fq.head->money) > total )
{//资金短缺 加入第二队列
push( sq,front(fq)->money );
back(sq)->beginTime = front(fq)->beginTime;
back(sq)->num = front(fq)->num;
pop(fq);
}//if
else
{
total += back(fq)->money;
push(eq,front(fq)->money); //加入事件队列 离开
back(eq)->type = "离开";
back(eq)->num = front(fq)->num;
back(eq)->endTime = (front(fq)->beginTime + rand()%dealTime +1);
back(eq)->beginTime = 0;
currentTimeOfDeal = back(eq)->endTime;
++counter; //更新客户总数
totalTime += ( back(eq)->endTime - back(fq)->beginTime ); //更新逗留时间
pop(fq); //删除第一队列第一个业务
state =0;
}//else
}
service* temped ;
int randomTemp;
void findAndDeal()
{//在对列中寻找可处理元素,对其进行处理
while( (temped= searchAndDel(sq,total))&&NULL != temped )
{//查找可处理取款
total += temped->money; //更新资金总额
push(eq,temped->money); //加入事件队列训 离开
back(eq)->type = "离开";
back(eq)->num = temped->num;
randomTemp = rand()%dealTime +1;
back(eq)->endTime = currentTime + randomTemp ;
currentTimeOfDeal += randomTemp;
++counter; //更新客户总数
totalTime += ( back(eq)->endTime - temped->beginTime ); //更新逗留时间
delete temped; //删除节点
temped = NULL;
}
state = 0;
}
int main()
{
printf(" ********************************************\n");
printf(" 欢迎进入银行模拟系统\n");
printf(" ********************************************\n");
printf("1.开始模拟 0.退出\n");
int n;
scanf("%d",&n);
while(n==1)
{
srand(time(NULL)); //初始化随机函数
printf("输入银行的初始存款:\n");
scanf("%d",&total);
printf("输入银行的营业时间:\n");
scanf("%d",&closeTime);
printf("输入最大到达时间间隔:\n");
scanf("%d",&arriveTime);
printf("输入最大的处理时间:\n");
scanf("%d",&dealTime);
theArriveTime +=rand()%arriveTime + 1; //首次到达时间
while(currentTime < closeTime)
{
++currentTime;
if( currentTimeOfDeal < currentTime ) currentTimeOfDeal = currentTime ;
if( currentTimeOfDeal == currentTime ) state = 1;
if( currentTime == theArriveTime ) //到达事件
{
arrive();
theArriveTime +=rand()%arriveTime +1;
}//if
if( 1 == state && NULL != fq.head)
{
if(fq.head->money >= 0)
{
putMoney();
findAndDeal();
}//if
else
getMoney();
}//if
}
cout <<endl<< "客户序列"<<"\t" <<"事件类型"<<"\t\t"<<" 时间"<<"\t"<<" 处理金额"<<endl;
while( NULL != eq.head) //清除事件队列
{
if(eq.head->type=="离开")
cout << eq.head->num<<"\t\t"<<eq.head->type<<"\t\t"<<"\t\t"<<eq.head->endTime<<"\t\t"<<eq.head->money<<endl;
if(eq.head->type=="到达")
cout << eq.head->num<<"\t\t"<<eq.head->type<<"\t\t"<<"\t\t"<<eq.head->beginTime<<"\t\t"<<eq.head->money<<endl;
pop(eq);
}
cout << "未处理客户:" <<""<<endl;
while( NULL != fq.head)
{
totalTime += ( closeTime - fq.head->beginTime ); //更新结束时第一队列中未处理的客户
cout <<fq.head->num <<" "<<endl ;
++counter;
pop(fq);
}//while
cout <<"客户逗留平均时间为: " << totalTime/counter <<endl;
cout<<"银行当前余额:"<<total<<endl;
break;
}//while(n==1)
return 0;
}//maim()
7. 数据结构课程设计~~~~ 求大虾~~~~~!
这个题目,实现起来没那么容易的,图的操作还是比较复杂的。
提供文件形式输入,就是指把需要输入的选项,先保存到文件中,一般是TXT文件,然后程序读取文件加到数据库中。
8. 数据结构课程设计
我这有个停车场管理系统跟你的轮船渡口管理系统差不多!!改一下就能用!!
#include<iostream.h>
#include<string.h>
#include<stdlib.h> //free()函数功能
const int Max_Park=1;
int bian=0;//便道上有多少车
//.................................................................
struct Car
{
char pattent;//车辆类型,a=小轿车,b=客车,c=大卡车
int number;//车辆牌照
int intime;//车进入的时间,用整数表示
};
typedef struct Queue
{
Car car;
Queue*next;
}Queue,*LQueue;//模拟停车场外的便道
typedef struct Stack
{
Car *car;
int top;
}Stack,*LStack;//模拟停车场的栈
//..................................................................
class Road
{
public:
Queue q1;
LQueue q2;
public:
void InitQ(LQueue&Head,LQueue&Rear);//队列的初始化
void InQ(LQueue&Rear,Car pacr);//入队列
void FindQ(LQueue Head,int num);//在便道上查找车辆信息
void OutQ(LQueue Head,int num);//出便道
};//便道类结束
//...................................便道类函数定义
void Road::InitQ(LQueue&Head,LQueue&Rear)
{
Rear->next=NULL;
Head=Rear;
}//队列的初始化
void Road::InQ(LQueue&Rear,Car pacr)
{
LQueue Node=new Queue;
Node->car=pacr;
Node->next=NULL;
Rear->next=Node;
Rear=Rear->next;
bian++;
}//入队列
void Road:: FindQ(LQueue Head,int num)
{
int pos=0;
for(LQueue q=Head;q->next!=NULL;q=q->next,pos++)
{
if(q->next->car.number==num)
{
cout<<"要查找的车在便道"<<pos+1<<"位"<<" 车类型为";
switch(q->next->car.pattent)
{
case'a':cout<<"小轿车";break;
case'b':cout<<"客车";break;
case'c':cout<<"大卡车";break;
}
cout<<"此车进入的时间为"<<q->next->car.intime<<endl;
}
}
cout<<"此车不在停车场!!"<<endl;
}//在便道上查找车辆信息
void Road:: OutQ(LQueue Head,int num)
{
LQueue p=new Queue;
for(LQueue q=Head;q->next!=NULL;q=q->next)
{
if(q->next->car.number==num)
{
p=q->next;
q->next=p->next;
free(p);
bian--;
break;
}
}
}
//........................................................
class Park
{
public:
Stack s1;
Stack s2;
Road R7;
public:
void OutputS(Car e);
void InputS(Car&e);
void InitS(LStack ss1);
Car PopS(LStack ss1);
int PushS(LStack ss1,Car car);
int FindS(LStack ss1,int number);
void InPark(LStack ss1,LQueue &Rear);
void Delete(LStack ss1,LStack ss2,int n);
void OutPark(LStack ss1,LStack ss2,LQueue Head);
void Search(LStack ss1,LQueue Head,LQueue Rear);
};//车位类结束
//......................................车位类函数的定义
void Park::OutputS(Car e)
{
cout<<"这辆车的牌照是:"<<e.number<<endl<<"这辆车的类型是:";
switch(e.pattent)
{
case'a':cout<<"小轿车";break;
case'b':cout<<"客车";break;
case'c':cout<<"大卡车";break;
}
cout<<"进入时间为:"<<e.intime<<endl;
}//查询停车场的车
void Park:: InputS(Car&e)
{
cout<<"请输入此车的类型a=小轿车,b=客车,c=大客车"<<endl;
cin>>e.pattent;
cout<<"请输入此此车的牌照号:"<<endl;
cin>>e.number;
cout<<"请输入入场时间:"<<endl;
cin>>e.intime;
}//进入停车场的车
void Park::InitS(LStack ss)
{
ss->car=new Car[Max_Park];
ss->top=-1;
}//初始化栈
Car Park:: PopS(LStack ss)
{
Car eee=ss->car[ss->top];
ss->top--;
return eee;
}//出栈
int Park::PushS(LStack ss,Car car)
{
if(ss->top<Max_Park-1)
{
ss->top++;
ss->car[ss->top].intime=car.intime;
ss->car[ss->top].number=car.number;
ss->car[ss->top].pattent=car.pattent;
return 0;
}
else
return -1;
}//车位已满,则进入便道
int Park::FindS(LStack ss,int number)
{
for(int i=0;i<=ss->top;i++)
{
if(ss->car[i].number==number)
return i;
}
return -1;//在便道上查找要找的车
}//在车位上查找要找的车辆
void Park::InPark(LStack ss1,LQueue &Rear)
{
Car ee;
InputS(ee);
int n=PushS(ss1,ee);
if(n<0)
{
Car rcar;
rcar.number=ee.number;
rcar.pattent=ee.pattent;
rcar.intime=ee.intime;
R7.InQ(Rear ,rcar);
}
}//车辆进场,有车位如车位,无车位进便道
void Park::Delete(LStack ss1,LStack ss2,int n)
{
int size=ss1->top;
for(int i=0;i<size-n;i++)
PushS(ss2,PopS(ss1));
PopS(ss1);
for( i=0;i<size-n;i++)
PushS(ss1,PopS(ss2));
}//以一个栈为中转,将任意为的车出场
void Park::OutPark(LStack ss1,LStack ss2,LQueue Head)
{
cout<<"请输入要出场的车的车牌号:"<<endl;
int num;
cin>>num;
int nn;
nn=FindS(ss1,num);
if(nn>=0)
{
cout<<"这辆车在车位上"<<endl;
OutputS(ss1->car[nn]);
Delete(ss1,ss2,nn);
if(ss1->top<=Max_Park-1)
if(Head->next!=NULL)
{
cout<<"\n便道上的车要进车位!"<<endl;
LQueue p=new Queue;
p=Head->next;
Head->next=p->next;
PushS(ss1,p->car);
free(p);
bian--;
}
}
else
{
R7.FindQ( Head, num);
R7.OutQ( Head,num);
}
}//输出要出场的车
void Park::Search(LStack ss1,LQueue Head,LQueue Rear)
{
cout<<"停车场中现有"<<ss1->top+1<<"辆车"<<endl;
if(Head==Rear)
cout<<"便道上没有车!"<<endl;
else
cout<<"便道上停了"<<bian<<"辆车"<<endl;
}//输出停车场的车辆信息
//............................................................
void show()
{
cout<<"*********************本停车场信息**************************"<<endl;
cout<<"本停车场共有"<<Max_Park<<"个车位"<<endl;
cout<<"只允许停放小轿车,客车,大卡车"<<endl;
cout<<"车辆进入要做车辆类型,车牌,进入时间的记录"<<endl;
cout<<"***********************************************************"<<endl;
}
/*void choise()
{
if(Max_Park-(ss1->top+1)>0)
{
cout<<"停车场中"<<ss1->top+1<<"辆车"<<endl;
cout<<"还可以停放"<<Max_Park-(ss1->top+1)<<"辆车"<<endl;
}
else
cout<<"\n停车场已满,再来的车只能放在便道上!"<<endl;
cout<<"输入要进行的操作:"<<endl
<<"A=进场"<<endl
<<"D=出场"<<endl
<<"F=查询车辆信息"<<endl
<<"E=结束程序!"<<endl;
}*/
void main()
{
Road R6;
show();
LStack ss1=new Stack;//停车场的栈
LStack ss2=new Stack;//作为车辆中转的栈
LQueue Head=new Queue;//队列的头
LQueue Rear=new Queue;//队列的尾
R6.InitQ( Head, Rear);//队列初始化
Park park;
park.InitS(ss1);
park.InitS(ss2);
while(1)
{
if(Max_Park-(ss1->top+1)>0)
{
cout<<"停车场中"<<ss1->top+1<<"辆车"<<endl;
cout<<"还可以停放"<<Max_Park-(ss1->top+1)<<"辆车"<<endl;
}
else
cout<<"\n停车场已满,再来的车只能放在便道上!"<<endl;
cout<<"输入要进行的操作:"<<endl
<<"A=进场"<<endl
<<"D=出场"<<endl
<<"F=查询车辆信息"<<endl
<<"E=结束程序!"<<endl;
char demand;
cin>>demand;
switch(demand)
{
case 'A':
{
int w=1;
while(w)
{
park.InPark(ss1,Rear);
cout<<"车辆继续进场按1,要进行其他操作按0!"<<endl;
if(Max_Park-(ss1->top+1)>0)
{
cout<<"停车场中"<<ss1->top+1<<"辆车"<<endl;
cout<<"还可以停放"<<Max_Park-(ss1->top+1)<<"辆车"<<endl;
}
else
cout<<"\n停车场已满,再来的车只能放在便道上!"<<endl;
cout<<"输入要进行的操作:"<<endl
<<"A=进场"<<endl
<<"D=出场"<<endl
<<"F=查询车辆信息"<<endl
<<"E=结束程序!"<<endl;
cin>>w;
}
};break;
case 'D': park.OutPark(ss1,ss2, Head);break;
case'F':park.Search(ss1, Head, Rear) ; break;
case'E':exit(0);
}
}
}