?? main.cpp
字號:
#include"bank.h"
#include"iostream"
#include"random.h"
#include"fstream"
using namespace std;
void main()
{
//主函數...in.txt文件開頭順序輸入是total,closetime,交易時間的上,下屆(兩個),間隔時間的上,下屆。(共六個基本輸入參數)
ifstream cin("in.txt");
bankqueue q1,q2;
int total,closetime;
cin>>total;
cin>>closetime;
random b;
int i=1;
int low1,high1,low2,high2;
cin>>high1;
cin>>low1;
cin>>high2;
cin>>low2;
Client * p=new Client ;
//下面用while語句時間把每個客戶的交易數值存入隊列1里,并用隨機類產生交易時間和間隔時間..
while(cin>>p->money)
{
p->num=i;
p->dealtime=b.between(low1,high1);//隨機類產生交易時間
p->restime=b.between(low2,high2);//隨機類產生間隔時間
q1.enqueue(p);
i++;
}
int time=0;
//下面從隊列1里逐個出隊列進行操作
while(!q1.isEmpty() && time<=closetime)
{
Client *op=q1.dequeue();
cout<<"客戶"<<op->num<<" 在時間"<<time <<"來到銀行"<<endl;
cout<<"當前銀行余額為¥"<<total<<endl;
if(op->money<0 && -(op->money)>total)//不滿足的進隊列2
{
q2.enqueue(op);
cout<<"銀行總額不足,客戶"<<op->num<<"轉入第二隊列等待"<<endl;
cout<<"當前銀行余額為¥"<<total<<endl;
}
else if (op->money<0 && -(op->money)<total)//取款
{
total+=op->money;
cout<<"客戶"<<op->num<<"從銀行取款¥"<<op->money<<endl;
cout<<"當前銀行余額為¥"<<total<<endl;
time+=op->dealtime;
if(time>closetime)break;
cout<<"客戶"<<op->num<<"在時間"<<time<<"離開銀行"<<endl;
cout<<"當前銀行余額為¥"<<total<<endl;
time+=op->restime;
if(time>closetime)break;
}
else //存款
{
int store=total;
total+=op->money;
cout<<"客戶"<<op->num<<"在時間"<<time<<"向銀行存款$"<<op->money<<endl;
cout<<"當前銀行余額為¥"<<total<<endl;
time+=op->dealtime;
if(time>closetime)break;
cout<<"客戶"<<op->num<<"在時間"<<time<<"離開銀行"<<endl;
cout<<"當前銀行余額為¥"<<total<<endl;
time+=op->restime;
cout<<"現在檢查第二隊列"<<endl;
int ip=q2.n;
while(ip && total>store)//存款之后檢查隊列2
{
Client *d=q2.dequeue();
if(total>d->money)
{
total+=d->money;
cout<<"客戶"<<d->num<<"在時間"<<time<<"從銀行取款"<<d->money<<"離開"<<endl;
delete d;
}
else
{
q2.enqueue(d);
delete d;
}
ip--;
}
if(time>closetime)break;
}
}
//時間到了所有客戶出隊列...關閉
if(q1.n>0||q2.n>0)
{
cout<<"銀行營業時間已到。所有客戶退出"<<endl;
q1.deleteALLValues();
q2.deleteALLValues();
}
system("pause");
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -