亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? the car stop.cpp

?? 停車場是一條可以停放n輛車的狹窄通道
?? CPP
字號:
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<iostream.h>

#define OK 1
#define ERROR 0
#define OVERFLOW -2

typedef int status;

typedef struct{
  char type;
  char num[5];
  int time;
}ElemType,*LElemType;

typedef struct{
 LElemType base;
 LElemType top;
 int stacksize;
} sqstack;     //存儲車場停車信息的棧


typedef struct QNode{
  ElemType data;
  struct QNode *next;
}QNode,*Queueptr;  

typedef struct{
 Queueptr front;
 Queueptr rear;
} LinkQueue;    //存儲便道停車信息的隊列

typedef struct LNode{
 char ch[5];
 struct LNode *next;
}LNode,*ListType;

typedef struct{
 ListType head,tail;
 int size;
} tagList;     //存儲場內車牌號的鏈表

//全局變量
sqstack garage,giveway;
LinkQueue waitway;
LElemType elem;
tagList L;
int n,i=1,j=1;

status InitStack(sqstack &s,int n);
status Push(sqstack &s,ElemType e);
status Pop(sqstack &s,ElemType &e);
status InitQueue(LinkQueue &Q);
status Gethead(LinkQueue s,ElemType &e);
status EnQueue(LinkQueue &Q,ElemType e);
status DeQueue(LinkQueue &Q,ElemType &e);
status DestroyQueue(LinkQueue &Q);
status InitList(tagList &L);
status MakeNode(ListType t,char &c);
status Insert(tagList &L,ListType t);
status judgenum(char num[]);
void printmessage();
void DeleteL(char num[]);
void count(LElemType q,char wh);
void Readmessage(char &c);
void Interpret(char c);

status InitStack(sqstack &s,int n)
{ s.base=(LElemType)malloc(n*sizeof(ElemType));
  if(!s.base) exit(OVERFLOW);
  s.top=s.base;
  s.stacksize=n;
  return OK;
}


status Push(sqstack &s,ElemType e)
{ *s.top=e;
   s.top++;
  return OK;
}

status Pop(sqstack &s,ElemType &e)
{if(s.top==s.base) return ERROR;
e=*--s.top;
return OK;
}

status InitQueue(LinkQueue &Q)
{ Q.front=Q.rear=(Queueptr)malloc(sizeof(QNode));
  if(!Q.front) exit(OVERFLOW);
  Q.front->next=NULL;
  return OK;
}

status DestroyQueue(LinkQueue &Q)
{ while(Q.front){
	Q.rear=Q.front->next;
	free(Q.front);
	Q.front=Q.rear;
}
return OK;
}


/*status Gethead( LinkQueue s,ElemType &e)
{ if(s.front==s.rear) return ERROR;
  e=s.front->data;
  return OK;
}*/

status EnQueue(LinkQueue &Q,ElemType e)
{ Queueptr p;
  Q.rear->data=e;
  p=(Queueptr)malloc(sizeof(QNode));
  if(!p) exit(OVERFLOW);
  p->next=NULL;
  Q.rear->next=p;
  Q.rear=p;
  return OK;
}

status DeQueue(LinkQueue &Q,ElemType &e)
{ if(Q.front==Q.rear) return ERROR;
  Queueptr p=Q.front;
  e=p->data;
  Q.front=p->next;
  if(Q.rear==p->next) Q.rear=Q.front;
  free(p);
  return OK;
}

status InitList(tagList &L)
{ L.head=new(LNode);
  L.tail=L.head;
  L.size=0;
  for(int i=0;i<5;i++)
	  L.head->ch[i]='0';
  return OK;
}

status MakeNode(ListType t,char c[])
{ for(int i=0;i<5;i++)
     t->ch[i]=c[i];
  t->next=NULL;
  return OK;
}

status Insert(tagList &L,ListType t)
{ L.tail->next=t;
  L.tail=t;
  L.tail->next=NULL;
  return OK;
}

status judgenum(char num[])
{ int i=0;
  ListType q=NULL;
  if(L.size>0) q=L.head->next;
  while(q)
  { if(strcmp(num,q->ch)) i=1;
    q=q->next;
  }
  return i;
}

void DeleteL(char num[])
{ ListType q=L.head->next,R=L.head;
  while(q)
  { if(!strcmp(q->ch,num))
  { R->next=q->next;
    if(q==L.tail) L.tail=R;
	delete(q);
	q=R->next;
	L.size--;
  }
  else {R=R->next;q=q->next;}
  }
}

