㏑√1藍瑟+∞ 2021-06-16 21:54 采纳率: 0%
浏览 85

拜托c语言大神解决队列难题

利用队列模拟服务台前的排队现象问题。

问题描述:某银行有一个客户办理业务站,在单位时间内随机地有客户到达,设每位客户的业务办理时间是某个范围的随机值。设只有一个窗口,一位业务人员,要求程序模拟统计在设定时间内,业务人员的总空闲时间和客户的平均等待时间。假定模拟数据已按客户到达的先后顺序依次存于某个正文数据文件中,对应每位客户有两个数据:到达时间和需要办理业务的时间,文本文件内容如:10 20 23 10 45 5 55 10 58 15 65 10。

【数据描述】

typedef struct{

   int arrive;

   int treat;//客户的信息结构

}QNODE;

typedef struct node{

QNODE data;

Struct node *next;//队列中的元素信息

}LNODE,*QueuePtr;

 

typedef struct{ //链队列类型

    QueuePtr front ; //队头指针

    QueuePtr rear ; //队尾指针

} LinkQueue;

【算法描述】

 { 设置统计初值:业务员等待时间,客户总的待时间,客户总人数等

   设置当前时钟clock时间为0;//用变量clock来模拟当前时间.

   打开数据文件,准备读;

   读入第一位客户信息于暂存变量中;//文件读操作have= fscanf(fp,"%d %d",&temp.arrive,&temp.treat);

 do{//约定每轮循环,处理完一位客户

if(等待队列为空,并且还有客户)

{   //等待队列为空时

    累计业务员总等待时间;

    时钟推进到暂存变量中的客户的到达时间;//clock=temp.arrive

    暂存变量中的客户信息进队;

    读取下一位客户信息于暂存变量;

    }

从等待队列出队一位客户;

   累计客户人数;

   将该客户的等待时间累计到客户的总等待时间;//=当前时间-客户到达时间

   设定当前客户的业务办理结束时间;//=当前时间+客户办理业务所需时间

  while(下一位客户的到达时间在当前客户处理结束之前,并且还有客户)

{

暂存变量中的客户信息进队;

 读取下一位客户信息于暂存变量;

     }

   时钟推进到当前客户办理结束时间;

 }while(还有未处理的客户);//等待队列不为空或者还有客户(have==2)

计算统计结果,并输出;

 

 

附:文件操作:

char Fname[120];//读取文件的文件名

    FILE*fp;

 if((fp=fopen(Fname,"r"))==NULL)

        {

        printf("文件打开出错");

         return 0;

        }

have= fscanf(fp,"%d %d",&temp.arrive,&temp.treat);//have返回值等于从文件中一次读操作读出数据的个数,这里等于2.

  • 写回答

1条回答 默认 最新

  • 有问必答小助手 2021-06-21 11:49
    关注

    你好,我是有问必答小助手,非常抱歉,本次您提出的有问必答问题,目前超出我们的服务范围,暂时无法为您解答。

    首次提问人员可免费体验一次有问必答服务。目前首次提问的问题服务范围为:编程语言、Java开发、python、数据库、前端开发 领域专业技术问题,为您提供问题的解决思路和指导。不提供源码代写、项目文档代写、论文代写、作业代写、安装包资源发送或安装、软件使用指导等服务。

    我们后续会持续优化,扩大我们的服务范围,为您带来更好地服务。

    评论

报告相同问题?

悬赏问题

  • ¥15 ArcGIS计算复数渔网内poi数量
  • ¥15 抖音直播广场scheme
  • ¥15 为什么我明明有这个文件调试器还显示错误?
  • ¥15 软件工程用例图的建立(相关搜索:软件工程用例图|画图)
  • ¥15 如何在arcgis中导出拓扑关系表
  • ¥15 处理数据集文本挖掘代码
  • ¥15 matlab2017
  • ¥15 在vxWorks下TCP/IP编程,总是connect()报错,连接服务器失败: errno = 0x41
  • ¥15 AnolisOs7.9如何安装 Qt_5.14.2的运行库
  • ¥20 求:怎么实现qt与pcie通信