Задание на программу
Составления расписания учебных занятий с помощью теории графов, язык С# WindowsForms.
Рассматривается учебное заведение, в котором выделяются следующие группы объектов:
- a) Множество обучающихся групп G.
- b) Множество аудиторий A.
- c) Множество дисциплин D.
- d) Множество преподавателей P.
- e) Множество учебных пар T (временных
- интервалов проведения занятий).
- f) Множество типов дисциплин( лекции, практика, лабы, семинары и т.д)
- g) Множество дней (пн, вт, ср, чт...)
В программе мы вручную задаем название всех множеств кол-во и название преподавателей, дисциплин и т.д, затем из наших заданных параметров, формируется граф и раскрашивается определенным образом исходя из параметров которые мы задали, после того как граф раскрашен, исходя из его раскраски формируется расписание учебных занятий в текстовом файле.
Фрагмент программного кода
namespace GeneticRasp
{
//особь в генетическом алгоритме
class GeneticPerson : IComparable //для сортировки
{
public int group; //группа
public int discipl; //дисциплина
public int type; //тип дисциплины
public int auditor; //аудитория
public int prepod; //преподаватель
public int time; //время
public int day; //день
public float x; //координаты для вывода графа
public float y;
public GeneticPerson(int group, int discipl, int type)
{
this.group = group;
this.discipl = discipl;
this.type = type;
}
//копирование особи
public GeneticPerson clone()
{
GeneticPerson gp = new GeneticPerson(group, discipl, type);
gp.auditor = auditor;
gp.prepod = prepod;
gp.time = time;
gp.day = day;
return gp;
}
//сравнение, для сортировки по времени
public int CompareTo(object obj)
{
if (obj == null) return 1;
GeneticPerson gp = obj as GeneticPerson;
if (gp != null)
return (time + day * 100).CompareTo(gp.time + gp.day * 100);
else
throw new ArgumentException("Object is not a Temperature");
}
}
}
Содержание архива
- исходный код программы на языке программирования С# с использованием Windows Forms.
- Описание алгоритма, реализованного в программе (4 страницы)
Телеграм
-