亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

C語(yǔ)言設(shè)計(jì)圖書(shū)登記系統(tǒng)與停車場(chǎng)管理系統(tǒng)的實(shí)例分享

 更新時(shí)間:2016年06月06日 16:13:20   作者:hackbuteer1  
這篇文章主要介紹了C語(yǔ)言設(shè)計(jì)圖書(shū)登記系統(tǒng)與停車場(chǎng)管理系統(tǒng)的實(shí)例分享,重在以最簡(jiǎn)單的一些需求來(lái)展示管理系統(tǒng)的設(shè)計(jì)思路,需要的朋友可以參考下

圖書(shū)登記管理系統(tǒng)

圖書(shū)登記管理系統(tǒng)應(yīng)該具有下列功能:
(1)、 通過(guò)鍵盤輸入某本圖書(shū)的信息;
(2) 、給定圖書(shū)編號(hào),顯示該本圖書(shū)的信息;
(3) 、給定作者姓名,顯示所有該作者編寫(xiě)的圖書(shū)信息;
(4) 、給定出版社,顯示該出版社的所有圖書(shū)信息;
(5) 、給定圖書(shū)編號(hào),刪除該本圖書(shū)的信息;
(6) 、提供一些統(tǒng)計(jì)各類信息的功能。

程序完整的實(shí)現(xiàn)代碼如下:

#include "stdio.h" 
#include "stdlib.h" 
#include "string.h" 
typedef struct book 
{ 
  int book_id;     //圖書(shū)編號(hào) 
  char book_name[20];  //圖書(shū)名字 
  char name[20];    //作者姓名 
  char press[20];    //出版社 
  struct book *next; 
}book; 
book *head=NULL; 
int length;  //鏈表的長(zhǎng)度 
 
void create() 
{ 
  book *p1,*p2; 
  length=0; 
  p1=(book *)malloc(sizeof(book)); 
  p1->book_id=-1; 
  if(head==NULL) 
    head=p1; 
  printf("請(qǐng)輸入圖書(shū)的編號(hào)、名字、作者姓名、出版社信息:\n"); 
  while(1) //圖書(shū)編號(hào)為0的時(shí)候退出 
  { 
    p2=(book *)malloc(sizeof(book)); 
    scanf("%d %s %s %s",&p2->book_id,p2->book_name,p2->name,p2->press); //輸入圖書(shū)信息 
    if(p2->book_id==0) 
    { 
      printf("圖書(shū)信息輸入完成!\n"); 
      break; 
    } 
    length++; //鏈表的長(zhǎng)度 
    p1->next=p2; 
    p2->next=NULL; 
    p1=p1->next; 
  } 
  return ; 
} 
 
void display() 
{ 
  book *p=head->next; 
  printf("鏈表中所有的圖書(shū)信息如下:\n"); 
  while(p!=NULL) 
  { 
    printf("%d %s %s %s\n",p->book_id,p->book_name,p->name,p->press); 
    p=p->next; 
  } 
  return ; 
} 
void search() 
{ 
  int num,x,flag1=0,flag2=0; 
  char name[20],press[20]; 
  book *p=head->next; 
  printf("1、根據(jù)圖書(shū)編號(hào)進(jìn)行查找\n"); 
  printf("2、根據(jù)作者姓名進(jìn)行查找\n"); 
  printf("3、根據(jù)出版社進(jìn)行查找\n"); 
  printf("請(qǐng)選擇功能:"); 
  scanf("%d",&x); 
  if(x==1) 
  { 
    printf("需要查找的圖書(shū)編號(hào)為:"); 
    scanf("%d",&num); 
 
    while(p!=NULL) 
    { 
 
      if(p->book_id==num) 
      { 
        printf("圖書(shū)編號(hào)為%d的圖書(shū)的信息如下:\n",num); 
        printf("%d %s %s %s\n",p->book_id,p->book_name,p->name,p->press); 
        return; 
      }   
      p=p->next; 
    } 
    if(p==NULL) 
      printf("無(wú)此記錄!\n"); 
  } 
  else if(x==2) 
  { 
    printf("需要查找的作者姓名為:"); 
    scanf("%s",name); 
    while(p!=NULL) 
    { 
      if(strcmp(p->name,name)==0) 
      { 
        if(flag1==0) 
          printf("作者%s編寫(xiě)的圖書(shū)信息如下:\n",name); 
        flag1=1; 
        printf("%d %s %s %s\n",p->book_id,p->book_name,p->name,p->press); 
      } 
      p=p->next; 
    } 
    if(flag1==0) 
      printf("圖書(shū)館沒(méi)有作者%s編寫(xiě)的圖書(shū)!\n",name); 
  } 
  else if(x==3) 
  { 
    printf("需要查找的出版社為:"); 
    scanf("%s",press); 
    while(p!=NULL) 
    { 
      if(strcmp(p->press,press)==0) 
      { 
        if(flag2==0) 
          printf("出版社為%s編寫(xiě)的圖書(shū)信息如下:\n",press); 
        flag2=1; 
        printf("%d %s %s %s\n",p->book_id,p->book_name,p->name,p->press); 
      } 
      p=p->next; 
    } 
    if(flag2==0) 
      printf("圖書(shū)館沒(méi)有出版社%s編寫(xiě)的圖書(shū)!\n",press); 
  } 
  return ; 
} 
 
