C语言做的排队叫号系统

银行排队叫号系统

系统简介

这是一个使用C语言实现的银行排队叫号系统,支持多种业务类型的排队管理,具有叫号显示、窗口管理和统计功能。

功能特性

1. 排队号码生成

  • A类业务:个人业务(如:A001, A002, ...)
  • B类业务:对公业务(如:B001, B002, ...)
  • C类业务:特殊业务(如:C001, C002, ...)

2. 叫号功能

  • 自动分配空闲窗口
  • 显示当前办理窗口号
  • 显示业务类型和等待时间

3. 窗口管理

  • 支持最多5个服务窗口
  • 实时显示窗口状态(忙碌/空闲)
  • 显示当前办理的客户号码

4. 统计功能

  • 计算平均等待时间
  • 统计总服务客户数
  • 实时显示队列状态

系统要求

  • Windows操作系统
  • GCC编译器
  • 支持GB2312编码的控制台

编译和运行

编译程序

bash 复制代码
gcc -o bank_queue_system bank_queue_system.c

运行程序

bash 复制代码
bank_queue_system

一键编译并运行

bash 复制代码
gcc -o bank_queue_system bank_queue_system.c && bank_queue_system

使用说明

主菜单选项

  1. 取号 (A类业务) - 个人业务排队
  2. 取号 (B类业务) - 对公业务排队
  3. 取号 (C类业务) - 特殊业务排队
  4. 叫号 - 呼叫下一个客户到窗口
  5. 查看系统状态 - 显示当前窗口和队列状态
  6. 查看统计信息 - 显示平均等待时间等统计信息
  7. 退出系统 - 退出程序

操作流程

  1. 客户选择业务类型取号
  2. 系统生成对应的排队号码
  3. 工作人员点击"叫号"按钮
  4. 系统自动分配空闲窗口
  5. 显示叫号信息给客户
  6. 客户到指定窗口办理业务

系统特点

  • 队列管理:使用循环队列实现,支持最多100人同时排队
  • 时间统计:自动计算每个客户的等待时间
  • 窗口分配:智能分配空闲窗口,提高服务效率
  • 状态监控:实时显示系统运行状态

数据结构

Customer结构体

c 复制代码
typedef struct {
    char number[20];        // 排队号码
    char business_type;     // 业务类型 A/B/C
    time_t arrival_time;    // 到达时间
    time_t service_time;    // 开始服务时间
    int wait_time;          // 等待时间(分钟)
    int is_served;          // 是否已服务
} Customer;

Window结构体

c 复制代码
typedef struct {
    int window_id;          // 窗口编号
    char current_number[20]; // 当前办理的号码
    char business_type;     // 业务类型
    int is_busy;           // 是否忙碌
    time_t start_time;     // 开始服务时间
} Window;

注意事项

  1. 系统使用Windows API,仅支持Windows平台
  2. 控制台编码设置为GB2312,确保中文显示正常
  3. 时间统计精确到分钟级别
  4. 队列满时(100人)会提示无法继续取号

扩展建议

  • 添加数据持久化功能
  • 实现多线程支持
  • 添加图形用户界面
  • 支持更多业务类型
  • 添加优先级队列功能
相关推荐
王的宝库几秒前
GO常用标准库包
开发语言·后端·golang
php@king3 分钟前
hyperf初步认识和安装
后端
从零开始的嵌入式之旅5 分钟前
day36
linux·c语言·经验分享·笔记·嵌入式硬件
LEE15 分钟前
别再堆 AGENTS.md 了:前端团队如何把 AI Coding 做成一套可执行的工程系统
前端·后端
geovindu16 分钟前
python: Face Recognition
开发语言·后端·python·人脸识别
HRTOS18 分钟前
HRTOS应用示例:Mutex互斥锁机制详解
c语言·单片机·嵌入式硬件·51单片机
工具派27 分钟前
markdown在线编辑器怎么选?渲染管线的3个坑和md转PDF跑版记录
前端·后端
黑马程序员毕设1 小时前
基于Java的仪器管理系统设计与实现
java·开发语言·spring boot·后端·微信小程序
长大19881 小时前
执行计划看不懂?一文理清 Oracle CBO 优化器工作原理
后端
平头哥AI1 小时前
Day 13 | 一个函数回两个值:Go 的 error 是从哪冒出来的
开发语言·后端·golang