void count(ElemType q,char wh) 
{ cout<<endl;
  cout<<"車    型:  ";
  if(q.type=='p')
  {cout<<"客車                 ";
   cout<<"收費標準:  ";
   if(wh=='g')  cout<<"0.15";
      else cout<<"0.075";
   cout<<"  元/分鐘        "<<endl;
  }
     else if(q.type=='t')
	 { cout<<"卡車                  ";
	   cout<<"收費標準:  ";
	   if(wh=='g')  cout<<"0.3";
           else cout<<"0.15";
	   cout<<"  元/分鐘        "<<endl;
	 }
	   else { cout<<"小汽車                ";
	          cout<<"收費標準:  ";
		   	  if(wh=='g')  cout<<"0.1";
                  else cout<<"0.05";
			  cout<<"  元/分鐘        "<<endl;
	   }
  
  cout<<"停車時間:  "<<elem->time-q.time<<"   分鐘           ";
  cout<<"   收費金額:  ";
  if(wh=='g')
  {  if(q.type=='p')
		   cout<<0.15*(elem->time-q.time)<<"  元";
         else if(q.type=='t')
              cout<<0.30*(elem->time-q.time)<<"  元";
             else cout<<0.1*(elem->time-q.time)<<"  元";
		 
  }
  else { if(q.type=='p')
		   cout<<0.075*(elem->time-q.time)<<"  元";
         else if(q.type=='t')
              cout<<0.15*(elem->time-q.time)<<"  元";
             else cout<<0.05*(elem->time-q.time)<<"  元";
  }
  cout<<endl;
  cout<<"-----------------------------------------------------------------------------"<<endl;
}


int main()
{ 
  char c='E';
  elem=new(ElemType);
  elem->time=0;
  printmessage();
  InitList(L);
  cout<<"請輸入車場總車位數:";
  cin>>n;
  InitStack(garage,n);
  InitQueue(waitway);
  do{
	  Readmessage(c);
	  Interpret(c);
  }while(c!='E');
  return 0;
}

void printmessage()
{
 printf("\n");
 printf("*******************************停車場管理操作程序*******************************\n");
 printf("設計者:TILL      專業:軟件工程      學號:20052110010829    日期:26/12/2006\n");				   ;
 printf("--------------------------------------------------------------------------------\n");
 printf("程序功能:\n");
 printf("請用戶按提示信息輸入!\n");
 printf("--------------------------------------------------------------------------------");
}

void Readmessage(char &c)
{ 
  char h;
  char num[5];
  int time=0;
again1:;
  cout<<"\n請輸入車輛的情況,'A'代表進站,'D'代表出站,'E'代表結束:";
  cin>>c;
  if(c!='A'&&c!='D'&&c!='E')
  { cout<<"輸入不正確,請按要求重新輸入!"<<endl;goto again1;}
  if(c=='D') {cout<<endl;goto again3;}
  if(c=='E') goto end;
  cout<<endl;
again2:; 
  cout<<"請輸入該車的類型,'p'代表客車,'t'代表卡車,'c'代表小汽車:";
  cin>>h;
  if(h!='p'&&h!='t'&&h!='c')
  { cout<<"輸入不正確,請按要求重新輸入!"<<endl;goto again2;}
  elem->type=h;
  cout<<endl;
again3:;
   cout<<"請輸入該車的車牌:";
   cin>>num;
   if(c!='D')
   {if(judgenum(num)) {cout<<"該車牌已存在!請重新輸入!"<<endl;goto again3;}
     else { ListType s;
            s=new(LNode);
		    MakeNode(s,num);
		    Insert(L,s);
	 }
   }
  strcpy(elem->num,num);
  cout<<endl;
again4:;
  if(c=='A') cout<<"請輸入該車進車場時間:";
      else cout<<"請輸入該車出車場的時間:";
  cin>>time;
  if(time<=elem->time)
  { cout<<"時間必須遞增!請重新輸入!"<<endl;
    goto again4;
  }
  elem->time=time;
  cout<<endl;
end:;
}

