模拟银行排队叫号机 2011.04.18

    技术2022-05-20  27

    银行挂号,看到排队叫号机,自不量力模拟实现以下。

    #include <iostream>

    using namespace std;

    #include <list>

     

    list<int> ListInt;

    void putIn(int a)

    {

    ListInt.push_back(a);

    }

    void getOut()

    {

    if (ListInt.size()>0)

    {

    cout<<ListInt.front()<<endl;

    ListInt.pop_front();

    }

    else

    {

    cout<<"no person here!"<<endl;

    }

    }

    int main()

    {

    cout<<"1--->11111:output(柜台1):"<<endl;

    cout<<"2--->22222:output(柜台2):"<<endl;

    cout<<"3--->putInt(排队领号):"<<endl;

    int i;

    int j = 0;

    while (cin>>i)

    {

    switch (i)

    {

    case 1:

    cout<<"11111: ";

    getOut();

    break;

    case 2:

    cout<<"22222: ";

    getOut();

    break;

    case 3:

    ++j;

    putIn(j);

    cout<<"您的号是:"<<j<<endl;

    cout<<"前面有:"<<ListInt.size()-1<<"个人"<<endl;

    break;

    default:

    break;

     

    }

    }

    return 0;

    }

    简单的链表实现。

    排队的号push_back到链表尾,柜台端读取一个号,从链表中把这个号删了。

    人家实际的应用中,应该是多线程互斥,需要解决多个柜台端同时叫号的问题。

    应该也用到了数据库,银行什么东西应该都有备份的,所以他们做的应该是把号存到

    数据库中,柜台端从数据库里面读数据。

    这是局域网实现的,我想用一下socket应该就够了吧。

     

    还是菜鸟,知识浅薄,妄自揣测,没想到的地方还请高手指点一下……


    最新回复(0)