帮我设计一个关于员工排班的C语言程序

1 系统的基本功能某施工部门有7名施工人员:w1、w2、w3、w4、w5、w6、w7,根据工作制度每人每星期可以轮休一天。预先让每一个人选择自己认为合适的休息日,然后计算轮休的所有可能方案,方案必须使每个人都满意。

要求
(1)程序执行时,从键盘录入每个施工人员自己认为合适的休息日。[尽可能考虑所有可能的情况]
例如每人选择的休息日如下:
a:星期二、星期四
b:星期一、星期六
c:星期三、星期日
d:星期五
e:星期一、星期四、星期六
f:星期二、星期五
g:星期三、星期六、星期日
(2)在文件中保存所有可能的轮休方案,并记录方案的个数
(3)对可能出现的异常情况要加以考虑。
谢谢了,最好说明一下,一定要可以运行啊
发到这个邮箱:674979660@qq.com

给你个c++版本做参考:
#include <iostream>
#include <algorithm>
#include <string>
#include <vector>
int main(int argc,char *argv[])
{
std::vector<int> arr[7];
std::vector<std::vector<int>> resolution;
for(int i=0;i!=7;++i)
{
int temp;
std::cout<<"please input number "<<i+1
<<" person's all rest days he wanted(1-7):\n";
while(std::cin.peek()!='\n')
{
std::cin>>temp;
arr[i].push_back(temp);
}
::getchar();
}
int arr1[]={1,2,3,4,5,6,7};
do
{
for(int i=0;i!=7;++i)
{
std::vector<int>::iterator iter=
std::find(arr[i].begin(),arr[i].end(),arr1[i]);
if(iter==arr[i].end())
{
break;
}
if(i==6)
{
std::vector<int> temp(arr1,arr1+7);
resolution.push_back(temp);
}
}
}while(std::next_permutation(arr1,arr1+7));
size_t cnt=resolution.size();
std::cout<<"可用的方案如下,按职员A-G的休息日排列:\n";
for(int i=0;i!=cnt;++i)
{
size_t temp=resolution[i].size();
std::cout<<"方案 "<<i+1<<":\n";
for(int j=0;j!=temp;++j)
std::cout<<resolution[i][j]<<" ";
std::cout<<"\n";
}
::system("pause");
return 0;
}追问

可以发一个C语言的吗?

温馨提示:内容为网友见解,仅供参考
第1个回答  2012-12-13
什么时候要?我给你做。另希望你可以追加分,保你满意追问

下周一之前吧,不要忘了 记录方案个数的程序啊 ,可以写一下大致思路吗?我需要写实验报告。可以吗?

追答

1718539604 我的扣扣 做好传给你邮箱

追问

做好了吗?

第2个回答  2012-12-13
每周的休息日都相同吗?
第3个回答  2012-12-13
有人包场了
相似回答