void Delete() 
{ 
  int num; 
  book *p,*q; 
  q=head,p=head->next; 
  printf("請(qǐng)輸入要?jiǎng)h除的圖書(shū)編號(hào):\n"); 
  scanf("%d",&num); 
 
  while(p!=NULL) 
  { 
    if(p->book_id==num) 
    { 
      q->next=p->next; 
      free(p); 
      length--; 
      printf("刪除成功!\n"); 
      return ; 
    } 
    p=p->next; 
    q=q->next; 
  } 
  if(p==NULL) 
  { 
    printf("找不到要?jiǎng)h除的圖書(shū)編號(hào)!\n"); 
    return ; 
  } 
} 
void menu() 
{ 
  printf("________________________________________________________________\n"); 
  printf("|        圖書(shū)登記管理系統(tǒng)                |\n"); 
  printf("|        0、 退出系統(tǒng)                  |\n"); 
  printf("|        1、 輸入圖書(shū)信息                |\n"); 
  printf("|        2、 顯示圖書(shū)信息                |\n"); 
  printf("|        3、 查詢圖書(shū)信息                |\n"); 
  printf("|        4、 刪除圖書(shū)信息                |\n"); 
  printf("________________________________________________________________\n"); 
  return ; 
} 
int main(void) 
{ 
  int a; 
  menu(); 
  while(1) 
  { 
    printf("請(qǐng)選擇相應(yīng)的功能:"); 
    scanf("%d",&a); 
    switch(a) 
    { 
    case 0: 
      return 0; 
    case 1: 
      create(); 
      menu(); 
      break; 
    case 2: 
      if(head) 
      { 
        display(); 
        menu(); 
      } 
      else 
      { 
        printf("圖書(shū)信息為空,請(qǐng)先輸入圖書(shū)信息!\n"); 
        menu(); 
      } 
      break; 
    case 3: 
      if(head) 
      { 
        search(); 
        menu(); 
      } 
      else 
      { 
        printf("圖書(shū)信息為空,請(qǐng)先輸入圖書(shū)信息!\n"); 
        menu(); 
      } 
      break; 
    case 4: 
      if(head) 
      { 
        Delete(); 
        menu(); 
      } 
      else 
      { 
        printf("圖書(shū)信息為空,請(qǐng)先輸入圖書(shū)信息!\n"); 
        menu(); 
      } 
      break; 
    default: 
      break; 
    } 
  } 
  system("pause"); 
  return 0; 
} 


