排班系统

#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#include <windows.h>
int n = 0;
int rest[7][7];

char name[10][3]={"赵","钱","孙","李","周","吴","陈","郑","马","陈"};
int who[7];

void Get_Who()
{
	int i,j,flag;
	srand(time(NULL));
	for(i=0;i<7;i++)
	{
		do
		{
			flag=0;
			who[i]=rand()%10;
			for(j=0;j<i;j++)
			{
				if(who[i]==who[j])
				{
					flag=1;
					break;
				}
			}
		}while(flag);
	}
}

void swap(int *a, int *b) 
{     
    int m;     
    m = *a;     
    *a = *b;     
    *b = m; 
} 

void perm(int list[], int k, int m)
{
    int i,s;
 int j;
    if(k > m)
    {
  for (i=0; i<7; i++)
  {
   for (j=0; j<7; j++)
   {
    if (rest[i][j] == -1)
     return;
    if (rest[i][j] != list[i])
     continue;
    if (rest[i][j] == list[i])
     break;
   }
  }

  n++;
  printf("Solution: %d\n", n);
  for(s=0;s<7;s++)
  {
	  printf("%6s",name[who[s]]);
  }
  printf("\n");
  printf("=============================================================\n");
  for(i = 0; i <= m; i++)
  {
   switch (list[i])
   {
    case 1: printf("星期一 ");
     break;
    case 2: printf("星期二 ");
     break;
    case 3: printf("星期三 ");
     break;
    case 4: printf("星期四 ");
     break;
    case 5: printf("星期五 ");
     break;
    case 6: printf("星期六 ");
     break;
    case 7: printf("星期日 ");
     break;
    default:
     break;
   }
  }
        printf("\n\n\n");
    }
    else
    {
        for(i = k; i <= m; i++)
        {
             swap(&list[k], &list[i]);
             perm(list, k + 1, m);
             swap(&list[k], &list[i]);
        }
    }
}

int main() 
{
    int list[] = {1, 2, 3, 4, 5, 6, 7};
 int i, j;
  Get_Who();
  for(i = 0; i < 7; i++)
  {
  printf("%6s", name[who[i]]);
 }
printf("\n");
 for(i = 0; i < 7; i++)
 {
  printf("%s 选择休息日:\n", name[who[i]]);
  for(j = 0; j < 7; j++)
  {
   scanf("%d", &rest[i][j]);
   if(rest[i][j] == -1)
    break;
  }
 }
 printf("\n\n\n");
 perm(list,0,6);
 printf("总计:%d\n", n);
 getchar();
 getchar();
    return 0;
}
  • 11
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java夜班排班系统是一个用于管理夜班员工排班系统。通过该系统,管理人员可以轻松地制定夜班员工的工作计划,并且能够随时进行调整。 该系统的主要功能包括: 1.员工信息管理:管理人员可以录入夜班员工的个人信息,包括姓名、性别、年龄、工作经验等,并且能够随时更新这些信息。 2.排班计划制定:通过系统,管理人员可以根据员工的需求和公司的工作情况,灵活地制定夜班员工的排班计划。可以设置在哪些时段需要进行夜班工作,以及每个员工的工作时间和休息时间等。 3.排班调整与替换:如果有特殊情况或员工需要调休,管理人员可以通过系统进行排班调整,并且能够查看到具体的排班情况。同时,如果有员工请假或者突发情况无法完成夜班任务,系统也可以自动安排其他员工进行替换和调整。 4.考勤管理:系统能够自动记录员工的出勤情况和工作时间,并且能够生成考勤报表,方便管理人员进行考核和工资结算。 5.通知与提醒功能:系统能够通过短信、邮件等方式,向夜班员工发送排班信息和提醒,确保员工能够按时到岗。 6.数据统计与分析:系统能够对员工的工作时间、出勤率等数据进行统计和分析,帮助管理人员了解每个员工的工作情况和绩效表现。 Java夜班排班系统能够大大减轻管理人员的工作负担,提高排班的效率和准确性。同时,也能够提高夜班员工的工作积极性和满意度,确保夜班工作的稳定和安全。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值