//searches for classes that are available this quarter that student meets requirements for protected List<string> QtrClassSearch() { List<string> currentClasses = new List<string>(); List<string> needed = new List<string>(); List<int> reqList = new List<int>(); int count; if (date[1] == 3 || date[1] == 4) count = SummerN; else count = QtrN; //if you still need intro courses, you can't take any else if (introNeeded) { reqList = new List<int>(introReqID); reqList.Sort(); foreach (int ReqID in reqList) { //gets classes offered that have met prereqs needed = ClassesOffered(ReqID); while (count > 0 && needed.Count() > 0 && ReqIDNumberNeeded[ReqID] > 0) { string course = needed[0]; needed.Remove(course); ReqIDClassesNeeded[ReqID].Remove(course); if (!studentHistory.Contains(course) && !currentClasses.Contains(course)) { ReqIDNumberNeeded[ReqID] = ReqIDNumberNeeded[ReqID] - 1; count = count - 1; currentClasses.Add(course); } } } if (checkIntro()) introNeeded = false; } //searches for main courses else { reqList = new List<int>(mainReqID); reqList.Sort(); foreach (int ReqID in reqList) { //gets classes offered that have met prereqs needed = ClassesOffered(ReqID); while (count > 0 && needed.Count() > 0 && ReqIDNumberNeeded[ReqID] > 0) { string course = needed[0]; needed.Remove(course); ReqIDClassesNeeded[ReqID].Remove(course); //if(course == "GAM 690") resultsBox.Items.Add(new ListItem("Looking at " + course + "in qtrSearch", course)); if (!studentHistory.Contains(course) && !currentClasses.Contains(course)) { ReqIDNumberNeeded[ReqID] = ReqIDNumberNeeded[ReqID] - 1; count = count - 1; currentClasses.Add(course); } } } } //adds classes to studenthistory foreach (string cl in currentClasses) { studentHistory.Add(cl); } return currentClasses; }