兄弟姐妹们,这道题我一点思路都没有,请大家帮忙呀。万分感谢!!!(再做不出来,我就要挂课了!)
一、设计方法和基本原理
1. 课题功能描述
设计一个能够解决楼层分配问题的程序,要求实现的功能包括:找所有满足特定条件的楼层分配方案,然后输出(参见下图)。
1: 1楼:B 2楼:C 3楼:D 4楼:E 5楼:A
2: 1楼:B 2楼:D 3楼:C 4楼:E 5楼:A
3: 1楼:C 2楼:D 3楼:A 4楼:E 5楼:B
4: 1楼:C 2楼:D 3楼:B 4楼:E 5楼:A
5: 1楼:C 2楼:D 3楼:E 4楼:A 5楼:B
6: 1楼:C 2楼:D 3楼:E 4楼:B 5楼:A
7: 1楼:D 2楼:C 3楼:A 4楼:E 5楼:B
8: 1楼:D 2楼:C 3楼:B 4楼:E 5楼:A
9: 1楼:D 2楼:C 3楼:E 4楼:A 5楼:B
10:1楼:D 2楼:C 3楼:E 4楼:B 5楼:A
2. 问题详细描述
特定条件:现有五层的公寓分配给A、B、C、D、E五个人住。其中A不住1楼,E不住5楼,C和D住上下楼(可以C比D住的高,也可以D比C住的高),E比C住的高。要求编写多个函数分别实现上述功能,而后在main函数中进行调用。
3. 问题的解决方案:
根据问题的描述,可以按照程序要求的功能采用结构化的设计思想。
可以利用穷举法,把所有楼层分配的可能都列出来,对每一种楼层分配进行判断,如果满足上述条件则输出。
二、主要技术问题的描述
可以声明一个数组用来代表楼层,例如数组的第一个元素代表1楼,第二个元素代表2楼,依次类推。然后用一个五层的循环来生成所有可能的楼层分配。
三、创新要求
在基本要求达到后,进行创新设计:
1.使用多文件,即主函数和各个函数分别存放在不同的.cpp文件中,在头文件中进行函数原型声明;
2.用全排列算法来生成所有可能的楼层分配。