Задание на программу
Составления расписания учебных занятий с помощью теории графов, язык С# 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 страницы)
klausms