高分求任务的流程图和设计思路及关键技术路线

来源:百度知道 编辑:UC知道 时间:2024/07/06 15:37:16
下面题的任务的流程图和设计思路及关键技术路线 不是要代码 代码我会
保安值班安排系统
某公司有7名保安人员:赵、钱、孙、李、周、吴、陈。由于工作需要进行轮休制度,一星期中每人休息一天。预先让每一个人选择自己认为合适的休息日。请编制一程序,打印轮休的所有可能方案。当然使每个人都满意,例如每人选择的休息日如下:
赵:星期二、星期四 钱:星期一、星期六
孙:星期三、星期日 李:星期五 周:星期一、星期四、星期六
吴:星期二、星期五 陈:星期三、星期六、星期日
如果做的好 我会追加分

(1) 依次输入7人各自希望的天,用1,2,3,4,5,6,7 表示
每人最多选7天,最少1天。
(2) 根据1的资料,排出星期一,二。。。每天休息要求者名单,也就是有7个数组,数组开7个单元,填入休息要求者id,赵、钱、孙、李、周、吴、陈用1,2,3,4,5,6,7表示。得出填入每个数组的元素个数:
int x[7][7]; // 7个数组,7个单元 可写成2维数组。
int nx[7];
初始化8个数0。nx[]存每天的人数,x[][]存每天休息要求者id
(3) 用例举法得7天休息表
int xxb[7];
for (i1=0;i1<nx[0];i1++){
for (i2=0;i2<nx[1];i2++){
for (i3=0;i3<nx[2];i3++){
for (i4=0;i4<nx[3];i4++){
...
for (i7=0;i7<nx[6];i7++){
xxb[0]=x[0][i1];xxb[1]=x[1][i1];
xxb[2]=x[2][i1];xxb[3]=x[3][i1];
xxb[4]=x[4][i1];xxb[5]=x[5][i1];
xxb[6]=x[6][i1];

这里判断 如果xxb[] 里正好有1,2,3,4,5,6,7
不多也不少,也没有0,它就是一个可行方案。

}

}}}}}};