⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 text1.c

📁 一个销售的c语言停车场收费系统课程设计停车场收费系统课程设计
💻 C
字号:
#include"stdio.h"    
   
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; ?<<elem- cout<<?停车时间: } ?<<endl; 分钟 元 cout<<? cout<<?0.05?; else cout<<?0.1?; if(wh="='g')" ?; cout<<?收费标准: cout<<?小汽车 { cout<<?0.15?; cout<<?0.3?; cout<<?卡车 if(q.type="='p')" cout<<?0.075?; {cout<<?客车 型: cout<<?车>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; } { elem- elem="new(elemType);" n; int ; c="e" char main() cout<<endl; cout<<?-?; for(n="1;n<80;n++)">time=0;   
  printmessage();   
  InitList(L);   
  cout<<"    1.请输入车场总车位数:";   
  cin>>n;   
  InitStack(garage,n);   
  InitQueue(waitway);   
  do{   
      Readmessage(c);   
      Interpret(c);   
  }while(c!='e');   
  return 0;   
}   
   
void printmessage()   
{   
 printf("\n");   
 for(n=1;n<80;n++)   
 printf("-");   
 printf("\n");   
 printf("    广  东  工  业  大  学  停  车  场  自  动  模  拟  管  理  系  统");   
 printf("\n");   
 for(n=1;n<80;n++)   
 printf("-");   
 printf("\n\n");   
 printf("                          请用户按提示信息输入:\n");   
 for(n=1;n<80;n++)   
 printf("-");   
}   
   
void Readmessage(char &c)   
{    
  char h;   
  char num[5];   
  int time=0;   
again1:;   
  cout<<"\n   2.请输入车辆的情况,'a'代表进站,'d'代表出站,'e'代表结束:";   
  cin>>c;   
  if(c!='a'&&c!='d'&&c!='e')   
  { cout<<"   输入不正确,请按要求重新输入!"<<ENDL;GOTO cout<<? cout<<endl; cin 3.请输入该车的类型,?p?代表客车,?t?代表卡车,?c?代表小汽车:?; again2:; end; goto if(c="='d')" again3;} {cout<<endl;goto again1;}>>h;   
  if(h!='p'&&h!='t'&&h!='c')   
  { cout<<"   输入不正确,请按要求重新输入!"<<ENDL;GOTO elem- again2;}>type=h;   
  cout<<ENDL; cout<<? cin 4.请输入该车的车牌:?; again3:;>>num;   
   if(c!='d')   
   {if(judgenum(num)) {cout<<"   该车牌已存在!请重新输入!"<<ENDL;GOTO } else { again3;} strcpy(elem- Insert(L,s); MakeNode(s,num); s="new(LNode);" s; ListType>num,num);   
  cout<<ENDL; cout<<? else cin if(c="='a')" 5.请输入该车出车场的时间:?; 5.请输入该车进车场时间:?; again4:;>>time;   
  if(time<=elem->time)   
  { cout<<"   时间必须递增!请重新输入!"<<ENDL; } elem- goto again4;>time=time;   
  cout<<ENDL; } cout<<? else { int ; char if(c="='a')" s="garage.base;" while(strcmp(s- wh="g" q; Queueptr e; elemType s,g; LelemType k="1;" j++; ----------?; 请停在便道!?<<endl; enQueue(waitway,*elem); else{ i++; ---------------------------?; 号车位!?<<endl; i<<? ?<< 请停在车场第 Push(garage,*elem); {if(garage.top-garage.base<garage.stacksize) c) Interpret(char void end:;>num,elem->num)&&k<I) { if(k s++;k++;}>=i)   
        { q=waitway.front;   
          k=1;   
          while(strcmp(s->num,elem->num)&&k<J) } else if(wh="='g')" { ; wh="w" count(q- cout<<?-----------------------------------该车在便道内---------------------------------?<<endl; count(*s,wh); cout<<?-----------------------------------该车在车场内--------------------------------?<<endl; 计算停车费 if(k<j) q++;k++;}>data,wh);   
          }   
                else { cout<<"   该车没在停车场内!"<<ENDL<< if(wh="='g')" { deleteL(s- i--; 从车场开走 让路情况 end;} _________________?<<endl;goto ?>num);   
          if(++s!=garage.top)   
          {    
            giveway.base=s;   
            giveway.top=garage.top;   
            giveway.stacksize=giveway.top-giveway.base;   
            cout<<"   为该车让路,须从入口退出车场的车辆顺序: ";   
            g=giveway.top;    
            while(g!=giveway.base)   
            { g--;   
              cout<<"   "<<G->num;   
            }   
            cout<<ENDL; } ?<<endl; cout<<? else if(wh="='w')" { i++; deleteL(s- j--; 从便道上开走 ______________________________________________________?<<endl; 的车进车场,停在第?<<i<<?号车位! ?<<e.num<<? 请便道内车牌为 Push(garage,e); if(deQueue(waitway,e)) 便道上的车辆数目不为零 if(waitway.front!="waitway.rear)" garage.top--; {*s="*g;s++;g++;}" while(g!="giveway.top)" g="giveway.base;" s--; 不必让路,该车可直接从车场开走!?<<endl;>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<<"   便道上为该车让路的车辆顺序: ";   
           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:; pre }<>  
<SCRIPT src="/inc/gg_read2.js"></SCRIPT>  

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -