⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 handle.c

📁 此为银行排队系统 银行营业厅配置 --营业窗口设3~8个
💻 C
字号:
#include"Head.h"
#include"Function.h"
#include"egg.h"
#include"GetTime.h"

//操作函数 


void contrslist(void)// contrslist无意思——控制排队的函数 
{
    
	
    while(1)
    {
		
        for(i=1;i<=N;i++)
        {
            switch(window[i])
            {
                case 2:
					 q=5*i;
					 q=q-4;
					 draw2();
                     if((i!=N)&&(ordinarydoing<ordinaryComing))
                    {
                        ordinarydoing++;
                        window[i]=1;//状态改变为办理
                        win_state_signal[i]=1;
                        get_time();
                        ordinary[ordinarydoing]=i;//取窗口 
                        
                        ordinary_hour[ordinarydoing]=ptr->tm_hour;//取本地时间函数;
                        ordinary_min[ordinarydoing]=ptr->tm_min;
                        ordinary_sec[ordinarydoing]=ptr->tm_sec;
                        time_start[i]=(ptr->tm_min)*60+ptr->tm_sec;
						q=5*i;
						q=q-4;
						itoa(ordinarydoing, o, 10);//整型转换字符型
						drawO();
	  
                    }
                    else if((i!=N)&&(VIPdoing<VIPcoming))
                    {
                         VIPdoing++;
                         window[i]=1;//状态改变为办理
                         win_state_signal[i]=1;
                         get_time();
                         VIP[VIPdoing]=i;//取窗口 
                         
                         VIP_hour[VIPdoing]=ptr->tm_hour;//取本地时间函数;
                         VIP_min[VIPdoing]=ptr->tm_min;
                         VIP_sec[VIPdoing]=ptr->tm_sec;
                         time_start[i]= (ptr->tm_min)*60+ ptr->tm_sec;
						 q=5*i;
						 q=q-4;
						 itoa(VIPdoing, v, 10);//转换
						 drawV();
                    }
                    else if(i==N)
                    {
                        if(VIPdoing<VIPcoming)
                        {
                            VIPdoing++;
                            window[i]=1;//状态改变为办理
                            win_state_signal[i]=1;
                            get_time();
                            VIP[VIPdoing]=i;//取窗口 
                            
                            VIP_hour[VIPdoing]=ptr->tm_hour;//取本地时间函数;
                            VIP_min[VIPdoing]=ptr->tm_min;
                            VIP_sec[VIPdoing]=ptr->tm_sec;
                            time_start[i]= (ptr->tm_min)*60+ ptr->tm_sec;
							q=5*i;
						    q=q-4;
							itoa(VIPdoing, v, 10);//转换
							drawV();
                        }
                        else if(ordinarydoing<ordinaryComing)
                        {
                            ordinarydoing++;
                            window[i]=1;//状态改变为办理
                            win_state_signal[i]=1;
                            ordinary[ordinarydoing]=i;//取窗口;
                           
                            ordinary_hour[ordinarydoing]=ptr->tm_hour;//取本地时间函数;
                            ordinary_min[ordinarydoing]=ptr->tm_min;
                            ordinary_sec[ordinarydoing]=ptr->tm_sec;
                            time_start[i]= (ptr->tm_min)*60+ ptr->tm_sec;
							q=5*i;
						    q=q-4;
							itoa(ordinarydoing, o, 10);//转换
							drawO();
                        }
                    }
                    break;
                case 0://休息中
					
                    get_time();
					q=5*i;
				    q=q-4;
					draw3();
                    time_finish_rest[i]=ptr->tm_sec+(ptr->tm_min)*60;
                    if((time_finish_rest[i]-time_begin_rest[i])>30)//计时
                    {
						
                        window[i]=2;//空闲
					    
                        win_state_signal[i]=1; 
						
                    }
                    break;
                case 1://办理中
					
                    get_time();
                    time_finish[i]=ptr->tm_sec+ptr->tm_min*60;
                    if((time_finish[i]-time_start[i])>20)//计时
                    {
                        window[i]=2;//空闲
					    q=5*i;
						q=q-4;
						draw2();
                        win_state_signal[i]=1;//为egg函数作准备
                    }
                    break;
            }
            //draw1();
        }  
    }  
}

void ID_identification(int ID_identification_time)//ID_身份验证 
{
    int VIPnumber;
    printf("请输入VIP身份号: \n");
    scanf("%d",&VIPnumber);
    if(VIPnumber%3==0)
    {
        VIPcoming++;
        printf("您的VIP办理序号是: V%.2d 请您到休息区等候叫号 .\n\n\n",VIPcoming);
    }
    else if(ID_identification_time<3)
    {
        printf("您的输入有误,请重新输入 !\n");
        ID_identification_time++;
        ID_identification(ID_identification_time);
    }
    else
    {
        printf("您已经连续3次输入错误ID !\n请您重新确认身份后再输 !\n\n\n");
    }
}


void windowJudge(int number)//窗口判断 -GetInput-Ln70
{
    int n,total=0;
    for(n=1;n<=N;n++)
        total=total+window[n];
    if((total>2)&&(window[number]==2))//空闲
    {
        window[number]=0;//休息
        q=5*i;
		q=q-4;
		draw3();
        printf("申请成功,您可以休息……\n\n\n");
		
        win_state_signal[number]=1;
        get_time();
        time_begin_rest[number]=ptr->tm_sec+(ptr->tm_min)*60;
        
    }
    else if(window[number]==0)
        printf("输入有误,您正处于休息中!\n\n\n");
    else if(window[number]==1)
        printf("对不起,您正处于工作中。\n\n\n");
    else 
        printf("对不起,申请休息失败.请稍后再申请 !\n\n\n");
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -