亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C語言實現VIP停車場管理系統代碼分享

發布時間:2021-08-11 18:58:47 來源:億速云 閱讀:158 作者:chen 欄目:編程語言

這篇文章主要介紹“C語言實現VIP停車場管理系統代碼分享”,在日常操作中,相信很多人在C語言實現VIP停車場管理系統代碼分享問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”C語言實現VIP停車場管理系統代碼分享”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

程序如下:

/*************************************************************************** 項目要求 游戲VIP停車場 問題描述:停車場是一個能放10輛車的車場(鏈表實現), 汽車按到達的先后次序停放在等候區。若等候區滿了(10輛車),按汽車的VIP等級(兩種排序方法),依次停入停車場 ,在停車期間,我們可以通過汽車牌號查找汽車相關信息,并且可以隨意刪除其中一輛汽車,汽車離開要按等候區的順序依次離開(使用隊列實現)汽車離開時按停放時間收費。 ***************************************************************************/ #include<stdio.h>#include<string.h>#include<stdlib.h>#include<time.h> #define LEN sizeof(struct parking)      #define MAXSIZE 10 //車庫大小,可自定義大小,這里默認為10#define MONEY 0.002 //收費價格,這里默認為1分鐘,收費0.12元 typedef struct parking{ char number[10]; //車輛信息 int vip; //車輛VIP等級 int time1;  // 進入停車場時間 int time2;  // 離開停車場時間 int count; //標記車輛,后面入隊時使用 struct parking*next;}car;static int n = 0; //全局變量,用于標記車輛數目,計算車位car c;void menu(){ printf("\t==============歡迎來到中南國際停車場=============\n"); printf ("\t******************目前停車場狀況*****************\n"); printf ("\t停車場共有%d個車位,當前停車場剩余%d車位\n", MAXSIZE,MAXSIZE - n); printf ("\t*************************************************\n"); printf("\t================1,停入車輛=======================\n"); printf("\t================2,VIP等級排序車輛================\n"); printf("\t================3,駛出所有車輛(隊列)==============\n"); printf("\t================4,查找車輛=======================\n"); printf("\t================5,遍歷停車場全部車輛信息=========\n"); printf("\t================6,駛出指定車輛===================\n"); printf("\t================7,退出===========================\n");} struct parking *creat() //創建鏈表,用于存放車輛信息{ struct parking*p1,*p2,*head; head = NULL; //為方便后面排序,這里創建不帶頭結點的鏈表 int i = 1; p1=p2=(struct parking*)malloc(LEN); printf("輸入車輛VIP等級:\n"); scanf("%d",&p1->vip); printf("輸入車牌號:\n"); scanf("%s",p1->number); p1->count = i; time_t t1;  long int t = time(&t1);  // 標記進入停車場的時間  c.time1 = t;  char* t2;  t2 = ctime(&t1);  // 獲取當前時間           printf("牌照為%s的汽車停入等候區成功,當前時間:%s\n",p1->number,t2); //顯示停車場狀況,以及停入時間 while(p1->vip != 0 && i <= 10) {      //由于不帶頭結點,這里創建時考慮了三種插入方法 n = n+1; if(n == 1)  head = p1; else  p2->next = p1; p2 = p1; p1 = (struct parking*)malloc(LEN); printf("輸入車輛VIP等級:\n"); scanf("%d",&p1->vip); printf("輸入車牌號:\n"); scanf("%s",p1->number); i++; p1->count = i; time_t t1;    long int t = time(&t1); // 標記進入停車場的時間 c.time1 = t;    char* t2;    t2 = ctime(&t1);  // 獲取當前時間             printf("牌照為%s的汽車停入等候區成功,當前時間:%s\n",p1->number,t2); //顯示停車場狀況,以及停入時間     } p2->next = NULL; printf("等候區以滿\n"); return head;} struct parking *Sort(struct parking *head)//鏈表排序,冒泡排序{  struct parking *p,*q,*s;  int t,a,m;  char arr[10]; printf("請輸入排序方式:(1:冒泡排序法 0:選擇排序法)\n"); scanf("%d",&a); if(a = 1) {   for(p = head;p != NULL;p = p->next)   {     for(q = p->next;q != NULL;q = q->next)     {       if(p->vip < q->vip)//降序  {         t = q->vip; //按VIP等級交換結點數據   q->vip = p->vip;   p->vip = t;   strcpy(arr,q->number);   strcpy(q->number,p->number);   strcpy(p->number,arr);   m = q->count;      q->count = p->count;   p->count = m;  }     }   } return head;   } else //選擇排序法 { for(p = head;p != NULL;p = p->next)     {  s = p; //s標記為最大值  for(q = p->next;q != NULL;q = q->next)     {   if(p->vip < q->vip)//降序  {         s = q;  }  if(s != p)  {          t = q->vip; //按VIP等級交換結點數據   q->vip = p->vip;   p->vip = t;   strcpy(arr,q->number);     strcpy(q->number,p->number);   strcpy(p->number,arr);   m = q->count;      q->count = p->count;   p->count = m;  }     }   } return head; }} typedef struct QueueNode //先入先出(隊列)Vip離場{  int data;  struct QueueNode *next;}Queue,*QueuePtr; typedef struct{  QueuePtr front,rear; //隊列指針}LinkQueue; LinkQueue* CreateQueue(LinkQueue *Q) //創建隊列{  Q = (LinkQueue*)malloc(sizeof(LinkQueue));  Q->front = Q->rear = (QueuePtr)malloc(sizeof(Queue));  Q->front->next = NULL;  return Q;} void Push(struct parking *head,LinkQueue* Q) //入隊操作,按鏈表中一開始車輛標號順序{  struct parking *p; p = head;  while(p!=NULL)  {    QueuePtr s = (QueuePtr)malloc(sizeof(Queue));    s->data = p->count; //隊列只記錄車輛一開始的標號信息    s->next = NULL;    Q->rear->next = s;    Q->rear = s;    p = p->next;       }} struct parking Exert1(struct parking *head,int e) //按等候區順序出隊(一輛){  struct parking *p;  p = head;  while(p != NULL && p->count != e)  {    p = p->next;  }  if(p->count == e)  {    time_t t1; long int t = time(&t1);  // 標記顯示時的時間 printf ("車牌號\tVIP等級\t\t停放時長\t當前所需支付金額\n"); //打印查到的車輛信息   printf ("%s\t%d\t\t%d秒\t\t%2.3f元\n",p->number,p->vip,t - c.time1, MONEY * (t - c.time1));  }}int Pop(struct parking *head,LinkQueue *Q) //按等候區順序出隊(全部){  QueuePtr p;  int i = 1;  if(Q->front == Q->rear)  {    printf("停車場無車輛!\n");    return 0;  }  else  {    for(i;i <= 10;i++) //按等候區順序出隊(全部)    {      p = Q->front->next;     Q->front->next = p->next; //出隊操作     if(Q->rear == p)        Q->rear = Q->front;     Exert1(head,i); //調用函數,實現按等候區順序出一輛車     }  }}   struct parking *Exert(struct parking *head,char number[10]) //駛出指定車輛{  struct parking *p1,*p2; p1 = head; p2 = p1; while(p1->next !=NULL && strcmp(p1->number,number) != 0) { p2=p1; p1=p1->next;  } if(strcmp(p1->number,number) == 0) //不帶頭結點,這里有三種刪除車輛的辨別 { if(p1 == head) {  head = head->next; //頭,中間,尾,三種刪除方式  printf("駛出車輛成功\n");  n--; } else {  p2->next = p1->next;  printf("駛出車輛成功\n");  n--; } time_t t1;    long int t = time(&t1);         c.time2 = t; // 標記離開停車場的時間 char* t2; t2 = ctime(&t1); // 獲取當前時間 printf("離開時間%s\n需付%2.3f元\n",t2,MONEY * (c.time2 - c.time1)); //顯示停車場狀況以及駛出時間和收費情況 } else { printf("停車場沒此車輛!\n"); } free(p1); return head;} struct parking *find(struct parking *head,char number[20]) //查找指定車輛{ struct parking *p1; p1 = head; while(p1->next != NULL && strcmp(p1->number,number)!=0) { p1 = p1->next;  } if(strcmp(p1->number,number)==0) //打印查到的車輛信息 { printf("查找成功,車輛信息如下:\n"); time_t t1; long int t = time(&t1);       // 標記顯示時的時間 printf ("車牌號\tVIP等級\t\t停放時長\t當前所需支付金額\n"); //打印查到的車輛信息   printf ("%s\t%d\t\t%d秒\t\t%2.3f元\n",p1->number,p1->vip,t - c.time1, MONEY * (t - c.time1)); } else printf("停車場沒此車輛!\n"); } void show(struct parking *head) //顯示車庫現有車輛{ struct parking *p; p = head; if(head != NULL) { do  {  time_t t1;  long int t = time(&t1); // 標記顯示時的時間  printf ("車牌號\tVIP等級\t\t停放時長\t當前所需支付金額\n"); //打印查到的車輛信息    printf ("%s\t%d\t\t%d秒\t\t%2.3f元\n",p->number,p->vip,t - c.time1, MONEY * (t - c.time1));  p = p->next;  }while(p != NULL); }  else printf("停車場無車輛!\n");} int main(){ int n = 1; int i; struct parking *head; //初始化鏈表 LinkQueue q; LinkQueue* Q = &q; Q = CreateQueue(Q); char number[10];    while(n) { system("clear"); menu(); printf("請輸入你的騷操作:\n"); scanf("%d",&i); switch(i) {  case 1:{head = creat();Push(head,Q);break;} //創建鏈表,并創建隊列  case 2:{head = Sort(head);break;} //按vip排序  case 3:{Pop(head,Q);break;} //按等候區順序出隊(全部)  case 4:  {  printf("請輸入查找車輛的車牌號:\n"); //查找指定車輛  scanf("%s",number);  find(head,number);break;  }  case 5:{show(head);break;} //顯示車庫現有車輛  case 6:  {   printf("請輸入要駛出車輛的車牌號:\n"); //駛出指定車輛  scanf("%s",number);  head = Exert(head,number);break;   }  default:{break;} } }}

到此,關于“C語言實現VIP停車場管理系統代碼分享”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

浮山县| 武穴市| 本溪市| 百色市| 通州区| 海晏县| 青川县| 岳阳市| 承德市| 南木林县| 嘉兴市| 林西县| 信宜市| 宕昌县| 九江市| 衢州市| 宁安市| 丰都县| 泸定县| 永昌县| 文安县| 容城县| 开原市| 育儿| 哈巴河县| 台东县| 轮台县| 增城市| 永定县| 三河市| 江口县| 灵宝市| 石狮市| 呈贡县| 崇仁县| 汉源县| 巴彦淖尔市| 德庆县| 类乌齐县| 泰宁县| 岳池县|