停車場(chǎng)管理系統(tǒng)
設(shè)停車場(chǎng)是一個(gè)可停放n輛汽車的狹長(zhǎng)通道,且只有一個(gè)大門可供汽車進(jìn)出。汽車在停車場(chǎng)內(nèi)按車輛到達(dá)時(shí)間的先后順序,依次由北向南排列(大門在最南端,最先到達(dá)的第一輛車停放在停車場(chǎng)的最北端),若停車場(chǎng)內(nèi)已停滿n輛汽車,則后來(lái)的汽車只能在門外的便道上等候,一旦有車開(kāi)走,則排在便道上的第一輛車即可開(kāi)入;當(dāng)停車場(chǎng)內(nèi)某輛車要離開(kāi)時(shí),在它之后進(jìn)入的車輛必須先退出車場(chǎng)為它讓路,待該輛車開(kāi)出大門外,其他車輛再按原次序進(jìn)入車場(chǎng),每輛停放在車場(chǎng)的車在它離開(kāi)停車場(chǎng)時(shí)必須按它停留的時(shí)間長(zhǎng)短交納費(fèi)用。試為停車場(chǎng)編制按上述要求進(jìn)行管理的模擬程序。
基本要求:
以棧模擬停車場(chǎng),以隊(duì)列模擬車場(chǎng)外的便道,按照從終端讀入的輸入數(shù)據(jù)序列進(jìn)行模擬管理。每一組輸入數(shù)據(jù)包括三個(gè)數(shù)據(jù)項(xiàng):汽車“到達(dá)”或“離去”信息、汽車牌照號(hào)碼以及到達(dá)或離去的時(shí)刻。對(duì)每一組輸入數(shù)據(jù)進(jìn)行操作后的輸出信息為:若是車輛到達(dá),則輸出汽車在停車場(chǎng)內(nèi)或便道上的停車位置;若是車輛離去,則輸出汽車在停車場(chǎng)內(nèi)停留的時(shí)間和應(yīng)交納的費(fèi)用(在便道上停留的時(shí)間不收費(fèi))。棧以順序結(jié)構(gòu)實(shí)現(xiàn),隊(duì)列以鏈表結(jié)構(gòu)實(shí)現(xiàn)。

完整的實(shí)現(xiàn)代碼如下:

第一種方法:

#include "stdio.h" 
#include "stdlib.h" 
#include "string.h" 
 
#define MAX 2  //車庫(kù)容量  
#define price 0.05  //每車每分鐘費(fèi)用 
typedef struct time //時(shí)間結(jié)點(diǎn) 
{  
  int hour;  
  int min;  
}Time; 
typedef struct node //車輛信息結(jié)點(diǎn)  
{  
  char num[10];  
  Time reach;  
  Time leave;  
}CarNode; 
typedef struct NODE  //模擬車站 
{  
  CarNode *stack[MAX+1];  
  int top;  
}SeqStackCar; 
typedef struct car 
{  
  CarNode *data;  
  struct car *next;  
}QueueNode;  
typedef struct Node //模擬通道 
{  
  QueueNode *head;  
  QueueNode *rear;  
}LinkQueueCar; 
 
void InitStack(SeqStackCar *); //初始化棧 
int InitQueue(LinkQueueCar *); //初始化便道 
int arrival(SeqStackCar *,LinkQueueCar *); //車輛到達(dá) 
void leave(SeqStackCar *,SeqStackCar *,LinkQueueCar *); //車輛離開(kāi)  
void list(SeqStackCar,LinkQueueCar); //顯示存車信息 
 
int main(void)  
{  
  SeqStackCar Enter,Temp;  
  LinkQueueCar Wait;  
  int ch;  
  InitStack(&Enter);  //初始化車站  
  InitStack(&Temp);   //初始化讓路的臨時(shí)棧  
  InitQueue(&Wait);   //初始化通道  
  while(1)  
  {  
    printf("\n        1. The car arrive\n");  
    printf("        2. The car leave\n");  
    printf("        3. The schedule\n");  
    printf("        4. Exit\n");  
    while(1)  
    {  
      scanf("%d",&ch);  
      if(ch>=1 && ch<=4) 
        break;  
      else 
        printf("\nPlease choose: 1|2|3|4.");  
    }  
    switch(ch)  
    {  
    case 1: 
      arrival(&Enter,&Wait);  //車輛到達(dá) 
      break; 
    case 2: 
      leave(&Enter,&Temp,&Wait);  //車輛離開(kāi)  
      break; 
    case 3: 
      list(Enter,Wait);break;  //列表打印信息 
    case 4: 
      exit(0);  //退出主程序  
    default: 
      break;  
    }  
  }  
}  
 