void Interpret(char c)
{ if(c=='A')
{if(garage.top-garage.base<garage.stacksize)
   { Push(garage,*elem);
     cout<<"請停在車場第 "<< i<<" 號車位!"<<endl;
     i++;
   }
  else{ EnQueue(waitway,*elem);
        cout<<"請停在便道!"<<endl;
        j++;
  }
}
      else if(c=='D')
	  { int k=1;
	    LElemType s,g;
        ElemType e;
		Queueptr q;
		char wh='g';
		s=garage.base;
		while(strcmp(s->num,elem->num)&&k<i)
		{ s++;k++;}
		if(k>=i)
		{ q=waitway.front;
		  k=1;
		  while(strcmp(s->num,elem->num)&&k<j)
		  { q++;k++;}
		  if(k<j) wh='w';
		    else wh='n';
		}
		//計算停車費
		if(wh=='g') 
		{ cout<<"-----------------------------------該車在車場內--------------------------------"<<endl;
		  count(*s,wh);
		}
		   else if(wh=='w') 
		   { cout<<"-----------------------------------該車在便道內---------------------------------"<<endl;
		      count(q->data,wh);
		   }
		        else { cout<<"該車沒在停車場內!"<<endl;goto end;}
       //讓路情況
		if(wh=='g')     //從車場開走
		{ i--;
		  DeleteL(s->num);
		  if(++s!=garage.top)
		  { 
		    giveway.base=s;
		    giveway.top=garage.top;
		    giveway.stacksize=giveway.top-giveway.base;
		    cout<<"為該車讓路,須從入口退出車場的車輛順序:"<<endl;
		    g=giveway.top; 
			while(g!=giveway.base)
			{ g--;
			  cout<<"   "<<g->num;
		 	}
			cout<<endl;
		    
		  }
		      else cout<<"不必讓路,該車可直接從車場開走!"<<endl;
		  s--;
          g=giveway.base; 
		  while(g!=giveway.top)
			{*s=*g;s++;g++;}
		  garage.top--;
		  
		  if(waitway.front!=waitway.rear) //便道上的車輛數目不為零
			{  if(DeQueue(waitway,e))
		          Push(garage,e);
		       cout<<"######請便道內車牌為 "<<e.num<<" 的車進車場,停在第"<<i<<"號車位!######"<<endl;
			   j--;
			   i++;
			}
		}
		
		else if(wh=='w')        //從便道上開走
		{ j--;
		  DeleteL(s->num);
		  if(q!=waitway.front)
		  {
		   LinkQueue Q;
		   InitQueue(Q);
		   Queueptr p=waitway.front;
		   do{ EnQueue(Q,p->data);  //copy它前面的車輛情況
		      p=p->next;
		   }while(p->next!=q);
		   p=waitway.front;
		   Queueptr M=q->next;            
		   do{ p->data=M->data;
		       p=p->next;
			   M=M->next;
		   }while(M);
           cout<<"便道上為該車讓路的車輛順序:";
		   Queueptr N=Q.front;
		   do{ cout<<"  "<<N->data.num; 
			   p->data=N->data;
		       p=p->next;
               N=N->next;
		   }while(N!=Q.rear);
		   DestroyQueue(Q);
		   delete(waitway.rear);
		   waitway.rear=p;
		  }
		}
		else cout<<"不必讓路,該車可直接從便道開走!"<<endl;
	  }
end:;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩一卡二卡三卡| 亚洲品质自拍视频| 看国产成人h片视频| 欧美一级日韩不卡播放免费| 欧美a级一区二区| 国产亚洲欧美色| 丰满少妇久久久久久久| 亚洲欧美综合网| 欧美日韩在线三级| 蜜乳av一区二区| 国产日韩精品一区二区三区在线| 不卡视频在线观看| 亚洲午夜免费视频| 日韩精品一区二区三区在线播放| 国产在线视频一区二区三区| 性做久久久久久| 处破女av一区二区| 一道本成人在线| 亚洲欧美影音先锋| 国产一区日韩二区欧美三区| 欧美电影在哪看比较好| 五月开心婷婷久久| 国产精品亚洲一区二区三区妖精| 中文字幕中文在线不卡住| a在线欧美一区| 亚洲妇熟xx妇色黄| 国产视频一区在线播放| 欧美午夜片在线观看| 国产精品一区二区91| 亚洲一二三专区| 国产人妖乱国产精品人妖| 在线影视一区二区三区| 日韩一区二区三区观看| 欧美国产在线观看| 欧美伊人久久久久久久久影院| 精品一区二区三区蜜桃| 国产精品三级久久久久三级| 欧美一区二区大片| 91欧美一区二区| 久久99精品久久久久久国产越南 | 国产精品自拍网站| 一区二区三区在线播放| 国产视频一区二区在线观看| 91精品国产综合久久蜜臀| 精品久久久久久综合日本欧美| 一本一道久久a久久精品| 激情综合色综合久久综合| 亚洲va韩国va欧美va精品| 中文字幕精品一区二区精品绿巨人| 欧美福利一区二区| 在线视频一区二区三区| 波多野结衣亚洲| 国产大陆a不卡| 国产在线精品一区二区| 三级欧美韩日大片在线看| 午夜精品久久一牛影视| 国产高清不卡一区| 欧美吞精做爰啪啪高潮| 国产99精品国产| 黄色精品一二区| 蜜臀国产一区二区三区在线播放 | 国产精品国产自产拍高清av | 国产成人在线视频免费播放| 日韩高清不卡一区二区三区| 一区二区在线观看免费| 国产精品萝li| 国产精品家庭影院| 欧美激情一区二区三区| 国产日韩欧美不卡在线| 久久精品水蜜桃av综合天堂| 精品国产污污免费网站入口| 69堂成人精品免费视频| 这里是久久伊人| 在线成人av影院| 欧美一区二区三区小说| 日韩欧美国产一区在线观看| 欧美精品久久一区二区三区| 欧美日韩精品欧美日韩精品一 | 国产成人免费在线视频| 国产精选一区二区三区| 国产主播一区二区三区| 国产麻豆91精品| 成人永久看片免费视频天堂| 91精品国产综合久久精品| 欧美一区二区三区视频| 欧美日韩精品一区视频| 成人网页在线观看| 欧美一卡二卡三卡四卡| 51精品秘密在线观看| 欧美一区二区三区视频免费播放 | 中文字幕在线一区免费| 亚洲国产精品黑人久久久| 亚洲婷婷综合色高清在线| 亚洲精品一二三区| 日韩国产在线一| 国产一区二区三区香蕉| 夫妻av一区二区| 欧美三级资源在线| 欧美一区二区成人| 国产日韩欧美不卡在线| 亚洲自拍偷拍av| 麻豆精品一二三| 国产69精品久久99不卡| 91亚洲国产成人精品一区二区三| 欧美探花视频资源| 欧美精品一区二区三区一线天视频 | 国产精品免费免费| 一区二区三区视频在线观看| 日韩av二区在线播放| 精彩视频一区二区三区| 色婷婷综合久色| 91精品国产入口在线| 日韩国产精品久久久久久亚洲| ww久久中文字幕| 精品日韩一区二区三区 | 欧美日韩一区二区在线观看| 亚洲精品videosex极品| 视频在线观看一区| 国产精品亚洲人在线观看| 欧美午夜在线一二页| 精品国产网站在线观看| 亚洲精品国产一区二区三区四区在线| 蜜桃视频在线观看一区二区| 成人avav影音| 精品久久国产老人久久综合| 亚洲免费观看在线观看| 精品一区免费av| 欧美三级电影在线观看| 国产欧美日韩精品在线| 日本成人中文字幕在线视频| 成人app下载| 久久综合精品国产一区二区三区| 一区二区三区中文在线| 成人午夜电影网站| 日韩欧美www| 亚洲一区二区三区自拍| 成人高清免费观看| 久久综合av免费| 日韩av在线播放中文字幕| 一本色道亚洲精品aⅴ| 日本一区二区三区国色天香| 麻豆精品在线播放| 欧美精品丝袜中出| 一区二区三区免费看视频| 国产成人久久精品77777最新版本 国产成人鲁色资源国产91色综 | 国产精品福利一区| 六月婷婷色综合| 91精品国产一区二区三区| 一区二区三区欧美亚洲| 波波电影院一区二区三区| 久久综合中文字幕| 另类中文字幕网| 欧美一区二区三级| 天天做天天摸天天爽国产一区| 国产三级一区二区三区| 免费成人av在线播放| 欧美午夜宅男影院| 亚洲国产另类av| 在线观看视频91| 亚洲国产精品久久久久秋霞影院| 色综合久久综合网97色综合| 国产精品久久久久精k8| 99久久精品久久久久久清纯| 国产亚洲综合在线| 国产精品影视网| 国产日韩欧美在线一区| 粉嫩嫩av羞羞动漫久久久| 国产性做久久久久久| 国产成人亚洲综合a∨猫咪| 国产亚洲欧美在线| 成人黄色在线看| 日韩毛片一二三区| 色老头久久综合| 天天综合色天天| 欧美一二三区在线观看| 另类成人小视频在线| 精品国产免费人成电影在线观看四季 | 99久久婷婷国产精品综合| 中文字幕在线不卡视频| 91成人国产精品| 日本视频在线一区| 欧美videos大乳护士334| 国产激情一区二区三区桃花岛亚洲| 久久无码av三级| 91亚洲精品乱码久久久久久蜜桃| 亚洲女同一区二区| 欧美乱妇一区二区三区不卡视频| 久久99精品网久久| 国产精品毛片高清在线完整版| 色综合久久久网| 日韩国产精品大片| 国产欧美日韩激情| 色综合天天综合网国产成人综合天 | 国产亚洲短视频| 国产成人av一区| 亚洲国产一区二区三区青草影视| 91麻豆精品91久久久久同性| 久久国产麻豆精品| 综合久久国产九一剧情麻豆| 欧美日韩一区国产|