大学で 6 つのクラスの時間割を作成する必要があります。以下は私が思いついたクラスです。
class ClassRoom
{
private:
char id[5];
char type;
int cap;
public:
void setRoom();
void disp();
}c[15];
class StudentGroup
{
int sem;
char group[3];
int strength;
public:
void setGroup();
}stud[8];
class Course
{
char courseID[7];
int semNo;
char courseCode[5];
char courseName[50];
char type;
int lec;
int tut;
int prac;
public:
void setCourse();
}cour[75];
class CourseDetails
{
public:
char courseID[7];
char preference[3];
char resourceType;
char classPref[3];
};
class Faculty
{
char facID[6];
char name[50];
int noCourses;
public:
CourseDetails cD[6];
void setFaculty();
void disp();
}fac[50];
class ElecPair
{
int noPaired;
char courseId[10][7];
public:
void setElecPair();
}ePair[10];
class Period
{
int semNo;
char className[3];
char courseID;
char facID;
bool availability;
};
class TimeTable
{
Period prd[5][7];
}tt[6];
通常の制約で時間割を作成する必要があります。
教師は同時に 2 つのクラスに参加することはできません。
学生は同時に2つのクラスを持つことはできません。
コードは必要ありませんが、遺伝的アルゴリズムを使用せずにこのタイムテーブルを生成できる最善の方法について提案を得たいと思います。
PS:スタックまたは再帰を使用してこのタイムテーブルを生成する方法はありますか?