資源描述:
《銀行排隊系統(tǒng)源程序清單》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、第16頁共16頁三.源程序清單CSeqBankQueue.cs類代碼usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Threading;namespace銀行排隊系統(tǒng){classCSeqBankQueue:CSeqQueue,IBankQueue{privateintcallnumber;//記錄系統(tǒng)自動產(chǎn)生的新來顧客的服務(wù)號//叫號屬性publicintCallnumber{get{
2、returncallnumber;}set{callnumber=value;}}publicCSeqBankQueue(){}publicCSeqBankQueue(intsize):base(size){}//獲得服務(wù)號碼publicintGetCallnumber(){if((IsEmpty())&&callnumber==0)callnumber=1;elsecallnumber++;returncallnumber;}}//服務(wù)窗口類classServiceWindow{IBankQueuebankQ;public
3、IBankQueueBankQ第16頁共16頁{get{returnbankQ;}set{bankQ=value;}}publicvoidService(){while(true){Thread.Sleep(10000);if(!bankQ.IsEmpty()){Console.WriteLine();lock(bankQ){Console.WriteLine("請{0}號到{1}號窗口!",bankQ.DeQueue(),Thread.CurrentThread.Name);}}}}}}CSeqQueue.cs類代碼usi
4、ngSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;namespace銀行排隊系統(tǒng){publicclassCSeqQueue:IQueue{privateintmaxsize;//循環(huán)順序隊列的容量privateT[]data;//數(shù)組,用于存儲循環(huán)順序隊列中的數(shù)據(jù)元素privateintfront;//指示最近一個己經(jīng)離開隊列的元素所占的位置第16頁共16頁privateintrear;//指示最近一個進行入隊列的
5、元素的位置//索引器publicTthis[intindex]{get{returndata[index];}set{data[index]=value;}}//容量屬性publicintMaxsize{get{returnmaxsize;}set{maxsize=value;}}//隊頭指示器屬性publicintFront{get{returnfront;}set{front=value;}}//隊尾指示器屬性publicintRear{get{returnrear;}第16頁共16頁set{rear=value;}}/
6、/初始化隊列publicCSeqQueue(){}publicCSeqQueue(intsize){data=newT[size];maxsize=size;front=rear=-1;}//入隊操作publicvoidEnQueue(Telem){if(IsFull()){Console.WriteLine("Queueisfull");return;}rear=(rear+1)%maxsize;;data[rear]=elem;}//出隊操作publicTDeQueue(){if(IsEmpty()){Console.W
7、riteLine("Queueisempty");returndefault(T);}front=(front+1)%maxsize;returndata[front];}//獲取隊頭數(shù)據(jù)元素publicTGetFront(){if(IsEmpty()){Console.WriteLine("Queueisempty!");returndefault(T);第16頁共16頁}returndata[(front+1)%maxsize];}//求循環(huán)順序隊列的長度publicintGetLength(){return(rear-
8、front+maxsize)%maxsize;}//判斷循環(huán)順序隊列是否為滿publicboolIsFull(){if((front==-1&&rear==maxsize-1)
9、
10、(rear+1)%maxsize==front){returntrue;}else{returnfalse;}