void InitStack(SeqStackCar *s) //初始化棧 
{  
  int i;  
  s->top=0;  
  for(i=0;i<=MAX;i++)  
    s->stack[s->top]=NULL;  
}  
int InitQueue(LinkQueueCar *Q) //初始化便道 
{  
  Q->head=(QueueNode *)malloc(sizeof(QueueNode));  
  if(Q->head!=NULL)  
  {  
    Q->head->next=NULL;  
    Q->rear=Q->head;  
    return 1;  
  }  
  else return -1;  
}  
void print(CarNode *p,int room) //打印出站車的信息 
{  
  int A1,A2,B1,B2;  
  printf("\nplease input thedepart time:/**:**/");  
  scanf("%d:%d",&(p->leave.hour),&(p->leave.min));  
  printf("\nthe number of the car:");  
  puts(p->num);  
  printf("\nthe time the car arrive: %d:%d",p->reach.hour,p->reach.min);  
  printf("the depart time: %d:%d",p->leave.hour,p->leave.min);  
  A1=p->reach.hour;  
  A2=p->reach.min;  
  B1=p->leave.hour;  
  B2=p->leave.min;  
  printf("\nthe fee: %2.1f元",((B1-A1)*60+(B2-A2))*price);  
  free(p);  
}  
int arrival(SeqStackCar *Enter,LinkQueueCar *W) //車輛到達(dá) 
{  
  CarNode *p;  
  QueueNode *t;  
  p=(CarNode *)malloc(sizeof(CarNode));  
  flushall();  
  printf("\ninput the number of the car(例:陜A1234):");  
  gets(p->num);  
  if(Enter->top<MAX)   //車場(chǎng)未滿,車進(jìn)車場(chǎng) 
  {  
    Enter->top++;  
    printf("\nthe place of the car.",Enter->top);  
    printf("\nthe time thecar arrive:/**:**/");  
    scanf("%d:%d",&(p->reach.hour),&(p->reach.min));  
    Enter->stack[Enter->top]=p;  
    return 1;  
  }  
  else   //車場(chǎng)已滿,車進(jìn)便道 
  {  
    printf("\n該車須在便道等待!");  
    t=(QueueNode *)malloc(sizeof(QueueNode));  
    t->data=p;  
    t->next=NULL;  
    W->rear->next=t;  
    W->rear=t;  
    return 1;  
  }  
}  
void leave(SeqStackCar *Enter,SeqStackCar *Temp,LinkQueueCar *W)  //車輛離開(kāi) 
{ 
  int i, room;  
  CarNode *p,*t;  
  QueueNode *q;  
  //判斷車場(chǎng)內(nèi)是否有車 
  if(Enter->top>0) //有車 
  {  
    while(1) //輸入離開(kāi)車輛的信息  
    {  
      printf("\n請(qǐng)輸入車在車場(chǎng)的位置/1--%d/:",Enter->top);  
      scanf("%d",&room);  
      if(room>=1&&room<=Enter->top) 
        break;  
    }  
    while(Enter->top>room) //車輛離開(kāi)  
    {  
      Temp->top++;  
      Temp->stack[Temp->top]=Enter->stack[Enter->top];  
      Enter->stack[Enter->top]=NULL;  
      Enter->top--;  
    }  
    p=Enter->stack[Enter->top];  
    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,room);  
    //判斷通道上是否有車及車站是否已滿 
    if((W->head!=W->rear)&&Enter->top<MAX) //便道的車輛進(jìn)入車場(chǎng) 
    {  
      q=W->head->next;  
      t=q->data;  
      Enter->top++;  
      printf("\n便道的%s號(hào)車進(jìn)入車場(chǎng)第%d位置.",t->num,Enter->top);  
      printf("\n請(qǐng)輸入現(xiàn)在的時(shí)間/**:**/:");  
      scanf("%d:%d",&(t->reach.hour),&(t->reach.min));  
      W->head->next=q->next;  
      if(q==W->rear) W->rear=W->head;  
      Enter->stack[Enter->top]=t;  
      free(q);  
    }  
    else 
      printf("\n便道里沒(méi)有車.\n");  
  }  
  else 
    printf("\n車場(chǎng)里沒(méi)有車."); //沒(méi)車 
}  
void list1(SeqStackCar *S)   //列表顯示車場(chǎng)信息 
{  
  int i;  
  if(S->top>0)  //判斷車站內(nèi)是否有車 
  {  
    printf("\n車場(chǎng):");  
    printf("\n 位置 到達(dá)時(shí)間 車牌號(hào)\n");  
    for(i=1;i<=S->top;i++)  
    {  
      printf(" %d ",i);  
      printf("%d:%d ",S->stack[i]->reach.hour,S->stack[i]->reach.min);  
      puts(S->stack[i]->num);  
    }  
  }  
  else 
    printf("\n車場(chǎng)里沒(méi)有車");  
}  
void list2(LinkQueueCar *W)  //列表顯示便道信息 
{  
  QueueNode *p;  
  p=W->head->next;  
  if(W->head!=W->rear)  //判斷通道上是否有車  
  {  
    printf("\n等待車輛的號(hào)碼為:");  
    while(p!=NULL)  
    {  
      puts(p->data->num);  
      p=p->next;  
    }  
  }  
  else 
    printf("\n便道里沒(méi)有車.");  
}  
void list(SeqStackCar S,LinkQueueCar W)  
{  
  int flag,tag;  
  flag=1;  
  while(flag)  
  {  
    printf("\n請(qǐng)選擇 1|2|3:");  
    printf("\n1.車場(chǎng)\n2.便道\n3.返回\n");  
    while(1)  
    {  
      scanf("%d",&tag);  
      if(tag>=1 || tag<=3) 
        break;  
      else 
        printf("\n請(qǐng)選擇 1|2|3:");  
    }  
    switch(tag)  
    { 
    case 1: 
      list1(&S); 
      break;  //列表顯示車場(chǎng)信息 
    case 2: 
      list2(&W); 
      break;  //列表顯示便道信息 
    case 3: 
      flag=0; 
      break; 
    default: break; 
    }  
  }  
} 

 
第二種方法:

