医院排队系统

#include <iostream>
#include <string>
using namespace std;


const int MAXSIZE = 100;


class CPeopleInfo //每个人的信息类
{
public:
string m_name; //名字
string m_number; //编号
int m_age; //年龄
int m_isMan; //性别
public:
void Input() //输入
{
cout << "请输入姓名、名单编号、年龄、性别(0 or 1), 用空格或换行隔开:\n";
cin >> m_name >> m_number >> m_age >> m_isMan;
if(m_isMan > 1) m_isMan = 1;
if(m_isMan < 0) m_isMan = 0;
}
int GetOrder() //分配科室
{
if(m_age >= 40) return m_isMan + 4;
else if(m_age >= 10) return m_isMan + 2;
else return m_isMan;
}
};


class Queue //队列
{
public:
CPeopleInfo q[MAXSIZE];
int front, end;


Queue() //循环队列,两个指针,一个首指针,一个尾指针
{
front = end = 0;
}


void Push(CPeopleInfo t) //入队列
{
if((end + 1) % MAXSIZE == front) return; //队满
end = (end + 1) % MAXSIZE;
q[end] = t;
}


void Call() //叫号
{
if(front == end) return; //队空
front = (front + 1) % MAXSIZE;
cout << q[front].m_name << endl;
cout << q[front].m_number << endl;
}


void Display(int order) //显示一个科室的排队信息
{
if(order == 0) cout << "儿科(女):\n";
if(order == 1) cout << "儿科(男):\n";
if(order == 2) cout << "青年科(女):\n";
if(order == 3) cout << "青年科(男):\n";
if(order == 4) cout << "老年科(女):\n";
if(order == 5) cout << "老年科(男):\n";


int num = 0;
for(int i = front; i != end; )
{
i = (i+1) % MAXSIZE;
if(q[i].GetOrder() == order)
{
cout << "                " << num + 1 << endl;
cout << "                姓名: " << q[i].m_name << endl;
cout << "                编号: " << q[i].m_number << endl;
num++;
}
}

if(num == 0) cout << "                无人排队\n";
}




void Display(int order1, int order2) //显示一个科室的排队信息
{
int num = 0;
for(int i = front; i != end; )
{
i = (i+1) % MAXSIZE;
if(q[i].GetOrder() == order1 || q[i].GetOrder() == order2)
{
cout << "                " << num + 1 << endl;
num++;

}
}

if(num == 0) cout << "                无病人\n";
}


void DisplayAll() //显示所有科室的信息
{
cout << endl << "排队信息:" << endl;
for(int i = 0; i < 6; i++)
Display(i);
}


void DisplayAll_D() //显示所有科室的信息,不分性别
{

cout << endl << "各科室总体排队信息:" << endl;
cout << "儿科:\n";
Display(0, 1);
cout << "青年科:\n";
Display(2, 3);
cout << "老年科:\n";
Display(4, 5);
}
};


int main()
{
Queue Q;
cout << "请输入总人数:\n";
int n;
cin >> n;
CPeopleInfo t;
for(int i = 0; i < n; i++)
{
t.Input();
if(t.m_age > 0 && t.m_age <=150)
Q.Push(t);
}
Q.DisplayAll();
Q.DisplayAll_D();
return 0;
}
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
医院排队叫号导诊台取号系统为SQL网络版,排队叫号系统办事营业大厅版主要面向营业厅,办事大厅等各类服务场所(系统可接物理呼叫器和LED窗口屏,可以和评价器结合使用), 为改善办事大厅和管理所存在的一些混乱、无序等弊端而开发的,系统能很好地解决顾客在服务中所遇到的各种排队、拥挤和混乱等现象,为顾客办事及员工操作带来莫大的方便和愉悦,做到人人平等,合理公正,秩序井然。同时也能对客户情况及员工的工作状况做出各种统计,为管理层进一步决策提供依据。本系统有上百家的成功案例,是由一批常年开发叫号系统的工程师历时多年开发而成的一个系统系统成熟稳定。 医院排队叫号导诊台取号系统优 a、整个系统全部可采用软件实现排队叫号,不用布线,充分利用现有的计算机设备就可以实排队叫号管理,节约了投入的硬件成本,,是同类软件性价比最高的软件之一,系统实施简单方便; b、液晶/同步LED屏显示格式可以自定义; c、取号界面也实现了自定义,业务可以随时增加和删除,图片和样式可以随便切换; d、营业员端呼叫软件的设计充分为营业员着想,完全不影响营业员的工作,软件自动隐藏,营业员呼叫时用自定义的热键就可以呼叫,不用打开呼叫软件界面。 e、显示屏软件和取号机系统可以共用一台电脑,相互不影响。节省电脑硬件资源。 f、可以和物理呼叫器一起使用,在没有电脑的窗口可以接物理呼叫器,系统方便灵活配置。 g、语音支持普通话女声、普通话男声、英语女声、粤语女声等多语种。 h、系统可以和评价系统相结合使用,真到达到一个排队号码一次评价。 i、 基本兼容市场上LED屏通讯协议(可以定制)。 医院排队叫号导诊台取号系统主要包括5个子程序 1、 排队系统参数设置程序pdcsset.exe运行它就可以设置排队叫号系统的相关参数; 2、 控制系统加语音系统“proserver.exe”,此子程序主要作用是和安装在营业员端的虚拟叫号程序进行通信,并发出叫号信息的语音。 3、 营业员端虚拟叫号程序,此子程序主要是给营业员用来呼叫客户的,此程序会自动隐藏,有热键功能,安装在营业员端的电脑上,完全不影响的工作,营业员只要按事先定义好的热键就可以呼叫客户过来办理。 4、 液晶显示屏或等离子显示屏/同步LED屏显示程序,此子程序主要是用来显示呼叫客户的排队系统,比如营业员端按下呼叫下一个,则显示屏上就显示“请1001号到201窗口 办理”等信息。 5、 触摸屏取号系统, 此程序是为客户取号用的,软件安装在一个触摸屏机上,也可安装在普通电脑上,设置好办理业务业务后,客户点击相应的办理业务,打印机打出一张排队号票。 医院排队叫号导诊台取号系统 v30.6.9更新日志 更新:取号程序。 医院排队叫号导诊台取号系统截图

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值