C语言-医院挂号排队系统
C语言-医院挂号排队系统
#include
#include
#include
#include //密码以不回显方式输入函数(getch();)的头文件
#include
#define TRUE 1 /*本程序碰到的最大的问题是getchar();及scanf();等输入函数入栈、出栈的问题,例如使用的是getchar()函数,
当使用者一次性输入过多字符时候,而程序本身就会递归的压栈和出栈问题。getchar每次只能选择一个字符,
其他多余的字符就会留给下一个输入函数getchar或scanf处理。就会造成程序的逻辑错误。*/
#define FALSE 0
#define NULL 0
#define Num 2000 //排队号码将以2000后开始
#define M 50
static int lists=1; //普通挂号的人员
static int treat=1; //急诊挂号的人员
static int aa=1; //没有去用指针,而是采用aa,bb来纪录挂号者的号码
static int bb=1;
static int success; //账户密码是否成功登陆
typedef struct Node //链队的定义
{
int data;
struct Node *next;
}QueueP;
typedef struct
{
QueueP *front;
QueueP *rear;
}LinkQueue;
int Patient(LinkQueue *q) //病人挂号排队程序
{
//这一段花了很长时间,刚开始以为指针q需要在外面定义。因为怕在里面声明程序循环会使指针重复指向。
QueueP *p; //然而在主函数中定义后,程序提示很多没有声明,才知道这个p开辟的空间指向后不会再重复指向。
//LinkQueue *q;
p=(QueueP *)malloc(sizeof(QueueP));
//q=(LinkQueue *)malloc(sizeof(LinkQueue));
//q->front=(QueueP *)malloc(sizeof(QueueP));
//q->rear=q->front;
p->data=lists++;
p->next=NULL;
q->rear->next=p;
q->rear=p;
printf(" +----------挂号成功,您的排队号码为:---------+\n\n %d\n\n",Num+p->data);
printf(" +-------------您当前的位置为:%2d-------------+\n",lists+treat-2);
struct tm *ptime; /*百度得来的,头文件为time.h
tm是一个已声明的函数,里面有tm_sec,tm_min,tm_hour,tm_mday等...
*/
time_t t;
t=time(NULL);
ptime=localtime(&t);
printf(" +--------------现在时间是: %d:%d------------+\n",ptime->tm_hour,ptime->tm_min);
printf(" +---------友情提示:当有急诊病人挂号时候-----+\n");
printf(" +----------此系统将以急诊病人的挂号优先------+\n");
printf("