数据结构(C语言)实训-电话客服模拟器

该博客介绍了如何使用C语言实现电话客服模拟器的数据结构部分,包括队列的初始化、判断队列是否为空或已满、入队、出队、获取队首元素以及打印队列元素等功能。同时,定义了`queuedata`结构体用于存储电话呼叫的到达时间和服务时间。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

main.c
/*************************************************************
题目:电话客户服务模拟
    1、	问题描述
一个模拟时钟提供接听电话服务的时间(以分钟计),然后这个时
钟将循环地自增1(分钟),直到到达指定的时间为止。在时钟的每
个“时刻”,就会执行一次检查来看看当前电话的服务是否已经完成,
如果是,这个电话从电话队列中删除,模拟服务将从队列中取出下
一个电话(如果有)继续开始。同时还需要执行一个检查来判断是
否有一个新的电话到达,如果有将其到达的时间记录下来,并为其
产生一个随机服务时间,这个服务时间也被记录下来,然后将这个
电话放入电话队列中,当客户服务人员空闲时,按照先来先服务的
方式处理这个队列。当时钟到达指定时间时,不会再接听新电话,
但是服务将继续,直到队列中所有电话得到处理为止。
    2、	要求
    (1)	程序需要处理的初始数据包括:客户服务人员的人数
、时间限制,电话到达的速率,平均服务时间。
    (2)	程序产生的结果包括:处理的电话数,每个电话的平
均等待时间
运行环境:windows Code::blocks
*************************************************************/
#include <stdio.h>
#include <time.h>
#include "queue.h"
/**需要输入的数据*/
int customer_service_staff_num = 5;//客户服务人员的人数
time_t time_limite = 20;//时间限制
double telephone_rate = 60.0/60;//电话到达的速率
/*此处为简化程序默认通电时间在0到2倍平均时间之间均匀分布*/
int average_service_time = 10;//平均服务时间
/**其他全局变量*/
time_t start_time;//记录开始时间
time_t t;//上次时间
int period_time;//电话到达的周期
time_t rawtime;//当前时间,以秒计,从1970年1月一日起算
queue tel_wait_que;//电话等待队列
int wait_time_sum  = 0;//等待时间
int phone_sum = 0;//电话计数
int phone_service_finished = 0;//电话服务是否全部完成?1:未完成;0:完成
/**题目中所指的电话队列指的不可能是计算机用语中的队列,因为删除的不是总在开头*/
time_t *tel_que;//“电话队列”指针

void init()//初始化
{
    int i;
    system("clear");
    printf("请输入客户服务人员的人数(建议输入5)\n");
    scanf("%d", &customer_service_staff_num);
    printf("请输入时间限制(建议输入20)(单位为分钟,此程序的1分钟为现实中的1秒)\n");
    scanf("%ld", (long *)&time_limite);
    printf("请输入电话到达的速率,指平均每分钟到达的电话数,取值范围(0,1](
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值