#include "stdio.h" 
#include "stdlib.h" 
 
#define SIZE 10 
typedef struct  
{ 
  int hour; 
  int min;  
}time;   //車的時(shí)間結(jié)構(gòu)體 
 
typedef struct  
{ 
  int num; 
  int position; 
  time t; 
  float money;  
}Car;   //車的信息 
typedef struct  
{ 
  Car elem[SIZE+1];  
  int top;    //指向便道中的第一個(gè)空位 
} Stack;      //創(chuàng)建堆棧 
 
typedef struct Node  
{ 
  Car data;  
  struct Node *next;  
}CQueueNode; 
 
//建立過(guò)道的程序: 
typedef struct  
{ 
  CQueueNode *front; 
  CQueueNode *rear;  
}LinkQueue;  //設(shè)置的便道 
 
//便道初始化程序 
void InitQueue(LinkQueue *Q)  
{ 
  Q->front=(CQueueNode*)malloc(sizeof(CQueueNode)); //使mallo返回的指針轉(zhuǎn)換為指向CQueueNode類型數(shù)據(jù)的指針 
  if(Q->front!=NULL)  
  { 
    Q->rear=Q->front;  
    Q->front->next=NULL; 
  }  
} 
 
int EnterQueue(LinkQueue *Q,Car *t)  
{ 
  CQueueNode *NewNode;  
  NewNode=(CQueueNode*)malloc(sizeof(CQueueNode));  //給便道申請(qǐng)空間 
  if(NewNode!=NULL)  
  { 
    NewNode->data.num=t->num;  
    NewNode->data.t.hour=t->t.hour;  
    NewNode->data.t.min=t->t.min;  
    NewNode->next=NULL;  
    Q->rear->next=NewNode;  
    Q->rear=NewNode;  
    return 1;  
  }  
  else return 0;  
}  
void InitStack(Stack *S)  
{ 
  S->top=0; 
}  //確保堆棧為空 
 
void Push(Stack *S,Car *r)    //便道中的車入庫(kù) 
{ 
  S->top++;  
  S->elem[S->top].num=r->num;  
  r->position=S->elem[S->top].position=S->top;  
  S->elem[S->top].t.hour=r->t.hour;  
  S->elem[S->top].t.min=r->t.min;  
} 
int IsEmpty(Stack* S)  //判斷車庫(kù)是否為空 
{ 
  return(S->top==0?1:0); 
} 
 
int IsFull(Stack *S)  //判斷車庫(kù)是否為滿 
{ 
  return(S->top==SIZE?1:0); 
} 
 
