C语言课程设计——排班系统 DFS解决(附课设报告)

编程入门 行业动态 更新时间:2024-10-28 00:15:16

C语言<a href=https://www.elefans.com/category/jswz/34/1767824.html style=课程设计——排班系统 DFS解决(附课设报告)"/>

C语言课程设计——排班系统 DFS解决(附课设报告)

数据库课程设计——某工厂的物料管理系统(附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;
}

运行结果:

课程设计报告:

更多推荐

C语言课程设计——排班系统 DFS解决(附课设报告)

本文发布于:2024-02-10 23:21:29,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1677881.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:课程设计   语言   报告   系统   附课设

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!