模拟港澳通行证办理流程系统(队列基础练习)
2013-08-11 09:09
369 查看
#define N 2
#define M 5
#define True 1
#define False 0
#define NULL 0
typedef struct
{
int num;
int arrtime;
}ELEMTP;
typedef struct node
{
int num;
struct node *next;
}QNode;
typedef struct
{
QNode *front,*rear;
}LQueue;
void InitQueue(LQueue *s);
void EnQueue(LQueue *q, int num1);
int DelQueue(LQueue *q);
void InitQueue(LQueue *q)
{
q->front = (QNode *)malloc(sizeof(QNode));
q->rear = q->front;
q->front->next = NULL;
q->front->num = 0;
}
void EnQueue(LQueue *q,int num1)
{
QNode *p;
p = (QNode *)malloc(sizeof(QNode));
p->next = NULL;
p->num = num1;
q->rear->next = p;
q->rear = p;
q->front->num++;
}
int DelQueue(LQueue *q)
{
QNode *p;
int n;
if(q->front == q->rear)
{
printf("no person here");
return 0;
}
else
{
p = q->front->next;
q->front->next = p->next;
if(p->next == NULL)
{
q->rear = q->front;
}
n = p->num;
free(p);
q->front->num--;
return n;
}
}
int Display(LQueue *q)
{
int k;
QNode *p;
if(q->front->num)
{
for(k = 1,p = q->front->next;p;p = p->next)
{
printf("%d NUM:%d\n",k++,p->num);
}
}
}
int Endq(LQueue *q)
{
while(q->front->num)
{
DelQueue(q);
}
printf("the queue is empty\n");
}
int main()
{
LQueue * q,* q1,* q2;
char ch2;
int n = 100;
char cmd;
int num;
int quenum = 0;
q1 = (LQueue *)malloc(sizeof(LQueue));
q2 = (LQueue *)malloc(sizeof(LQueue));
while(1)
{
printf("********************************************************************\n");
printf("opt E:enqueue D:deal I:start construction L:time up R:status\n ");
printf("\n");
cmd = getchar();
printf("your input is %c\n",cmd);
printf("please choice your queue:1~2\n");
ch2 = getchar();
scanf("%d",&quenum);
printf("queue = %d\n",quenum);
if(quenum == 1)
{
q = q1;
}
else
{
q = q2;
}
if((q->front == NULL)&&(cmd != 'I'))
{
printf("makesure we are in workting ime\n");
}
switch(cmd)
{
case 'I':
InitQueue(q);
break;
case 'E':
printf("your num is %d\n",n);
EnQueue(q,n++);
break;
case 'D':
num = DelQueue(q);
if(num == 0)
{
continue;
}
printf("It's %d's turn\n",num);
break;
case 'R':
printf("the current status of the queue: \n");
Display(q);
break;
case 'L':
printf("time is up\n");
Endq(q);
break;
default:
printf("cmd err\n");
break;
}
ch2 = getchar();
}
}
#define M 5
#define True 1
#define False 0
#define NULL 0
typedef struct
{
int num;
int arrtime;
}ELEMTP;
typedef struct node
{
int num;
struct node *next;
}QNode;
typedef struct
{
QNode *front,*rear;
}LQueue;
void InitQueue(LQueue *s);
void EnQueue(LQueue *q, int num1);
int DelQueue(LQueue *q);
void InitQueue(LQueue *q)
{
q->front = (QNode *)malloc(sizeof(QNode));
q->rear = q->front;
q->front->next = NULL;
q->front->num = 0;
}
void EnQueue(LQueue *q,int num1)
{
QNode *p;
p = (QNode *)malloc(sizeof(QNode));
p->next = NULL;
p->num = num1;
q->rear->next = p;
q->rear = p;
q->front->num++;
}
int DelQueue(LQueue *q)
{
QNode *p;
int n;
if(q->front == q->rear)
{
printf("no person here");
return 0;
}
else
{
p = q->front->next;
q->front->next = p->next;
if(p->next == NULL)
{
q->rear = q->front;
}
n = p->num;
free(p);
q->front->num--;
return n;
}
}
int Display(LQueue *q)
{
int k;
QNode *p;
if(q->front->num)
{
for(k = 1,p = q->front->next;p;p = p->next)
{
printf("%d NUM:%d\n",k++,p->num);
}
}
}
int Endq(LQueue *q)
{
while(q->front->num)
{
DelQueue(q);
}
printf("the queue is empty\n");
}
int main()
{
LQueue * q,* q1,* q2;
char ch2;
int n = 100;
char cmd;
int num;
int quenum = 0;
q1 = (LQueue *)malloc(sizeof(LQueue));
q2 = (LQueue *)malloc(sizeof(LQueue));
while(1)
{
printf("********************************************************************\n");
printf("opt E:enqueue D:deal I:start construction L:time up R:status\n ");
printf("\n");
cmd = getchar();
printf("your input is %c\n",cmd);
printf("please choice your queue:1~2\n");
ch2 = getchar();
scanf("%d",&quenum);
printf("queue = %d\n",quenum);
if(quenum == 1)
{
q = q1;
}
else
{
q = q2;
}
if((q->front == NULL)&&(cmd != 'I'))
{
printf("makesure we are in workting ime\n");
}
switch(cmd)
{
case 'I':
InitQueue(q);
break;
case 'E':
printf("your num is %d\n",n);
EnQueue(q,n++);
break;
case 'D':
num = DelQueue(q);
if(num == 0)
{
continue;
}
printf("It's %d's turn\n",num);
break;
case 'R':
printf("the current status of the queue: \n");
Display(q);
break;
case 'L':
printf("time is up\n");
Endq(q);
break;
default:
printf("cmd err\n");
break;
}
ch2 = getchar();
}
}
相关文章推荐
- 隆回护照/港澳通行证办理流程
- 宝宝身份证及港澳通行证办理流程
- 蓝桥杯 基础练习 数的读法 【模拟】
- 【基础练习】【字符串】【模拟】洛谷2614 计算器弹琴题解
- 黑马程序员_java_基础加强_模拟交通灯管理系统
- 蓝桥杯练习系统基础练习——杨辉三角
- 关于港澳通行证的办理和续签的问题总结
- 蓝桥杯练习系统基础练习——排序
- Java 基础一些代码练习笔记(队列)
- java自学笔记9:异常练习(模拟借书系统)
- 【linux基础】19、系统初始化流程
- Python学习之路——Linux基础之系统启动流程
- JAVA基础作业练习—自定义异常之模拟ATM
- Linux基础--系统启动流程
- java基础之LinkedList练习--模拟堆栈
- 数据结构之队列基础练习
- java打字系统模拟打字练习采用JFrame+IO文件操作+线程源码
- 蓝桥杯练习系统 基础练习 数列特征
- 【蓝桥杯练习系统】 基础练习 十六进制转八进制