int GetTop(Stack *S,Car *n)  //車離開(kāi)車庫(kù) 
{ 
  n->num=S->elem[S->top].num;  
  n->position=S->elem[S->top].position;  
  n->t.hour=S->elem[S->top].t.hour;  
  n->t.min=S->elem[S->top].t.min;  
  return 1; 
} 
int DeleteQueue(LinkQueue *Q,Car *x)  
{ 
  CQueueNode *p;  
  if(Q->front==Q->rear) 
    return 0;   //判斷便道為空 
  p=Q->front->next;   //將便道中的車放入車庫(kù) 
  Q->front->next=p->next;  
  if(Q->rear==p)  
    Q->rear=Q->front;  
  x->num=p->data.num;  
  x->t.hour=p->data.t.hour;  
  x->t.min=p->data.t.min;  
  free(p);   //釋放臨時(shí)指針 
  return 1;  
}  
void In(Stack *S,LinkQueue *Q,Car*r)  
{ 
  if(IsFull(S))  
  { 
    printf("車庫(kù)已滿,請(qǐng)等待!");  
    EnterQueue(Q,r);   //車進(jìn)入便道      
  } 
  else  
  { 
    Push(S,r);  
    printf("\n您現(xiàn)在所在位置 %d",r->position);    //打印車的位置 
  }  
} 
void TaM(Car *r,int h,int m)  
{ 
  if(m>r->t.min) 
  { 
    r->t.min+=60; 
    r->t.hour-=1; 
  } 
  h=r->t.hour-h; 
  m=r->t.min-m; 
  printf("\n停車 %d小時(shí) %d 分鐘\n",h,m); 
  printf("每小時(shí)收費(fèi)30元\n"); 
  h=h*60;m=h+m;  
  r->money=0.5*m;  
  printf("請(qǐng)支付金額%.2f元\n",r->money);   //輸出車主應(yīng)付金額 
} 
void Out(Stack *S,Stack *S0,Car *r,LinkQueue *Q)  
{ 
  int tag=S->top;  
  Car x;  
  if(IsEmpty(S)) 
    printf("沒(méi)有此車!");  
  else  
  { 
    for(;r->num!=S->elem[tag].num && tag>0;tag--)  
    { 
      Push(S0,&S->elem[tag]);  
      S->top--;  
    }  
    if(r->num==S->elem[tag].num)  
    { 
      TaM(r,S->elem[tag].t.hour,S->elem[tag].t.min);  
      S->top--;  
      for(;S0->top>0;S0->top--)  
        Push(S,&S0->elem[S0->top]);  
      if(S->top<SIZE && Q->front!=Q->rear)  //判斷車庫(kù)是否有此車,有就找到此車,然后退出 
      { 
        DeleteQueue(Q,&x); 
        Push(S,&x);  
      }  
    } 
    else if(tag==0)  //過(guò)道中的車無(wú)需收車費(fèi) 
    { 
      printf("未進(jìn)入停車場(chǎng)應(yīng)支付金額 0元!");  
      for(;S0->top>0;S0->top--) 
        Push(S,&S0->elem[S0->top]);   
    }  
  }  
} 
 
void print1(Stack *S)  
{ 
  int tag;  
  Car x;  
  printf("停車場(chǎng)停車情況:\n");  
  if(IsEmpty(S)) 
    printf("無(wú)車!");  
  for(tag=S->top;S->top>0;S->top--)  
    if(GetTop(S,&x))     //顯示車庫(kù)中個(gè)車的信息及到達(dá)時(shí)間 
      printf("車牌號(hào) %d,所在位置 %d,到達(dá)/離開(kāi)時(shí)間 %d:%d\n",x.num,x.position,x.t.hour,x.t.min);  
  S->top=tag;  
} 
 
void print2(LinkQueue *Q)  
{ 
  CQueueNode *p;  
  p=Q->front->next;  
  for(;p!=NULL;p=p->next)  //顯示過(guò)道上車的信息及到達(dá)時(shí)間 
    printf("等待車牌號(hào) %d, 到達(dá)/離開(kāi)時(shí)間 %d:%d",p->data.num,p->data.t.hour,p->data.t.min);  
} 
 
void print()  
{ 
  printf("\n***********************************歡迎光臨*************************************\n");  
  printf("\n 請(qǐng)選擇:\n");  
  printf("\n 1 :到達(dá)");  
  printf("\n 2 :離開(kāi)");  
  printf("\n 3 :搜索");  
  printf("\n 4 :退出\n");  
  printf("\n"); 
} 
 
