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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

【c++实现】模拟银行叫号系统

發布時間:2023/12/20 c/c++ 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【c++实现】模拟银行叫号系统 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

/********************編譯環境是codeblocks*******************/

/*銀行叫號系統

問題描述:模擬銀行叫號系統,當客戶到達銀行的時候 ,取號,顯示當前客戶號,以及正在等待的客戶人數;
? ? ? ? ? 當有窗口 空閑的時,若有等待的客戶,則顯示信息:請XXXX號客戶到窗口辦理 。
測試數據:假設有一個窗口,前后共有6個客戶。
系統效果:1、客戶到達,取號
?2、有窗口空閑,叫號
?3、退出系統
實現貼士:用隊列 ?可以是順序的也可以是鏈式的
選用沒有頭結點的鏈式隊列


*/

/*問題總結+代碼*/

? ? ? ? ? ? ? /*****************head文件********************/

#include<iostream>
using namespace std;
? struct QNode{
char id;//當前的號碼
QNode *next;//指向下一個節點
};
class LoopQueue{
private:
QNode *head;//指向的指針
QNode *rear;//指向尾部的指針
int length;//長度 ? ?用于取號的時候
public:
void init();
void EnQueue(char n);//入隊
bool DeQueue(QNode &e);//出隊
void add(QNode *p);


void removenode();
//void tranverse();//遍歷
// bool SetEmpty(); ?//置空
int getLength();
QNode * gethead(){
return head;
}


};
//沒有頭結點
//初始化
void LoopQueue::init(){
head=NULL; rear=NULL;
length=0;


}
//入隊
void LoopQueue::add(QNode *e){


? ? /*
? ? ? ? ? ? 之前運行不出來的原因就是:
? ? ? ? ? ? 在空隊列的時候 ? 插入操作 和 ?有元素的操作不一樣


? ? */
? ? ?QNode *p=e;//讓指針p指向e;等待接入節點
? ? if(length==0){//空隊列
? ? ? ? head=p;
? ? ? ? rear=p;length++;
? ? }else{
? ? ? ? ?rear->next=p;
? ? ? ? rear=rear->next;//rear 移動到新接入的節點上
? ? ? ? length++;
? ? }


}
void LoopQueue::EnQueue(char n){//改一改自己的風格,傳個節點吧!!!娜娜棒棒的


QNode *p=new QNode;
p->id=n;//傳入的值作為 ?節點p的id值 ? 封裝好數據
add(p);




}


//出隊
bool LoopQueue::DeQueue(QNode &e){//e是要取值的節點


if(length==0){//空
return false;
}
e.id=head->id;//叫號時候的號碼 ?用e把他傳出來
QNode *p=head;//再用一個指針 ?指向頭 ?準備釋放掉這個節點
head=head->next;//移動head這個指針




return true;
}
void LoopQueue::removenode(){
? ? if(length==0){
? ? ? ? ? ? cout<<"沒有了!!!"<<endl;
? ? }
? ? ? ? QNode *p = head;
? ? ? ? head=p->next;//移動head
? ? ? ? delete p;
? ? ? ? length--;




}


?int ?LoopQueue::getLength(){
? return length;

?}


? ?/***********************main文件****************************/



#include "BankHead.h"
int main(){


int a,i=1;
QNode e;
LoopQueue queue;


queue.init();//初始化
cout<<"請選擇:\n1、歡迎光臨!請排隊取號,等候叫號!"<<endl
? ? ? ? <<"2、服務號空閑,開始叫號" <<endl
? ? ? ? <<"3、服務結束!退出系統!"<<endl;
while(cin>>a){


? ? ? ? switch(a){


? ? ? ? ? ? case 1:
? ? ? ? ? ? ? ? queue.EnQueue(i++);
cout<<"歡迎光臨!"<<"綜合業務"<<endl
<<"您的號碼是"<<i-1<<endl
//<<"您的號碼是"<<queue.getLength()<<endl
<<"您前面有"<<queue.getLength()-1<<"人等候"<<endl;break;


? ? ? ? ? ? case 2:
? ? ? ? ? ? ? ? if(queue.DeQueue(e)){
? ? ? ? ? ? ? ? ? ? cout<<"請"<<e.id<<"號客戶到窗口辦理!"<<endl;
? ? ? ? ? ? ? ? }else{
? ? ? ? ? ? ? ? ? ? cout<<"效率不錯!所有客戶問題解決完畢!\n你可以稍稍休息一下\n";
? ? ? ? ? ? ? ? }break;


? ? ? ? ? ? case 3:cout<<"小娜娜,期待您下次光臨哈!"<<endl;break;
? ? ? ? }
}






return 0;
}


/*************************結束*******************************/




總結

以上是生活随笔為你收集整理的【c++实现】模拟银行叫号系统的全部內容,希望文章能夠幫你解決所遇到的問題。

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