1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > c#如何实现叫号操作_C#银行排队叫号系统

c#如何实现叫号操作_C#银行排队叫号系统

时间:2021-08-02 17:45:24

相关推荐

c#如何实现叫号操作_C#银行排队叫号系统

展开全部

// 写了一个比较简陋的排队系统,可以参考下:classProgram{

staticvoidMain(string[]args){

ServiceWindow[]serviceWindows=newServiceWindow[Bank.MAX];

for(inti=0;i

serviceWindows[i]=newServiceWindow(){No=(i+1).ToString()};

Bankbank=newBank(serviceWindows);

Randomrand=newRandom();

//多线程模拟顾客取号

newThread(()=>{

intk=0;

while(true){

Bank.Enqueue();

if(++k>=100)break;

Thread.Sleep(1000);

}

}).Start();

//多线程模拟服务窗口e5a48de588b63231313335323631343130323136353331333363396433叫号

newThread(()=>{

while(true){

bank.ServiceWindows[rand.Next(0,Bank.MAX)].Call();

Thread.Sleep(3000);

}

}).Start();

Console.ReadKey(true);

}

}

internalclassBank{

publicconstintMAX=3;

publicstaticConcurrentQueuequeue{get;set;}

publicstaticvolatileuintcurNo=0;

publicBank(){

Init();

}

publicvoidInit()

{

queue=newConcurrentQueue();

}

publicBank(ServiceWindow[]serviceWindows)

{

Init();

ServiceWindows=serviceWindows;

}

publicServiceWindow[]ServiceWindows{get;set;}

publicstaticvoidEnqueue()

{

intk=0;

k=queue.Count();

curNo++;

queue.Enqueue(curNo);

Console.WriteLine("您的号码是:"+(curNo)+",前面还有"+k+"人在等待!");

}

}

internalclassServiceWindow{

publicStringNo{get;set;}

publicboolCall()

{

uintresult=0;

boolsuccess=false;

success=Bank.queue.TryDequeue(outresult);

if(success)Console.WriteLine(result+"号,请到"+No+"号窗口办理业务!");

returnsuccess;

}

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。