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

c#如何实现叫号操作_C#银⾏排队叫号系统展开全部
// 写了⼀个⽐较简陋的排队系统,可以参考下:class Program{
static void Main(string[] args){
ServiceWindow[] serviceWindows = new ServiceWindow[Bank.MAX];
for (int i = 0; i
serviceWindows[i] = new ServiceWindow() { No = (i + 1).ToString() };
Bank bank = new Bank(serviceWindows);
Random rand = new Random();
// 多线程模拟顾客取号
new Thread(() =>{
int k = 0;
while (true){
Bank.Enqueue();
if (++k>=100) break;
Thread.Sleep(1000);
}
}).Start();
// 多线程模拟服务窗⼝e5a48de588b63231313335323631343130323136353331333363396433叫号
new Thread(() =>{
while (true){
bank.ServiceWindows[rand.Next(0, Bank.MAX)].Call();
Thread.Sleep(3000);
}
}).Start();
Console.ReadKey(true);
}
}
internal class Bank{
public const int MAX = 3;
public static ConcurrentQueue queue { get; set; }
public static volatile uint curNo=0;
public Bank() {
Init();
银行排队叫号系统
}
public void Init()
{
queue = new ConcurrentQueue();
}
public Bank(ServiceWindow[] serviceWindows)
{
Init();
ServiceWindows = serviceWindows;
}
public ServiceWindow[] ServiceWindows { get; set; }
public static void Enqueue()
{
int k = 0;
k = queue.Count();
curNo++;
queue.Enqueue(curNo);
Console.WriteLine("您的号码是:" + (curNo) + ",前⾯还有" + k + "⼈在等待!"); }
}
internal class ServiceWindow{
public String No { get; set; }
public bool Call()
{
uint result=0;
bool success=false;
success = Bank.queue.TryDequeue(out result);
if(success) Console.WriteLine(result+"号,请到"+No+"号窗⼝办理业务!"); return success;
}
}

本文发布于:2024-09-23 12:19:50,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/1/357799.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:系统   排队   模拟   操作   办理   实现   业务
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议