日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

队列仿真一个银行叫号系统

發布時間:2023/12/20 windows 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 队列仿真一个银行叫号系统 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

利用隊列仿真一個銀行叫號系統,定義開戶、取款、存款、銷戶四種業務,每個業務時長不同,大家可以提前定義好(比如開戶20分鐘,取款15分鐘,存款10分鐘,銷戶25分鐘),定義m個服務窗口,隨機生成n個業務(放在隊列中存儲),編寫程序仿真出這m個窗口具體辦理的客戶的順序。

叫號系統的的輸出類似這樣:比如10個人,他們辦理的業務類型是隨機的,有3個服務窗口,輸出的是:
客戶1,1號窗口,
客戶2,2號窗口,
客戶3,3號窗口;
客戶4,3號窗口;
…….

#include<iostream> using namespace std; typedef struct User {int id;int val; }User; User stu[7] = { {1,1},{2,2},{3,3},{4,3},{5,1},{6,4},{7,3} };//客戶數組 int timenum[5] = {0,20,15,10,25 };//操作時間數組,多設一個便于檢索 int account[3] = { 0 };//三個窗口時間變化數組 //char string[4][12] = {"開戶","取款","存款","銷戶"}; class Queue { public:int maxsize;int front;int rear;struct User* stx;Queue(int size)//初始化{maxsize = size;stx = new User[size];front = rear = 0;}~Queue(){delete[]stx;}bool EnQueue(User x)//入棧{if ((rear + 1) % maxsize == front){cout << "棧滿,溢出" << endl;return false;}stx[rear] = x;rear = (rear + 1) % maxsize;return true;}bool DeQueue(User &x)//出棧{if (front == rear){cout << "隊列為空" << endl;return false;}x = stx[front];front = (front + 1) % maxsize;return true;} };int main() {Queue queue(8);for (int i = 0;i < 7;i++)//初始化{queue.EnQueue(stu[i]);}User w[3],cru;for (int i = 0;i < 3;i++)//初始化窗口{queue.DeQueue(cru);w[i] = cru;account[i] = timenum[w[i].val];cout << "客戶" << w[i].id << " 窗口" << i+ 1 << endl;}while (queue.front != queue.rear)//循環{int j = 0;while (j< 3){if (account[j] == 0)//如果有窗口結束,則換人{queue.DeQueue(cru);w[j] = cru;account[j] = timenum[w[j].val];cout << "客戶" << w[j].id << " 窗口" << j + 1 << endl;//一旦交替,就輸出}j++;}for (int i = 0;i < 3;i++)//表示時間的流逝{account[i]--;}}return 0; }

總結

以上是生活随笔為你收集整理的队列仿真一个银行叫号系统的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。