数据库课程设计——某工厂的物料管理系统(附Java源码与课程设计报告)
数据库课程设计——某商店进销存管理系统(附Java源码与课程设计报告)
数据库课程设计——某煤气公司送气管理系统(附课设报告)
数据库课程设计——基于JavaEE的企业进销存系统(附Java源码与课程设计报告)
Java课程设计——哈夫曼编码译码系统的Java语言实现
C语言课程设计——班级成绩管理系统(附课设报告)
C语言课程设计——排班系统 DFS解决(附课设报告)
排班系统——DFS解决!
课设题目描述:
学校实验楼有7名保安人员:钱、赵、孙、李、周、吴、陈。由于工作需要进行轮休制度,一星期中每人休息一天。预先让每一个人选择自己认为合适的休息日。请编制程序,打印轮休的所有可能方案。当然使每个人都满意,例如每人选择的休息日如下:
钱:星期一、星期六
赵:星期二、星期四
孙:星期三、星期日
李:星期五
周:星期一、星期四、星期六
吴:星期二、星期五
陈:星期三、星期六、星期日
运行结果:
Solution: 1
赵 钱 孙 李 周 吴 陈
星期四 星期一 星期三 星期五 星期六 星期二 星期日
Solution: 2
赵 钱 孙 李 周 吴 陈
星期四 星期一 星期日 星期五 星期六 星期二 星期三
Solution: 3
赵 钱 孙 李 周 吴 陈
星期四 星期六 星期三 星期五 星期一 星期二 星期日
Solution: 4
赵 钱 孙 李 周 吴 陈
星期四 星期六 星期日 星期五 星期一 星期二 星期三
课设源代码:
#include<iostream>
#include<cstring>
#include<string>
#include<cstdio>
using namespace std;
int n;
int rest[7][7];
string choice;
char week[7][10]={"星期日","星期一","星期二","星期三","星期四","星期五","星期六"};
char weekkk[7][15]={"星期日、","星期一、","星期二、","星期三、","星期四、","星期五、","星期六、"};
char people[7][5]={"赵","钱","孙","李","周","吴","陈"};
void distinguish(){
for(int i=0;i<7;++i){
cout<<people[i]<<":";
for(int j=0;j<6;++j){
cin>>choice;
for(int k=0;k<7;++k){
if(choice==weekkk[k]){
rest[i][k]=1;
choice="";
break;
}
}
if(choice=="") continue;
for(int k=0;k<7;++k){
if(choice==week[k]){
rest[i][k]=1;
choice="";
break;
}
}
if(choice=="") break;
}
}
}
bool judge(int x,int y){
for(int i=0;i<x;++i)
if(rest[i][y]==8)
return false;
return true;
}
void show(){
cout<<"Solution: "<<n<<endl;
cout<<"赵 钱 孙 李 周 吴 陈"<<endl;
cout<<"============================================================="<<endl;
for(int i=0;i<7;++i){
for(int j=0;j<7;++j){
if(rest[i][j]==8){
cout<<week[j]<<" ";
break;
}
}
}
cout<<endl<<endl;
}
void dfs(int person){
if(person==7){
n++;
show();
return;
}
for(int j=0;j<7;++j){
if(rest[person][j]==1&&judge(person,j)){
rest[person][j]=8;
dfs(person+1);
rest[person][j]=1;
}
}
}
int main()
{
memset(rest,0,sizeof(rest));
cout<<"注意!每次输入完“、”后请输入空格再继续输入!"<<endl;
cout<<"注意!每次输入完“、”后请输入空格再继续输入!"<<endl<<endl;
distinguish();
cout<<endl;
dfs(0);
return 0;
}
运行结果:
课程设计报告:
https://download.csdn.net/download/weixin_45953673/14011037