-
讓這 3 位老師分別是 A、B 和 C**如下,我只是不知道每個老師是否每週至少上課 1 天,並且沒有解釋標題。
#include
main()
int i, j, k, l, m;
char mon[2] =;
char tues[2] =;
char wed[2] =;
char thurs[3]=;
char fri[2] =;
printf("mon\ttues\twed\tthurs\tfri");
for (i=0;i<2;++i)
for (j=0;j<2;++j)
for (k=0;k<2;++k)
for (l=0;l<3;++l)
for (m=0;m<2;++m)
printf("%c\t%c\t%c\t%c\t%c", mon[i], tues[j], wed[k], thurs[l], fri[m]);
return 0;
-
主題 5:排程系統。
學校實驗樓內有7名保安:錢、趙、孫、李、周、吳、陳。 由於工作需要輪換制度,每個人每週有一天休息。
讓每個人提前選擇他們認為適合冰雹的休息日。 請為旋轉程式設計所有可能的場景。 當然,讓大家滿意的是,例如,每個人選擇的休息日如下:
錢:周。 1. Saturday Zhao:周。
2. 周四 週日:一周。
3. Sunday Lee:星期五。
周:周。 1. 周。
第四,星期六吳:周肢剩餘。
2. 星期五。
陳:周。 三、周。
6. 星期日。
結果:功能請求:
1.時間表需要儲存到檔案中。
2.您可以閱讀本週完成的日程安排,並對其進行修改或刪除,修改完成後儲存到檔案中。
3、最近四周的排班資訊應儲存在檔案中,前三周只能檢視,當周排程可以修改。
4.輸入保安員姓名,檢視最近四周工作哪天,休息多少天。
-
首先,由於是每週班次,理想情況下,應該有 7*(n+m+h) n 是乙個整數,這樣每週班次相等。 如果它不是整數,它將每週更換班次(一周剩餘時間乙個週期),這種做法在實踐中幾乎沒有實踐過。 因此,如果它不是整數,讓我們假設均衡的標準是輪班最多的人和最少排隊的人之間的差值不超過 1。
在上述假設的前提下,給出了該演算法。
將 7 天內的 3 個班次排列到乙個通用迴圈表中,然後建立 employee 類並建立 employee 物件陣列。 最後,採用遞迴回溯方法求解一種可能的排程方法。 由於大多數員工都是等效的,所以安排班次的方法有很多種,如果你只需要解決乙個,用遞迴方法編寫是非常快速和容易的。
你可以把那些排程條件寫在 employee 類中,也可以寫在遞迴演算法的判斷中。