国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

一種基于Linux智能排隊系統(tǒng)的設計與實現(xiàn)*

2013-01-10 10:15:14李金友
通化師范學院學報 2013年4期
關鍵詞:隊列排隊客戶端

李金友,楊 林,齊 穎

(通化師范學院 計算機學院,吉林 通化 134001)

智能排隊系統(tǒng)又稱排隊機(Queue Management System)、叫號機、排號機、號票機、發(fā)號機、取號機,在一些銀行、服務大廳、醫(yī)院等場所隨處可見.在國外排隊系統(tǒng)已有多年的歷史,被廣泛用于需要排隊等候的各個領域;在我國排隊系統(tǒng)的出現(xiàn)時間較短,但得到了快速發(fā)展.早期排隊系統(tǒng)以單片機為主,近些年來隨著電子市場的發(fā)展,逐漸被完整的計算機系統(tǒng)所替代.

1 智能排隊系統(tǒng)工作原理

智能排隊系統(tǒng)主要分服務器和叫號終端兩部分,它的工作原理主要由以下三個方面構成:一是服務器端.它根據(jù)用戶辦理的業(yè)務選擇對應的服務,從取號打印機打印服務序號,票號上有相應的服務類型、排隊序號、當前現(xiàn)有等待人數(shù)、時間等信息,然后到相應的客戶等待休息區(qū)等待.二是叫號終端.即每個服務窗口配有一個排號叫號終端,分別通過網(wǎng)絡與排隊服務器連接,多個窗口的排號叫號終端通過網(wǎng)絡連接到排隊主機服務器.三是智能分號顯示屏.當服務窗口的工作人員開始服務時,通過叫號終端發(fā)送呼叫請求,排隊服務主機回應呼叫終端的呼叫信息,并根據(jù)結果處理隊列,響應客戶端請求,給叫號終端屏分配服務號,并語音給出語音提示:“請XX號顧客到XX號窗口”,用戶根據(jù)語音提示和顯示屏信息到相應的窗口辦理業(yè)務.具體原理圖如圖1所示.

圖1 智能排隊系統(tǒng)原理圖

2 系統(tǒng)分析

一個排隊系統(tǒng)包括六要素:

(1)客戶到達過程:耐心客戶/非耐心客戶、客戶到達時間間隔可以看作一個隨機變量、用一個隨機過程描述客戶到達模式、平穩(wěn)/非平穩(wěn)到達模式.

(2)服務過程:狀態(tài)無關/狀態(tài)相關、服務時間可看作一個隨機變量、平穩(wěn)/非平穩(wěn)服務時間.

(3)服務器數(shù)量:單個/多個服務器、多服務器多隊列或多服務器單隊列.

(4)系統(tǒng)容量:客戶部能立即獲得服務時選擇等待/離開、有限/無限個等待位.

(5)顧客源數(shù)量:有限/無限.

(6)排隊規(guī)則:優(yōu)先級、搶占優(yōu)先/非搶占優(yōu)先.

3 系統(tǒng)功能改進

與傳統(tǒng)的排隊系統(tǒng)相比較,主要改進了以下兩個方面的內(nèi)容:

第一,實現(xiàn)過號加號功能.常見的排隊系統(tǒng)中,有的客戶由于諸多原因錯過叫號時間,只能再進行叫號等待.文中所設計的系統(tǒng)在對待此類問題實現(xiàn)了加號功能,對錯過的客戶按一定的時間閥值,系統(tǒng)自動加入到排隊隊列中,時間的閥值可以根據(jù)需要進行設置,錯過的客戶,不用再進行叫號,在客戶端屏幕會顯示錯過用戶的加號順序,按提示進行等待即可.

第二,實現(xiàn)叫號無紙打號排隊功能.常見的排隊系統(tǒng)中,實現(xiàn)打印小票憑票排隊功能.全國統(tǒng)計下來,一年要浪費許多紙張,將是很大的浪費,不符合現(xiàn)在的環(huán)保要求.該系統(tǒng)對該功能進行了改進,不打印小票,客戶可以根據(jù)屏幕顯示號碼等待排序,為了防止錯誤,可以對每個客戶系統(tǒng)自動進行拍照,工作人員可以根據(jù)LED屏幕上用戶照片判斷是否是該號碼客戶.

4 系統(tǒng)實現(xiàn)

軟件系統(tǒng)設計主要分為服務器、叫號終端兩個主要部分,每個部分均包含根據(jù)事先約定的通信協(xié)議設計的通信軟件,系統(tǒng)使用的是先來先服務排隊規(guī)則.

