数据结构:队列的应用--食堂打饭排队系统

题目描述:利用循环顺序队列,编写一个食堂打饭排队系统,使其能满足:有三个队列:面条队、大米饭、小吃队。

(a)每个学生的吃饭想法排入不同队列

(b)每个队排在前面的优先打饭

(c)可以查找某个同学排在哪个队列的第几个位置

(d)当打饭结束时,各窗口对今天的收入进行统计出钱数。

(假设面条、米饭、小吃的价格各自都是固定的钱数)

#include
#include
#include
#define MAXSIZE 5 
typedef struct Name
{
	char na[10];
}name;
typedef struct
{    
    name data[MAXSIZE]; 
    int front;
	int rear; 
}SeqQueue;
int search(SeqQueue k,char *name);
void shouru(SeqQueue f,SeqQueue g,SeqQueue h);
int  main()
{
	SeqQueue q;
	SeqQueue r;
	SeqQueue s;	
    int i,j,k; 
    int d1=0;//队空时三个初始值,每来一个人d*就加1 
    int d2=0;
    int d3=0;
    int a,b,c;
	q.front=q.rear=0;
	r.front=r.rear=0;
	s.front=s.rear=0;
    int m;
    char searchname[10];
	do
	{
		system("cls");
		printf("面条:8元/碗\n米饭: 10元/份\n小吃:6元/份\n\n");
		printf("1.面条队入队\n");
		printf("2.大米队入队\n");
		printf("3.小吃队入队\n");
		printf("4.输出目前所有队伍信息\n");
		printf("5.查找目标学生\n");
		printf("6.统计收入\n\n");
		printf("请输入信息:\n\n");
		scanf("%d",&m);
	switch(m)
	{
	case 1:
		if(d1==3)
        {
    	printf("同学你好,面条队已满,请选择其他队伍!");
    	break;
	    }
	    printf("输入学生姓名\n");
		scanf("%s",q.data[q.rear].na);
		q.rear=(q.rear+1)%3;

		d1++;
		system("pause");
		break;
		
		
	case 2:

	    if(d2==4)
        {
    	printf("同学你好,大米队已满,请选择其他队伍!");
    	break;
	    }
	    printf("输入学生姓名\n");
		scanf("%s",r.data[r.rear].na);
		r.rear=(r.rear+1)%3;

		d2++;
	    system("pause");
	    break;
	    
	    
	case 3:

	    if(d3==5)
        {
    	printf("同学你好,小吃队已满,请选择其他队伍!");
    	break;
	    }
	    printf("输入学生姓名\n");
		scanf("%s",s.data[s.rear].na);
		s.rear=(s.rear+1)%3;
		d3++;
		system("pause");
	    break;	
	    
	    
	case 4:
	    if(d1!=0)
	    {
	    	printf("面条队\n");
	    for(i=0;i

你可能感兴趣的:(数据结构,c语言,c++)