![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Составитель расписаний(автоматический)
SarDoX © (2005-11-04 10:03:00)я решил я все таки написать составитель расписаний.
но всю сложность работы понял тока спустя неделю работы. перечислю сложности:
а) у нас в лицее 7-11 классы, по 3 класса на параллеле, итого 15 классов.
б) надо учитывать
1)один учитель в один день не может вести урок у двух классов одновремеенно(так же некоторый учителя могут вести уроки как у одной параллели, так и у другой)
2)некоторые уроки должный быть парами, некторые нет
3)не должно быть дней, когда в расписании 2 физики, 2 алгебры, 2 русский, т.е. тяжелых дней(тут я решил ввести коэф сложности для каждого предмета)
4)одиночный уроки, такие как черчение, химия, геометрия и т.д
у одной параллели должны быть в один день
это далеко не весь список, чем дальше, тем хуже...
2 раза переписывал весь код.
решил было сделать генератором. получилось составлять расписание на неделю для одого класса с учетом парный - непарных предметов, учитывается кол-во предметов в неделю, например, если в неделе одно черчение, то оно должно быть только одно.
но позже понял, что если добавить еще 2 класса в параллели, то с генератором далеко не уедешь.. а если учесть, что потом бы пришлось добавлять 4 параллели..
в общем хотелось бы узнать, каким образо можно было бы это все осуществить, как правильно организовать программу. спрашиваю не потому, что нужно халява, а потому, что уже действительно не знаю, каким образом.
а начинать другую работу очень не хочется, хочется эту добить, сделать.
Red_imp (2005-11-10 17:49:00) [1]to SarDoX
Хотелось бы посмотреть на структуру БД
SarDoX (2005-11-10 12:43:00) [2]не придирайтесь. я думал, что мне немного про другие таблицы говорили, типа dbgrid.
основной код программы я уже закончил :)
ЮЮ (2005-11-10 08:38:00) [3]>бд и sql я знаю, тут пролем не будет.
как то противоречит ранее сказанному:
>всю инфу хранить само собой в бд, в разных таблицах
>для каждого учителя свою таблицу составить, 6*6(дни недели*уроки)
>если у учителя есть урок, то в соотв. клетку ставить 1, если нет, то 0.
>для каждой параллели составить таблицу-связку урок-учитель.
>для каждого класса составить таблицу как для учителей, т.е. 6*6.
SarDoX (2005-11-10 06:42:00) [4]связок учитель-предмет будет стока же, скока и параллелей.
SarDoX (2005-11-10 05:50:00) [5]г.Владивосток
10 класс.
ну значит что я надумал...
всю инфу хранить само собой в бд, в разных таблицах
для каждого учителя свою таблицу составить, 6*6(дни недели*уроки)
если у учителя есть урок, то в соотв. клетку ставить 1, если нет, то 0.
для каждой параллели составить таблицу-связку урок-учитель.
для каждого класса составить таблицу как для учителей, т.е. 6*6.
генерировать расписание каждому классу по очереди
основые условия
//среда-3урок
генерировать предмет
определить через связку учителя
проверить, нет ли у учителя предмета в текущ день, т.е в среду 3 уроком, если нет, то --- другие условия, усли их пройдет, то добавить предмет и в таблицу учителя поставить 1:) , если да, то начать сначала, т.е перегенерировать предмет.
седня примусь за осуществеление. бд и sql я знаю, тут пролем не будет.
--
а бросать тему это глупо, имхо.
--
автор знает, что он хочет сделать
--
учесть все в уме невозможно. я когда тему брал, вообще не предполагал, что будет стока проблем, чем дальше писал, тем дальше ужасался. но теперь, вроде бы, все в голове уложилось.
Red_imp (2005-11-09 17:27:00) [6]to msguns ©
Да конечно тут все так сразу в уме учесть невозможно надо сначала только с бумажкой сидеть и все условия писать. Короче жуть полная.
to SarDoX
извините за офтоп
Ты вобще откуда??? из какого города?
Zhekson (2005-11-09 16:14:00) [7]Anatoly Podgoretsky © (08.11.05 15:10) [20]
мда, обидели человека... не стыдно??? или соблазн унизить перевесил???
Я тоже не сразу въехал, да и Вы не мгновенно это сделали... Могли ведь и опередить ;)))
Anatoly Podgoretsky (2005-11-09 15:55:00) [8]arhis (09.11.05 15:49) [29]
Зачем, этого же до пенсии хватит.
arhis (2005-11-09 15:49:00) [9]
> А ведь есть еще "экстрачасы", это когда либо на 1,5 ставки
> (дефицит учителей), либо подменяет коллегу. В этом деле
> вообще бардак, не поддающийся никакой "автоматизации". Завуч
> (директор) запросто может отнять "лишние" часы у одного
> учителя и отдать их другому. Вне всякого "графика".
Полностью ненормальный разговор. И сколько еще скрытых условий задачи мы вместе откопаем? Автор сам не знает что хочет написать, но помощь уже требуется.
Автору мой совет - бери другую тему.
easy (2005-11-09 10:16:00) [10]навсякий случай, вдруг пригодится кому..
http://www.asctimetables.com/timetables_ru.html
msguns (2005-11-09 09:33:00) [11]>red_imp © (09.11.05 09:26) [26]
>..в день у учителя максимум 8 уроков а в неделю норма 18 часов
А ведь есть еще "экстрачасы", это когда либо на 1,5 ставки (дефицит учителей), либо подменяет коллегу. В этом деле вообще бардак, не поддающийся никакой "автоматизации". Завуч (директор) запросто может отнять "лишние" часы у одного учителя и отдать их другому. Вне всякого "графика".
red_imp (2005-11-09 09:26:00) [12]to msguns ©
Я конено согласен просто меньше условий обрабатывать: в день у учителя максимум 8 уроков а в неделю норма 18 часов. А вобще расписание составляется хотябы на четверть и помоему оно не меняется из-за неявки учителей. Хотя я просто я говорю что ИМХО лучше я специально не занимался составлением расписание уроков немного другая тема.
msguns (2005-11-08 17:38:00) [13]>Red_imp © (08.11.05 16:46) [24]
>А на данном этапе попробуй начать с учителей а не с уроков. У каждого учителя есть определённое количество часов работы определённый предмет и день недели в который он выходной (может и не быть).
Хотя может это и неправильно.
Не согласен. Дело в том, что перечень предметов и программа в большинстве случаев есть вещь постоянная. А вот учителя - это как раз самое хитрое. Есть одна особенность - учителя могут отсутствовать. Например, по болезни. Поэтому я бы все же закладывался на "окна" - "свободные" уроки, которые должны быть у всех учителей. При системе, когда на любом уроке, например, математики, есть хотя бы один "свободный" учитель, нетрудно заменить любого из отсутствующих. Это поможет избежать сумбурности и хаоса в учебном процессе, когда математика заменяется неплановой физикой, в рез-те чего пропадают оба урока: физика потому что дети к ней не готовились и математика потому, что учителю на след.уроке придется не столько спрашивать, сколько объяснять новую тему, чтобы не отстать от программы.
Red_imp (2005-11-08 16:46:00) [14]Задача довольно интересная и непростая. Я кстати сейчас тоже занимаюсь составлением расписаний (не уроков) и у меня задача намного легче хотя могу попробовать и помочь. Есть чтото похоее с составлением графиков.
Сначала постарайся представить всю структуру сразу чтоб по ходу решения задачи не вылезали лишние задачки и проблемки. А на данном этапе попробуй начать с учителей а не с уроков. У каждого учителя есть определённое количество часов работы определённый предмет и день недели в который он выходной (может и не быть).
Хотя может это и неправильно.
arhis (2005-11-08 15:40:00) [15]msguns © (08.11.05 15:19) [21]
100% Постановка и является решением.
NORDmen (2005-11-08 15:29:00) [16]Удалено модератором
Примечание: МАТ и нападки на участников, отдохни три дня
msguns (2005-11-08 15:19:00) [17]>NORDmen © (08.11.05 14:24) [19]
>я вообще не въезжаю к чему этот бред. случайный генератор слов?
В чем бред ? В том, что для подобной задачи 90% решения заложено в постановке задачи?
Anatoly Podgoretsky (2005-11-08 15:10:00) [18]NORDmen © (08.11.05 14:24) [19]
Видимо не дано, попробуй еще раз внимательно прочитать, потом еще много раз подряд. Если не поможет, значит не судьба, но и не наша проблема.
NORDmen (2005-11-08 14:24:00) [19]2jeer:
я вообще не въезжаю к чему этот бред. случайный генератор слов?
Jeer (2005-11-08 14:09:00) [20]NORDmen © (08.11.05 14:03) [17]
SarDoX (04.11.05 10:03)
Ребятишки !
Пока Вы не начнете с постановки задачи + необходимый мат.аппарат - это все будет "козьи потягушки".
Срочно за теорию.