/*This method creates GroupDetails with random data. * Firstly, it takes list of all programs of the college. * Then, it takes two random numbers (one to choose program name from the list, another one - for semester number). * When we get program number (random number to choose program from the list), * we get all courses of this programs and put them into "courses" LinkedList. * After that, we create GroupDetails object via getGroupDetails function giving randomly chosen data to it. */ public GroupDetails createGroupDetails() { Random rand = new Random(); List <String> programs = new List <String>(college.getPrograms().Keys); int semNum = rand.Next(1, 5); int progNum = rand.Next(programs.Count); LinkedList <Course> courses = college.getPrograms()[programs[progNum]]; return(GroupDetails.getGroupDetails(semNum, courses, programs[progNum])); }
/*This method returns GroupDetails objects * It checks if hash set already has GroupDetails object with given semester number * and program name (courses are not checked because GroupDetails college can contain student groups * which have the same program names, but differs by semester number. Also, if student groups have the * same program number, they have the same course list. This all mean that group details can differ with * program name and semester number only) */ public static GroupDetails getGroupDetails(int semesterNumber, LinkedList <Course> courses, string programName) { foreach (GroupDetails item in detailsList) { if (item.semesterNumber == semesterNumber && item.programName.Equals(programName)) { return(item); } } GroupDetails newDetails = new GroupDetails(semesterNumber, courses, programName); detailsList.Add(newDetails); return(newDetails); }
public StudentGroup(LinkedList <Student> students, GroupDetails details) { this.students = students; groupNumber = groupNumberCounter++; this.details = details; }