int main(void)  
{ 
  int n,m,i=1,j,flag=0; 
  Car c[10]; 
  Stack S,S0;    //設(shè)定堆棧S,SO 
  LinkQueue Q;   //便道 
  InitStack(&S);  //堆棧S 
  InitStack(&S0);  //臨時(shí)堆棧S0 
  InitQueue(&Q); 
  while(1)  
  { 
    print();  
    scanf("%d",&m);  
    switch(m) 
    { 
    case 1: 
      printf("\n請(qǐng)輸入車牌號(hào):");  
      scanf("%d",&c[i].num);  
      printf("\n請(qǐng)輸入到達(dá)/離開(kāi)時(shí)間:");  
      scanf("%d:%d",&c[i].t.hour,&c[i].t.min);  
      In(&S,&Q,&c[i]);i++;   //車輛的情況 
      break; 
    case 2: 
      printf("\n請(qǐng)輸入車牌號(hào):");  
      scanf("%d",&n);  
      for(j=0;j<10;j++)  
        if(n==c[j].num) 
          break;  
      printf("\n請(qǐng)輸入到達(dá)/離開(kāi)時(shí)間:");  
      scanf("%d:%d",&c[j].t.hour,&c[j].t.min);  
      Out(&S,&S0,&c[j],&Q);  //車輛的情況 
      break;       
    case 3: 
      print1(&S);   //輸出車庫(kù)中車的信息 
      print2(&Q);   //輸出過(guò)道上車的信息 
      break;      //終止 
    case 4: 
      flag=1; 
      break;  
    default: 
      printf("\n輸入錯(cuò)誤,請(qǐng)輸入 1,2,3 或4");  
    }  
    if(flag) 
      break;   //結(jié)束程序 
  } return 0;  
} 

相關(guān)文章

  • 解析C++哈夫曼樹(shù)編碼和譯碼的實(shí)現(xiàn)

    解析C++哈夫曼樹(shù)編碼和譯碼的實(shí)現(xiàn)

    本篇文章主要介紹了C++哈夫曼樹(shù)編碼和譯碼的實(shí)現(xiàn),詳細(xì)的講訴了哈夫曼樹(shù)編碼的原理,有需要的同學(xué)可以了解一下。
    2016-11-11
  • Cocos2d-x學(xué)習(xí)筆記之Hello World!

    Cocos2d-x學(xué)習(xí)筆記之Hello World!

    這篇文章主要介紹了Cocos2d-x學(xué)習(xí)筆記之Hello World!本文基于vs2010和C++語(yǔ)言開(kāi)發(fā),需要的朋友可以參考下
    2014-09-09
  • C語(yǔ)言實(shí)現(xiàn)的雙鏈表功能完整示例

    C語(yǔ)言實(shí)現(xiàn)的雙鏈表功能完整示例

    這篇文章主要介紹了C語(yǔ)言實(shí)現(xiàn)的雙鏈表功能,結(jié)合完整實(shí)例形式分析了基于C語(yǔ)言實(shí)現(xiàn)的雙鏈表定義、添加、刪除、排序等相關(guān)操作實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2018-04-04
  • 利用OpenCV實(shí)現(xiàn)局部動(dòng)態(tài)閾值分割

    利用OpenCV實(shí)現(xiàn)局部動(dòng)態(tài)閾值分割

    這篇文章主要為大家詳細(xì)介紹了利用OpenCV實(shí)現(xiàn)局部動(dòng)態(tài)閾值分割,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • Cocos2d-x保存用戶游戲數(shù)據(jù)CCUserDefault類使用實(shí)例

    Cocos2d-x保存用戶游戲數(shù)據(jù)CCUserDefault類使用實(shí)例

    這篇文章主要介紹了Cocos2d-x保存用戶游戲數(shù)據(jù)CCUserDefault類使用實(shí)例,需要的朋友可以參考下
    2014-09-09
  • Qt 儀表盤的實(shí)現(xiàn)示例

    Qt 儀表盤的實(shí)現(xiàn)示例

    儀表盤在很多汽車和物聯(lián)網(wǎng)相關(guān)的系統(tǒng)中很常用,本文就來(lái)介紹一下Qt 儀表盤的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-12-12
  • C++單例模式的實(shí)例詳解

    C++單例模式的實(shí)例詳解

    這篇文章主要介紹了C++單例模式的實(shí)例詳解的相關(guān)資料,希望通過(guò)本文能幫助到大家,讓大家掌握這部分內(nèi)容,需要的朋友可以參考下
    2017-10-10
  • C++中形參和實(shí)參的區(qū)別及說(shuō)明

    C++中形參和實(shí)參的區(qū)別及說(shuō)明

    這篇文章主要介紹了C++中形參和實(shí)參的區(qū)別及說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • C++趣味算法之偵探推理

    C++趣味算法之偵探推理

    本文詳細(xì)講解了C++趣味算法之偵探推理,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-12-12
  • C語(yǔ)言數(shù)字圖像處理之直方圖均衡化

    C語(yǔ)言數(shù)字圖像處理之直方圖均衡化

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言數(shù)字圖像處理之直方圖均衡化,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-10-10

最新評(píng)論