[C语言]编制排班系统源码

某生产车间有12 名员工,编号为: 001、002、003、… 012。由于工作需要,
在生产旺季取消了周末公休日,即周一至周日均要上班,因此需要实行员工轮休制度。每天安排两人休息,一星期中每人只能休息一天。每个员工可以预先自认为合适的休息日。

本程序仅供学习使用。

#include <stdio.h>			//用来输入输出
#include <time.h>			//用来辅助产生随机数
#include <stdlib.h>			//使用rand()函数
int main()	
{
	int people[12] = {0};		//用来表示这个人选的天数
	int day[7] = {0};			//用来表示这天有多少个人选中了
	int num[12] = {0},randnum;	//用来表示编号选择状态
	int input;                  //用来存放输入的天数
    int count = 1;		        //计数变量
	int i,j;					//for循环的控制变量
	int exit;					//用来控制用户退出
	srand(time(NULL));			//随机数初始化
	while(count <= 12)									  //人数控制
	{
		do
		{
			randnum = (rand() % 12)+ 1;
		}
		while(num[randnum-1]);					   //重复执行直到随机出没有选择过休息天数的人

        if(randnum < 10)
			printf("请编号为00%d员工选择一个自认为合适的休息日:",randnum);
		else
			printf("请编号为0%d员工选择一个自认为合适的休息日:",randnum);
		scanf("%d",&input);

		if(input >= 1 && input <= 7 && day[input - 1] < 2)//判断是否天数已满或者输入天数不规范
		{
			count++;
			day[input - 1]++;
			num[randnum-1]++;
			people[randnum-1] = input;
		}
	}

	printf("\n ");
	for(i = 0 ; i < 12 ; i++)				//按照编号顺序输出
		if(i < 9)
			printf("00%d   ",i + 1);
		else
			printf("0%d   ",i + 1);

	putchar('\n');
	for(i = 0 ; i < 12 ; i++)
		printf("星期%d ",people[i]); 

	putchar('\n');
	for(i = 0;i < 7; i++)					//按照星期数输出
	{
		printf("星期%d:",i + 1);
		for(j = 0 ; j < 12 ; j++)
			if(people[j] == i + 1)
				if(j + 1 < 10)
					printf("00%d   ",j + 1);
				else
					printf("01%d   ",j - 10 + 1);
		putchar('\n');
	}

	printf("请输入0以退出程序");
	scanf("%d",&exit);
	while(exit != 0)
		scanf("%d",&exit);
	return 0;
}

在这里插入图片描述

本程序只是提供思路,请不要为了完成任务而全部抄袭,否则后果自负。

  • 36
    点赞
  • 115
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 18
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

某新手

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值