| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 400 人关注过本帖
标题:求大神帮助修改下!怎么实现窗口的动态显示!
只看楼主 加入收藏
小小小火柴
Rank: 5Rank: 5
来 自:江西赣州
等 级:职业侠客
威 望:3
帖 子:141
专家分:337
注 册:2012-9-28
结帖率:90.91%
收藏
已结贴  问题点数:30 回复次数:1 
求大神帮助修改下!怎么实现窗口的动态显示!
银行业务活动的模拟
任务:假设某银行有4个窗口对外接待客户,从早晨银行开门起不断有客户进入银行,由于每个窗口在某个时刻只能接待一个客户。因此在客户人数众多时需要在每个窗口前顺次排队,对于刚进入银行的客户。如果某个窗口的业务员正空闲,则可上前输业务。反之,若个窗口均有客户所占,他便会排在为数最少的队伍后面。编制一个程序模拟银行的这种业务活动并计算一天中客户在银行的平均逗留时间。
功能要求:
1).实现数据的输入;
2).各个窗口数据的访问和输出;
3)当前窗口的人员分布情况动态显示。
界面要求:有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能要求。
存储结构:学生自己根据系统功能要求自己设计。请在最后的上交资料中指明你用到的存储结构;
测试数据:要求使用1、全部合法数据;2、整体非法数据;3、局部非法数据。进行程序测试,以保证程序的稳定。

我的程序基本上就是用随机数写的。怎么实现(3)的功能?







#include<iostream>
#include<stdlib.h>
#include<windows.h>
using namespace std;
const int maxsize=1000;
class seqqueue
{
public:
    char queue[maxsize];//将队列中的元素定义为数组型
    int front;          //队头指针
     int rear;           //队尾指针
    int len;
    void iniqueue();     //设置空队列
    void enqueue(char x);      //将x插入到队尾中,进队
    void dlqueue();            //将队列的队头元素删除,退队
    char gethead();             //取队头元素的值
    int empty();              //判队空
};
void seqqueue::iniqueue()         //设置空队列
{
    front=rear=maxsize-1;
}
void seqqueue::enqueue(char x)          //将x插入到队尾中,进队
{
    if((rear+1)%maxsize==front)
        cout<<"overflow"<<endl;
    else
    {
        rear=(rear+1)%maxsize;
        queue[rear]=x;
    }
}
void seqqueue::dlqueue()                //将队列的队头元素删除,退队
{
    if(rear==front)
        cout<<"underflow"<<endl;
    else
        front=(front+1)%maxsize;
}
char seqqueue::gethead()              //取队头元素的值
{
    if(front==rear)
    {
        cout<<"underflow"<<endl;
        return NULL;
    }
    else
        return queue[(front+1)%maxsize];
}
int seqqueue::empty()               //判队空
{
    if(front==rear)
        return 1;
    else
        return 0;
}
int prepare()
{
    int i,x,n=1,m=0;
    int min;
    seqqueue *p=new seqqueue[4];
    for(i=0;i<4;i++)
        p[i].iniqueue();  //四个窗口的初始化
    for(i=0;i<4;i++)      //随机产生四个窗口排队人数   
    {
        p[i].len=1+rand()%10;
        m+=p[i].len;
    }

    for(;;)
    {
        cout<<"***********************************"<<endl;
        cout<<"***********************************"<<endl;
        cout<<"***********************************"<<endl;
        cout<<"*********银行业务模拟系统**********"<<endl;
        cout<<"******   【1】取号            *****"<<endl;
        cout<<"******   【2】窗口查询        *****"<<endl;
        cout<<"******   【3】总窗口查询      *****"<<endl;
        cout<<"******   【4】客户平均逗留时间*****"<<endl;
        cout<<"******   【5】退出系统        *****"<<endl;
        cout<<"***********************************"<<endl;
        cout<<"***********************************"<<endl;
        cout<<"***********************************"<<endl;
        cout<<endl;
        cout<<"请选择:"<<endl;
        cin>>x;
        switch(x)
        {
        case 1:
            {
                system("cls");
                for(i=0;i<4;i++)      //随机产生四个窗口排队人数   
                {
                    p[i].len=1+rand()%10;
                    m+=p[i].len;
                }
                cout<<"亲,您是第"<<m+1<<"位顾客哦!"<<endl;
                cout<<endl;
                cout<<"3秒后,返回主菜单……"<<endl;
                Sleep(3000);
                break;
            }
        case 2:
            {
                system("cls");
                int m;
                cout<<"请输入您要查询的窗口号(1-4):"<<endl;
                cin>>m;
                while(m<1||m>4)
                {
                    cout<<"窗口输入错误,请重新输入:";
                    cin>>m;        
                }
                cout<<m<<"号窗口有"<<p[m-1].len<<"位顾客。"<<endl;
                cout<<endl;
                cout<<"5秒后,返回主菜单……"<<endl;
                Sleep(5000);
                cout<<endl;
                break;
            }
        case 3:
            {
                system("cls");
                for(i=0;i<4;i++)      //计算最少人数
                {
                   min=p[0].len;
                     for(i=1;i!=4;i++)
                     {
                       min=(min<p[i].len)?min:p[i].len;
                     }
                }
                for(i=0;i<4;i++)      //计算最少人数的窗口  i+1
                {
                    if(p[i].len==min)
                    {
                        i=i++;
                        break;
                    }
                }
                cout<<"1号窗口有"<<p[0].len<<"位顾客。"<<endl;
                cout<<"2号窗口有"<<p[1].len<<"位顾客。"<<endl;
                cout<<"3号窗口有"<<p[2].len<<"位顾客。"<<endl;
                cout<<"4号窗口有"<<p[3].len<<"位顾客。"<<endl;
                cout<<"所以,亲,你可以排在"<<i<<"号窗口哦!"<<endl;
                cout<<"预计您只要稍等"<<min*(1+rand()%5)<<"分钟,就到您了!"<<endl;
                cout<<endl;
                cout<<"5秒后,返回主菜单……"<<endl;
                cout<<endl;
                Sleep(5000);
                break;
            }
        case 4:
            {
                system("cls");
                int p,q;
                p=100+rand()%200;
                q=1+rand()%15;
                cout<<"银行大概一天办理业务的客户数:";
                cout<<p<<"人"<<endl;
                cout<<"每个客户平均逗留的时间:";
                cout<<q<<"分钟"<<endl;
                cout<<endl;
                break;


            }
        case 5:
            {
                return 0;
            }
        }


    }


}
void main()
{
    prepare();
}


搜索更多相关主题的帖子: 银行 动态 
2013-01-04 18:47
yuccn
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:何方
等 级:版主
威 望:167
帖 子:6814
专家分:42393
注 册:2010-12-16
收藏
得分:21 
3)当前窗口的人员分布情况动态显示。 把相关数据输出就行了吧

我行我乐
公众号:逻辑客栈
我的博客:
https://blog.yuccn. net
2013-01-06 12:29
快速回复:求大神帮助修改下!怎么实现窗口的动态显示!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018290 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved