/// <summary> /// 银行排队叫号 /// </summary> /// <param name="args"></param> static void Main(string[] args) { try { IBankQueue bankQueue = null; Console.WriteLine("请选择存储结构类型:1.顺序队列,2.链队列"); string flag = Console.ReadLine(); switch (flag) { case "1": Console.WriteLine("请输入队列可容纳人数:"); int count = Convert.ToInt32(Console.ReadLine()); bankQueue = new CSeqBankQueue(count); break; case "2": bankQueue = new LinkBankQueue(); break; } int windowsnum = 5; ServiceWindow[] serviceWindows = new ServiceWindow[windowsnum]; Thread[] serviceThread = new Thread[windowsnum]; for (int i = 0; i < windowsnum; i++) { serviceWindows[i] = new ServiceWindow(); serviceWindows[i].Bankq = bankQueue; serviceThread[i] = new Thread(serviceWindows[i].service); serviceThread[i].Name = (i + 1).ToString(); serviceThread[i].Start(); } while (true) { Console.WriteLine("点击获取号码:"); Console.ReadLine(); if (bankQueue != null && (bankQueue.GetLength() < bankQueue.MaxSize || flag == "2")) { int callnumber = bankQueue.GetCallNum(); Console.WriteLine("{2}:您的号码时:{0},前面还有{1}位等待。", callnumber, bankQueue.GetLength(), DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")); bankQueue.In(callnumber); } else { Console.WriteLine("请重试"); } Console.WriteLine(); } } catch (Exception ex) { Console.WriteLine(ex.Message + ex.StackTrace); } }
public static void Main(string[] args) { IBankQueue bankQueue = null; Console.WriteLine("请选择存储结构的类型:1.顺序队列 2.链队列"); char seleflag = Convert.ToChar(Console.ReadLine()); switch (seleflag) { case '1': int count; Console.Write("请输入队列可容纳人数:"); count = Convert.ToInt32(Console.ReadLine()); bankQueue = new CSeqBankQueue(count); break; case '2': bankQueue = new LinkBankQueue(); break; } int windowcount = 1; ServiceWindow[] sw = new ServiceWindow[windowcount]; Thread[] swt = new Thread[windowcount]; for (int i = 0; i < windowcount; i++) { sw[i] = new ServiceWindow(); sw[i].BankQ = bankQueue; swt[i] = new Thread(new ThreadStart(sw[i].Service)); swt[i].Name = "" + (i + 1); swt[i].Start(); } while (true) { Console.Write("请点击触摸屏幕获取号码:"); Console.ReadLine(); int callnumber; if (!bankQueue.IsFull()) { callnumber = bankQueue.GetCallnumber(); Console.WriteLine("您的号码是:{0},你前面有{1}位,请等待", callnumber, bankQueue.GetLength()); bankQueue.EnQueue(callnumber); } else { Console.WriteLine("现在业务繁忙,请稍后再来!"); } Console.WriteLine(); } }