(1)服務器端代碼實現(xiàn).linuxC++多線程設計是基于Linux系統(tǒng)下的多線程程序設計,包括多個任務程序的設計,并發(fā)程序的設計,網(wǎng)絡程序的設計等.LinuxC++系統(tǒng)下的多線程遵循POSIX線程接口,通常稱為pthread.編寫LinuxC++下的多線程程序時,需要使用頭系統(tǒng)提供的文件pthread.h,連接時需要使用系統(tǒng)庫libpthread.a.

服務器核心部分代碼simpleServer.c如下:

void *thread(void *arg){

int i= 0;

int j=1000;

int k=3000;

char buf[2];

char buf1[5];

int ret=0;

int m=0;

int a;

int clientfd=*(int*)arg;

InitQueue(&Vip);

InitQueue(&Normal);

InitQueue(&Other);

while(1){

ret=read(clientfd,buf,sizeof(buf)-1);

if(ret<=0)

return;

if(strcmp(buf,"0")==0){

i=i+1;if(i==1000){

i=1;

}m=i;

EnQueue(&Vip,i);

PrintQueue(&Vip);

}

if(strcmp(buf,"1")==0){

j++;

if(j==3000){

j=1001;

}

m=j;

EnQueue(&Normal,j);

}

if(strcmp(buf,"2")==0){

k++;

if(k==5000){

k=3001;

}

m=k;

EnQueue(&Other,k);

}

if(strcmp(buf,"V")==0){

DeQueue(&Vip,&m);

}

if(strcmp(buf,"N")==0){

DeQueue(&Normal,&m);

}

if(strcmp(buf,"O")==0){

DeQueue(&Other,&m);

}bzero(buf1,sizeof(buf1));

sprintf(buf1,"%d",m);

write(clientfd,buf1,strlen(buf1));

}

(2)客戶端核心部分代碼:

void myqueue::cash_button(){

char buf[1000];

bzero(buf,sizeof(buf));

write(fd,"0",1);

read(fd,buf,sizeof(buf)-1);/*確定協(xié)議*/

printf("%s ",buf);

QString tmp;

QString string(buf);

tmp="您的現(xiàn)金業(yè)務號碼為"+string+"位顧客請到休息區(qū)等待";

showlabel->setText(tmp);

}

5 結語

本文基于Linux智能排隊系統(tǒng)排隊的若干問題的討論,主要是針對項目整體設計進行說明,確定系統(tǒng)服務器和客戶端的設計與實現(xiàn)方法,并對各個模塊的軟件設計與實現(xiàn)進行了較為完整的概括,在一些類似的技術應用上都有借鑒性.

參考文獻:

[1]王策,張連芳,董淼,等.基于Linux的嵌入式系統(tǒng)開發(fā)[J].計算機應用,2002(7).

[2]黃卓君.解決銀行排隊難題的根本出路何在[J].南方金融,2007(7).

[3]王慶瑞.數(shù)據(jù)結構教程[M].北京:希望電子出版社,2002.

[4]趙祖龍.基于Qt/Embedded的嵌入式跨平臺聊天系統(tǒng)設計[J].信息技術,2010(12).

猜你喜歡
隊列排隊客戶端
怎樣排隊
隊列里的小秘密
基于多隊列切換的SDN擁塞控制*
軟件(2020年3期)2020-04-20 00:58:44
在隊列里
巧排隊列
三角龍排隊
學生天地(2018年18期)2018-07-05 01:51:42
縣級臺在突發(fā)事件報道中如何應用手機客戶端
傳媒評論(2018年4期)2018-06-27 08:20:24
孵化垂直頻道:新聞客戶端新策略
傳媒評論(2018年4期)2018-06-27 08:20:16
基于Vanconnect的智能家居瘦客戶端的設計與實現(xiàn)
電子測試(2018年10期)2018-06-26 05:53:34
豐田加速駛?cè)胱詣玉{駛隊列
越西县| 堆龙德庆县| 简阳市| 曲阳县| 喀什市| 兴文县| 阿克| 大渡口区| 六安市| 水富县| 乡宁县| 乳山市| 兴山县| 景洪市| 扎鲁特旗| 新野县| 潜江市| 泸水县| 高州市| 邓州市| 茌平县| 望江县| 乌拉特后旗| 莱西市| 延寿县| 靖远县| 元阳县| 东至县| 且末县| 邵武市| 鄂伦春自治旗| 台北县| 林周县| 长岭县| 理塘县| 平舆县| 三都| 塔河县| 蒙山县| 当阳市| 营口市|