【練習】銀行排號程式
隨著銀行業務的擴充套件, 到銀行辦理業務的人越來越多,經常可以見到銀行營業大廳中排著長隊。為了改善服務,很多銀行都設定了排號系統,顧客去辦理業務時,通過排號機生成一個好嗎,然後可坐在在休息區等候排號系統按號碼進行呼叫,而從不需要使用者站在櫃檯前等候,緩解使用者等候時的煩躁情緒。本程式為模擬該排號系統的例項。
- 實現原始碼
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
typedef struct
{
int num; //顧客編號
long time;//進入佇列時間
}DATA;
#include "2-12 CycQueue.h"
int num;//顧客序號
void add(CycQueue *q) //新增顧客排列
{
DATA data;
if(!CycQueueIsFull(q)) //如果佇列未滿
{
data.num=++num;
data.time=time(NULL);
CycQueueIn(q,data);
}
else
printf("\n排隊的人太多,請稍候再排隊!\n");
}
void next(CycQueue *q) //通知下一顧客準備
{
DATA *data;
if(!CycQueueIsEmpty(q)) //若佇列不為空
{
data=CycQueueOut(q); //取佇列頭部的資料
printf("\n請編號為%d的顧客辦理業務!\n",data->num);
}
if(!CycQueueIsEmpty(q)) //若佇列不為空
{
data=CycQueuePeek(q);//取佇列中指定位置的資料
printf("請編號為%d的顧客準備,馬上將為您理業務!\n",data->num);
}
}
int main()
{
CycQueue *queue1;
int i,n;
char select;
num=0;//顧客序號
queue1=CycQueueInit(); //初始化佇列
if(queue1==NULL)
{
printf("建立佇列時出錯!\n");
getch();
return 0;
}
do{
printf("\n請選擇具體操作:\n");
printf("1.新到顧客\n");
printf("2.下一個顧客\n");
printf("0.退出\n") ;
fflush(stdin);
select=getch();
switch(select)
{
case '1':
add(queue1);
printf("\n現在共有%d位顧客在等候!\n",CycQueueLen(queue1));
break;
case '2':
next(queue1);
printf("\n現在共有%d位顧客在等候!\n",CycQueueLen(queue1));
break;
case '0':
break;
}
}while(select!='0');
CycQueueFree(queue1); //釋放佇列
getch();
return 0;
}
- 測試結果
相關文章
- 使用執行緒模擬解決銀行排隊叫號問題執行緒
- 萌新練習寫程式碼的每日一練:括號生成
- 如何根據銀行卡號獲取對應的銀行編號,如:ICBC
- 練習題:銀行卡練習儲蓄卡與信用卡(可透支和設定額度)
- 論銀行的排程系統和ETL
- PHP 檢測銀行卡賬號PHP
- rodert單排學習redis進階【白銀一】Redis
- 模擬銀行排隊時間—4佇列佇列
- 程式練習題(2)
- 程式設計練習程式設計
- TIA做交通訊號燈練習2
- 匹配銀行卡號的正規表示式
- Scala程式碼練習(複習用)
- matlab練習程式(灰度拉伸)Matlab
- JS驗證銀行卡號的正確性JS
- 演算法練習題1-括號序列演算法
- matlab練習程式(水波特效)Matlab特效
- sklearn基本操作程式碼練習
- Java程式設計練習_241206Java程式設計
- 首款破解 2FA 的 Android 惡意程式曝光:可竊取銀行帳號Android
- 使用Python,OpenCV進行銀行支票數字和符號的OCRPythonOpenCV符號
- 多執行緒-作業練習執行緒
- 賦值運算子和+號的用法(兩個練習)賦值
- markdown 使用練習練習
- 第四天-程式碼練習
- python-購物車程式練習Python
- matlab練習程式(Sinkhorn演算法)Matlab演算法
- 從零單排學Redis【白銀】Redis
- Python行結構與縮排、 識別符號和保留字Python符號
- rust學習十二、一個I/O程式練習Rust
- 國密平安銀行小程式對接
- 關於程式設計的基本練習程式設計
- Day40--練習--程式設計2程式設計
- matlab練習程式(LQR路徑跟蹤)Matlab
- rpc排程埠號重複RPC
- Pytorch:單卡多程式並行訓練PyTorch並行
- 新手練習:Python練習題目Python
- Linux核心學習筆記(5)– 程式排程概述Linux筆記
- xv6學習筆記(4) : 程式排程筆記