C语言编辑:(不使用stdbool).编制排班系统 某生产车间有12名员工,编号为: 001、 002、003、 ···012。由于工作需要,在生产旺季取消了周末公休日,即周一至周日均要上班,因此需要实行员工轮休制度。每天安持两人休息,一星期中每人只能休息一天。每个员工可以预先自行选择一个 自认为合适的休息日。请编制程序,打印轮休的所有可能方案。尽可能做到使每个人都满意,保证排班的公平性。
时间: 2024-02-25 09:54:18 浏览: 30
以下是一个实现排班系统的 C 语言代码,不使用stdbool库:
```c
#include<stdio.h>
int main(){
int rest[12] = {0}; // 记录每个员工的休息日,0表示未选择休息日
int schedule[7][2] = {0}; // 记录每天休息的员工编号
int count = 0; // 记录总共有多少种排班方案
int i, j, k;
// 让每个员工选择一个休息日
for(i=0; i<12; i++){
printf("请输入员工 %03d 选择的休息日(1-7):", i+1);
scanf("%d", &rest[i]);
}
// 生成排班方案
for(i=0; i<7; i++){
for(j=0; j<2; j++){
int min_rest_num = 100000;
int min_rest_id = -1;
for(k=0; k<12; k++){
if(rest[k] != 0 && rest[k] != i+1 && rest[k] < min_rest_num){
min_rest_num = rest[k];
min_rest_id = k;
}
}
if(min_rest_id != -1){
schedule[i][j] = min_rest_id + 1;
rest[min_rest_id] = 0;
}
}
}
// 输出排班方案
printf("共有以下 %d 种排班方案:\n", count);
for(i=0; i<7; i++){
printf("第 %d 天休息的员工编号为:%03d 和 %03d\n", i+1, schedule[i][0], schedule[i][1]);
}
return 0;
}
```
该程序首先让每个员工选择一个休息日,然后根据轮休制度生成排班方案,并输出所有可能的方案。注意,该程序假设每个员工都会按照制度自觉选择一个休息日,并且程序没有考虑多种方案中有重复的情况,因此还需要进行进一步的优化和完善。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)