停车场管理系统程序设计书 - 图文(5)

2019-03-04 14:40

Enter->top--; }

p=Enter->stack[Enter->top]; /*p是离开车辆的结点*/ Enter->stack[Enter->top]=NULL; /*栈顶为空*/ Enter->top--;

while(Temp->top>=1) {

Enter->top++;

Enter->stack[Enter->top]=Temp->stack[Temp->top];/*把临时栈中的车辆重新开进车站*/

Temp->stack[Temp->top]=NULL; /*临时栈为空*/ Temp->top--; }

PRINT(p);

/*LXY判断通道上是否有车及车站是否已满*/

if((W->head!=W->rear)&&Enter->top

q=W->head->next; /*队列结点中头结点的指针结点*/ t=q->data;/*车辆队列中要出去的结点的数据*/ Enter->top++;

printf(\现在请便道上的车进入车场,该车的车牌号为:\ puts(t->num);

printf(\该车进入车场第%d位置.\

printf(\请输入现在的时间(即该车进站的时间)(小时:分钟):\ scanf(\ fflush(stdin);

do{/*控制到达的时间*/

if(t->reach.hour<0 || t->reach.hour>=24 || t->reach.min<0 || t->reach.min>=60) {

printf(\输入的时间格式有错,请重新输入!\

scanf(\ fflush(stdin); } // else

// break; }

21

while(t->reach.hour<0 || t->reach.hour>=24 || t->reach.min<0 || t->reach.min>=60);

W->head->next=q->next; if(q==W->rear)

W->rear=W->head; Enter->stack[Enter->top]=t; free(q); }

else printf(\目前便道里没有车.\\n\ }

/*车场没车*/

else printf(\目前车场里没有车,来车请直接进入车场!\\n\ }

void Leave(SeqStackCar *Enter,SeqStackCar *Temp,LinkQueueCar *W,int n) //车辆离开 {

int i, room;//room为要输出的位置

CarNode *p,*t; //车辆本生的结点是p,车辆在队列中的结点是t QueueNode *q; //判断车场内是否有车,队列结点q if(Enter->top>0) //车场有车 {

while(1) //输入离开车辆的信息 {

printf(\请输入要离开的车在车场的位置/1--%d/:\ scanf(\ fflush(stdin);

if(room>=1&&room<=Enter->top) break; }

while(Enter->top>room) //车辆离开* {

Temp->top++;

Temp->stack[Temp->top]=Enter->stack[Enter->top];//把剩余的车辆退出车站并送入临时栈内

Enter->stack[Enter->top]=NULL;//栈顶为空 Enter->top--; }

p=Enter->stack[Enter->top]; //p是离开车辆的结点 Enter->stack[Enter->top]=NULL; //栈顶为空

22

Enter->top--;

while(Temp->top>=1) {

Enter->top++;

Enter->stack[Enter->top]=Temp->stack[Temp->top];//把临时栈中的车辆重新开进车站

Temp->stack[Temp->top]=NULL; //临时栈为空 Temp->top--; }

PRINT(p);

//LXY判断通道上是否有车及车站是否已满

if((W->head!=W->rear)&&Enter->top

q=W->head->next; //队列结点中头结点的指针结点 t=q->data;//车辆队列中要出去的结点的数据 Enter->top++;

printf(\现在请便道上的车进入车场,该车的车牌号为:\ puts(t->num);

printf(\该车进入车场第%d位置.\

printf(\请输入现在的时间(即该车进站的时间)(小时:分钟):\ scanf(\ fflush(stdin);

do{//控制到达的时间

if(t->reach.hour<0 || t->reach.hour>=24 || t->reach.min<0 || t->reach.min>=60) {

printf(\输入的时间格式有错,请重新输入!\

scanf(\ fflush(stdin); } else

break; }

while(t->reach.hour<0 || t->reach.hour>=24 || t->reach.min<0 || t->reach.min>=60);

W->head->next=q->next; if(q==W->rear)

W->rear=W->head;

23

Enter->stack[Enter->top]=t; free(q); }

else printf(\目前便道里没有车.\\n\ }

//车场没车

else printf(\目前车场里没有车,来车请直接进入车场!\\n\ }

void List1(SeqStackCar *S) //列表显示车场存车信息 {

int i;

if(S->top>0) //判断车站内是否有车 {

printf(\车场:\

printf(\位置||到达时间||车牌号\\n\ for(i=1;i<=S->top;i++) {

printf(\ %d \ printf(\ %d:%d

\ puts(S->stack[i]->num); } }

else printf(\目前车场里没有车\}

void List2(LinkQueueCar *W)//LXY列表显示便道信息 {

QueueNode *p; p=W->head->next;

if(W->head!=W->rear) //判断通道上是否有车 {

printf(\目前正在等待车辆的号码为:\\n\ while(p!=NULL) {

puts(p->data->num); p=p->next; printf(\ }

24

}

else printf(\目前便道里没有车.\}

void List(SeqStackCar S,LinkQueueCar W) {

int tag; /*tag为(1-3)的选择*/ int flag=1;/*flag判断返回主菜单*/ while(flag) {

printf(\车场\\n2.便道\\n3.返回\\n\ while(1) {

printf(\请选择 1|2|3:\ scanf(\ fflush(stdin); do{

if(tag<1||tag>3) {

printf(\输入有误,请按要求重新输入:\ scanf(\ fflush(stdin); } else

break; }

while(tag>3 && tag<1);break;/*直到输出的tag是正确的值*/ }

switch(tag) {

case 1:List1(&S);break; /*列表显示车场信息*/ case 2:List2(&W);break; /*列表显示便道信息*/ case 3:flag=0;break;/*返回*/ default: break; } } }

void main() {

25


停车场管理系统程序设计书 - 图文(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:最新北师大版初一数学七年级下册第一章整式的乘除导学案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: