コード例 #1
0
        public StudentRecord CreateStudentRecord(List <string> strings)
        {
            if (strings == null)
            {
                throw new ArgumentException("CreateStudentRecord cannot be run on a null string list");
            }

            GradingScheme gradingScheme    = new GradingScheme();
            string        exceptionMessage = "";
            Gender        gender           = Gender.male;
            int           creditHrs        = 0;

            if (strings.Count < 7)
            {
                throw new ArgumentException(DefaultValues.ExceptionMessages[18]);
            }
            try
            {
                gender = (Gender)Enum.Parse(typeof(Gender), strings[2].ToLower());
            }
            catch (Exception)
            {
                exceptionMessage += DefaultValues.ExceptionMessages[19] + "\n";
            }
            try
            {
                creditHrs = Convert.ToInt32(strings[6]);
            }
            catch (Exception)
            {
                exceptionMessage += DefaultValues.ExceptionMessages[20];
            }
            if (exceptionMessage.Length > 1)
            {
                throw new ArgumentException(exceptionMessage);
            }

            StudentRecord studRecord = new StudentRecord(strings[0], strings[1], gender, strings[3], strings[4], strings[5], creditHrs);

            bool readingRecord = false;
            TrimesterPerformance trimPerformance;
            List <String>        tempStrings = new List <string>();
            string curString;

            for (int i = 6; i < strings.Count; i++)
            {
                curString = strings[i].Trim();
                if (readingRecord)
                {
                    if (curString == DefaultValues.markTrimesterEnd)
                    {
                        trimPerformance = CreateTrimesterPerformance(tempStrings);
                        studRecord.AddTrimesterPerformance(trimPerformance);
                        readingRecord = false;
                    }
                    else if (curString.Length > 5)
                    {
                        tempStrings.Add(curString);
                    }
                }
                else if (curString == DefaultValues.markTrimesterStart)
                {
                    readingRecord = true;
                    tempStrings   = new List <string>();
                }
            }
            return(studRecord);
        }
コード例 #2
0
        public List <StudentRecord> GenerateStudentRecords(int numToGenerate, StudentRecord courseStructure, List <string> maleNames, List <string> femaleNames, List <string> surNames)
        {
            if ((numToGenerate < 0) || (courseStructure == null) || (maleNames == null) || (femaleNames == null) || (surNames == null))
            {
                throw new ArgumentException("GenerateStudentRecords cannot be run with null or invalid arguments");
            }

            List <StudentRecord> records = new List <StudentRecord>();
            StudentRecord        studRecord;
            string studName = "";
            string idnumber = "";
            Gender studGender;

            for (int i = 0; i < numToGenerate; i++)
            {
                studGender = (Gender)rndFunction.ReturnRandomNumber(0, 2);
                if (studGender == Gender.male)
                {
                    studName = maleNames[rndFunction.ReturnRandomNumber(0, maleNames.Count)];
                }
                else if (studGender == Gender.female)
                {
                    studName = femaleNames[rndFunction.ReturnRandomNumber(0, femaleNames.Count)];
                }
                studName += " " + surNames[rndFunction.ReturnRandomNumber(0, surNames.Count)];

                idnumber   = courseStructure.programme + rndFunction.ReturnRandomNumber(1000, 10000) + i;
                studRecord = new StudentRecord(studName, idnumber, studGender,
                                               studName + DefaultValues.dummyEmailAdd, DefaultValues.dummyContactNumber, courseStructure.programme, courseStructure.creditHrsToGraduate);

                List <UnitGrade>     newGradeList = new List <UnitGrade>();
                UnitGrade            tempGrade;
                TrimesterPerformance tempTrimester;
                int gradeMark;

                foreach (TrimesterPerformance tpf in courseStructure.trimesterPerformanceList)
                {
                    tempTrimester = new TrimesterPerformance(tpf.year, tpf.month, tpf.trimester);
                    newGradeList  = new List <UnitGrade>();
                    foreach (UnitGrade ugrade in tpf.unitGrades)
                    {
                        if (rndFunction.ReturnRandomNumber(0, 5) == 1)
                        {
                            gradeMark = rndFunction.ReturnRandomNumber(0, 51);
                        }
                        else
                        {
                            gradeMark = rndFunction.ReturnRandomNumber(51, 100);
                        }
                        tempGrade = new UnitGrade(ugrade.unitCode, ugrade.unitName, gradeMark);
                        tempGrade.CalculateGrade();
                        newGradeList.Add(tempGrade);
                    }
                    tempTrimester.unitGrades = newGradeList;
                    studRecord.AddTrimesterPerformance(tempTrimester);
                }

                records.Add(studRecord);
            }
            return(records);
        }