Привет всем, спасибо заранее за чтение!
Проблема состоит в том, чтобы попытаться найти время, когда инструктор свободен, лаборатория свободна, а студенты, зачисленные в класс, бесплатны.Есть только один преподаватель, около 6 лабораторных комнат и в среднем 20 студентов.
Лабораторные комнаты, преподаватели и студенты уже имеют время, в которое они заняты / заняты.Время делится на блоки по 1,5 часа, начиная с 8-930, 930-1100 и до 330-500.Есть 5 дней, чтобы рассмотреть, понедельник - пятница.Если нет ни одного блока, который мог бы вместить всех студентов, преподавателей и лаборатории, тогда класс можно разделить на сеансы.
Вот то, о чем я думал в качестве базы данных и входов / выходов:
База данных:
Table : Lab
Fields : l_id, l_name, l_capacity, BM893, BM9311, BM11123, BM1232, BM233, BM335, BT893, BT9311, BT11123, BT1232, BT233, BT335, BW893, BW9311, BW11123, BW1232, BW233, BW335, BTH893, BTH9311, BTH11123, BTH1232, BTH233, BTH335, BF893, BF9311, BF11123, BF1232, BF233, BF335
(each field representing a block to time for a day… e.g. BM893 is Block Monday 8 – 930, all fields are integers where 0 is free and 1 is occupied/busy)
Table: Student
Fields :s_id, s_name, BM893, BM9311, BM11123, BM1232, BM233, BM335, BT893, BT9311, BT11123, BT1232, BT233, BT335, BW893, BW9311, BW11123, BW1232, BW233, BW335, BTH893, BTH9311, BTH11123, BTH1232, BTH233, BTH335, BF893, BF9311, BF11123, BF1232, BF233, BF335
(each field representing a block to time for a day… e.g. BM893 is Block Monday 8 – 930, all fields are integers where 0 is free and 1 is occupied/busy)
Table: Instructor
Fields : i_id, i_name, BM893, BM9311, BM11123, BM1232, BM233, BM335, BT893, BT9311, BT11123, BT1232, BT233, BT335, BW893, BW9311, BW11123, BW1232, BW233, BW335, BTH893, BTH9311, BTH11123, BTH1232, BTH233, BTH335, BF893, BF9311, BF11123, BF1232, BF233, BF335
(each field representing a block to time for a day… e.g. BM893 is Block Monday 8 – 930, all fields are integers where 0 is free and 1 is occupied/busy)
Вход:
1 instructor (i_id)
All labs
N students (s_id, s_id…etc)
Выход:
Блок времени для сеанса (если более одного раздела, чем также s_id каждогостудент в каждой секции)
Может кто-нибудь помочь мне с алгоритмом?
Большое спасибо