|
1 / 1 / 0
Регистрация: 18.09.2010
Сообщений: 16
|
|
Составление расписания18.09.2010, 20:15. Показов 21814. Ответов 39
Метки нет (Все метки)
Здравствуйте. Передо мной стоит задача, написать программу для составления расписания ВУЗа. Писать хочу в C#, так как немного с ним знаком. Представляю это себе так, сначала пользователь должен в первом режиме программы, ввести данные о группах, кабинетах, специальных кабинетах их вместимости и так далее. Затем на основе этой информации программа составляет расписание, которое можно просматривать и редактировать уже в другом режиме программы. Вопрос в том как лучше хранить данные в каком формате, просто в текстовом виде мне кажется как-то неправильно ,а с базами данных на C# еще не сталкивался. Прошу подсказать как лучше хранить данные, как потом к ним обращаться если есть примеры буду рад. И конечно любые советы по основному алгоритму и программе вообщем. Пожалуйста подробнее так как я начинающий.
Заранее благодарен.
0
|
|
| 18.09.2010, 20:15 | |
|
Ответы с готовыми решениями:
39
Алгоритм создания расписания Создание таблицы для расписания Создание расписания запуска службы по дням недели |
|
2098 / 1263 / 173
Регистрация: 01.02.2009
Сообщений: 2,842
|
|
| 19.09.2010, 00:46 | |
|
0
|
|
|
1 / 1 / 0
Регистрация: 18.09.2010
Сообщений: 16
|
||
| 19.09.2010, 09:41 [ТС] | ||
|
0
|
||
|
7 / 7 / 0
Регистрация: 23.08.2010
Сообщений: 24
|
|
| 20.09.2010, 12:19 | |
|
в C# целая библиотека System.data, System.data.sql;
позволяет соеденеяться практически к любой базе данных с помощью Datascore щас под рукой нет исходника вечером скину пример.
0
|
|
|
Кодило
251 / 179 / 23
Регистрация: 25.11.2009
Сообщений: 685
|
|
| 20.09.2010, 17:26 | |
|
Алгоритм.. Алгоритм тут будет довольно сложен, по-умному, надо делать, я так полагаю, через генетический алгоритм - страшная вещь. Ну или перебор, надо еще организовывать кучу различных правил и приоритетов, чтобы, например, физ-ра, какая-нибудь, не стояла первой или в середине дня, чтобы в субботу были менее важные пары и прочее.
0
|
|
|
61 / 61 / 9
Регистрация: 17.02.2010
Сообщений: 101
|
|
| 20.09.2010, 17:31 | |
|
0
|
|
|
131 / 127 / 50
Регистрация: 28.04.2010
Сообщений: 928
|
||
| 20.09.2010, 17:32 | ||
|
0
|
||
|
Кодило
251 / 179 / 23
Регистрация: 25.11.2009
Сообщений: 685
|
|
| 20.09.2010, 17:40 | |
|
AnTro.Net,
Не по теме: учусь сейчас, физра стоит последними парами, в субботу у меня, как у программиста, нет ни профильных предметов, ни математических дисциплин. Да и, думаю, с этой целью и делается программа - чтобы облегчить составление хороших расписаний. Ибо как попало может составить любой, потратив вечер на состыковки - чтобы не было занятий без перерыва в разных корпусах на двух противоположных концах города.
0
|
|
|
1 / 1 / 0
Регистрация: 18.09.2010
Сообщений: 16
|
|
| 20.09.2010, 21:23 [ТС] | |
|
Рад что тема вызвала обсуждение
Прошу больше рассуждайте это сильно поможет, любые идеи.И все таки подскажите как поступить с хранением данных. Не будет ли слишком криво если я буду сохранять данные просто в текстовом файле? Мне так кажется проще,но не уверен что это правильно. А в базы лезть боюсь ) но чую что придется. Если все же выбор падет на базы, то какие именно? создавать ле через Access или что то другое? Если другое то что? И ткните носом что почитать полезного, статьи,книги.
1
|
|
|
Кодило
251 / 179 / 23
Регистрация: 25.11.2009
Сообщений: 685
|
|
| 20.09.2010, 21:40 | |
|
Great_Beaver, информации не так много для баз, думаю, хмл хватит
0
|
|
|
2098 / 1263 / 173
Регистрация: 01.02.2009
Сообщений: 2,842
|
||
| 20.09.2010, 21:42 | ||
|
Книга: PostgreSQL для профессионалов - Дж. Уорсли, Дж. Дрейк
0
|
||
|
I ♥ C#
470 / 262 / 25
Регистрация: 07.05.2010
Сообщений: 567
|
||
| 21.09.2010, 13:35 | ||
0
|
||
|
1 / 1 / 0
Регистрация: 18.09.2010
Сообщений: 16
|
|
| 21.09.2010, 17:13 [ТС] | |
|
Вот пара ссылок по теме алгоритма:
http://www.tusur.ru/filearchiv... 21-225.pdf http://www.mnogosmenka.ru/drugoe/telematika.htm Пугают что еще никому не удалось написать стоящую программу.
0
|
|
|
Кодило
251 / 179 / 23
Регистрация: 25.11.2009
Сообщений: 685
|
|
| 21.09.2010, 21:15 | |
|
Great_Beaver, думаю, хорошую программу написать можно, но надо приложиться хорошенько, как можно больше использовать параметров, а дальше грамотно оформленный перебор по этим самым параметрам и должно получиться хорошо, без генетического страшного алгоритма можно будет обойтись. Но, к сожалению, чем больше будет параметров, тем дольше надо будет реализовывать возможность гибкой настройки - ведь программой будет пользоваться отдел "старых бабушек", формирующих расписание, думаю, им все должно быть понятно.
0
|
|
|
7 / 7 / 0
Регистрация: 06.02.2010
Сообщений: 31
|
|||
| 22.09.2010, 06:58 | |||
|
Добавлено через 8 минут Лично мое мнение такое: xml в данном случае не самое лучшее решение, т.к. данных будет много, и формат оптяь же надо выбирать хз как. Лучшее решение (ИМХО) это SQL - сэкономите дисковое пространство, увеличите скорость работы с данными, опять же использование внешних ключей это плюс к целостности!
0
|
|||
|
I ♥ C#
470 / 262 / 25
Регистрация: 07.05.2010
Сообщений: 567
|
|
| 22.09.2010, 20:11 | |
|
В основном тут всех интересует алгоритм составления расписания, а как вы его будете хранить никому не интересно
0
|
|
|
1 / 1 / 0
Регистрация: 18.09.2010
Сообщений: 16
|
|
| 24.09.2010, 22:34 [ТС] | |
|
Вот что я думаю на счет исходных данных:
Сначала даем ввести предметы: Данные о предметах: Имя: Физика лабораторная Сложность: 7 Деление группы на подгруппы: 1 (Скажем если английский или еще что ставим на сколько подгрупп делить) Преподаватели: (Список Преподавателей которые могут вести физику) 1) 2) N) Тип спец кабинета: 0 (Скажем если нужен компьютерный класс то тип например 1 и так каждому спец. кабинету присваивается тип ) Желательные кабинеты: (Если есть предпочтительные кабинеты) 1) 2) N) Данные о кабинетах: Имя/номер: 0620 Корпус: 1 (или например Главный) Специальность:1 (Тип оборудования например компьютеры или станки) Специальных мест:15 (Количество станков) Простых мест:20 (Мест за партами если есть) Вместимость групп:1 (Например в спорт зале можно несколько групп) Данные о группах: Имя/номер: 303 Численность: 20 Желательный кабинет: 0620 (если у предмета нет предпочтений и ненужно спец оборудования то можно садить группу в родной кабинет) Пар в неделю: 13 (Для распределения между днями) Рабочие дни: Пн Вт Ср Чт Пт Предметы: (Из данных о предметах формируем список из которого выбираем) Вот на мой взгляд минимальные исходные данные, еще думаю надо добавлять данные о преподавателях или хватит информацию указанной в предметах. Насчет алгоритма есть некоторые идеи, скорее всего завтра напишу, а пока скажите что думаете об исходных данных.
0
|
|
|
Кодило
251 / 179 / 23
Регистрация: 25.11.2009
Сообщений: 685
|
|
| 25.09.2010, 02:03 | |
|
Great_Beaver, лучше разделить на подгруппы, например:
Вот, что-то вроде того, что-то, думаю, еще нужно добавить, что-то удалить, это я так, с ходу набросал, и, в общем, алгоритм берет первую пару, например, а дальше потом откидывает то, что не подходит для следующей пары и выкидывает их, далее выбор идет из оставшегося.
0
|
|
|
2 / 2 / 0
Регистрация: 19.02.2010
Сообщений: 42
|
|
| 26.09.2010, 17:10 | |
|
Думаю, также нужно будет отталкиваться от ограничивающего фактора. У нас в универе, например, таковым являются аудитории. Больших аудиторий, способных вместить весь курс, естественно меньше всего. По ним стоит забить расписание в первую очередь.
Можно также каждому предмету расставить приоритет: число от 0 до, скажем, 5 (если максимальное число пар в день именно пять) - и тогда ставить той же самой физкультуре приоритет 5, т.е. что предпочтительней ей быть на пятой паре. Наиболее важным предметам, думаю, лучше присвоить приоритет 2, чтоб они чаще всего были на вторых парах (хотя тут конечно стоит посоветоваться с деканатом). Категорию 0 можно дать тем предметам, для которых непринципиально на какой паре проходить. Ну и т.д. Также стоит учесть, что бывают мигалки (пары проходят раз в неделю) или полупары (расписание составлять не для пар, а для полупар. Ну а на вывод соответственно давать пары=две полупары)
0
|
|
|
1 / 1 / 0
Регистрация: 18.09.2010
Сообщений: 16
|
|
| 27.09.2010, 19:43 [ТС] | |
|
Спасибо за подсказку о больших аудиториях, приоритетах и полу парах, у нас в универе вообще не пары а занятия.Надо еще подумать как правильно сделать подгруппы данных и какие еще данные включить.
А по алгоритму я дума. вот что: Для каждой группы нам известны какие пары и сколько должно быть. Для простоты обращения каждой группе,преподавателю и предмету присваивается номер, создаются массивы с номерами. Перед пользователем таблица, каждая ячейка которой представляет собой аудиторию то есть мы как бы видим первую пару первого рабочего дня, сверху располагаем таблицу с днями недели каждый день поделен на максимальное количество пар. Начинаем распределять группы в аудитории по приоритетам. Так как у нас таблица представляет одну пару одного дня то если в ней уже задействована конкретная группа или конкретный преподаватель то как нибудь отмечаем их и больше к ним не обращаемся, также отмечаем предметы которые вставили в таблицу в цикле заполняем максимальное количество аудиторий. Далее переходим к следующей паре этого дня и тут у нас все преподаватели и группы опять свободны, продолжаем процесс. По мере выполнения сохраняем данные в XML файле обновляя его после заполнения каждой таблицы. Если не смогли распределить все предметы то предоставляем это пользователю. Вот примерно так, простите за изложения информации. Трудно объяснить идею.
0
|
|
| 27.09.2010, 19:43 | |
|
Помогаю со студенческими работами здесь
20
Организация онлайн расписания Создание расписания приема специалистов База даных ACCES для школьного расписания Как перекинуть в таблицу расписания рандомно любые 6 предметов есть проект на С#(программа для помощи создания школьного расписания), к нему нужно подключить БД Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Налог на собак: https:/ / **********/ gallery/ V06K53e
Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf
Пост отсюда. . .
|
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop?
Ниже её машинный перевод.
После долгих разбирательств я наконец-то вернула себе. . .
|
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод
Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод.
Thinkpad X220 Tablet —. . .
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|