示例#1
0
        private void CalculateScholarshipWinner()
        {
            if (voteRequest == 0)
            {
                double tempGpa = 0.0;
                for (int i = 0; i < applicantList.Count; i++)
                {//find highest gpa
                    if (applicantList[i].cgpa > tempGpa)
                    {
                        tempGpa = applicantList[i].cgpa;
                    }
                }
                for (int i = 0; i < applicantList.Count; i++)
                {//collect gpa finalists who all have highest gpa
                    if (applicantList[i].cgpa == tempGpa)
                    {
                        gpaFinalistList.Add(applicantList[i]);
                    }
                }

                double tempSGPA = 0;
                //if only 1 gpa finalist:
                if (gpaFinalistList.Count == 1)
                {
                    winner = applicantList[0];
                }
                else if (gpaFinalistList.Count > 1)
                {   //find highest sgpa
                    for (int i = 0; i < gpaFinalistList.Count; i++)
                    {
                        if (gpaFinalistList[i].sgpa > tempSGPA)
                        {
                            tempSGPA = gpaFinalistList[i].sgpa;
                        }
                    }
                    //then collect sgpa finalists
                    for (int i = 0; i < gpaFinalistList.Count; i++)
                    {
                        if (gpaFinalistList[i].sgpa == tempSGPA)
                        {
                            sgpaFinalistList.Add(gpaFinalistList[i]);
                        }
                    }
                }

                //if only 1 sgpafinalist
                if (sgpaFinalistList.Count == 1)
                {
                    winner = sgpaFinalistList[0];
                }
                else if (sgpaFinalistList.Count > 1)
                {
                    //find jr, fill jrFinalistList
                    for (int i = 0; i < sgpaFinalistList.Count; i++)
                    {
                        if (sgpaFinalistList[i].status == "Junior")
                        {
                            jrFinalistList.Add(sgpaFinalistList[i]);
                        }
                    }
                }
                else if (sgpaFinalistList.Count == 0)
                {
                    for (int i = 0; i < gpaFinalistList.Count; i++)
                    {
                        if (gpaFinalistList[i].status == "Junior")
                        {
                            jrFinalistList.Add(gpaFinalistList[i]);
                        }
                    }
                }

                //if only 1 jr finalist
                if (jrFinalistList.Count == 1)
                {
                    winner = jrFinalistList[0];
                }
                else if (jrFinalistList.Count > 1)
                {
                    //fill femaleFinalistList
                    for (int i = 0; i < jrFinalistList.Count; i++)
                    {
                        if (jrFinalistList[i].gender == "Female")
                        {
                            femaleFinalistList.Add(jrFinalistList[i]);
                        }
                    }
                }
                else if (jrFinalistList.Count == 0 && sgpaFinalistList.Count == 0)
                {
                    for (int i = 0; i < gpaFinalistList.Count; i++)
                    {
                        if (gpaFinalistList[i].gender == "Female")
                        {
                            femaleFinalistList.Add(gpaFinalistList[i]);
                        }
                    }
                }
                else if (jrFinalistList.Count == 0)
                {
                    for (int i = 0; i < sgpaFinalistList.Count; i++)
                    {
                        if (sgpaFinalistList[i].gender.Contains("Female"))
                        {
                            femaleFinalistList.Add(sgpaFinalistList[i]);
                        }
                    }
                }
                //if only 1 female
                if (femaleFinalistList.Count == 1)
                {
                    winner = femaleFinalistList[0];
                }
                else if (femaleFinalistList.Count > 1)
                {
                    GetYoungest(femaleFinalistList, yngFinalistList);
                    voteRequest = 1;
                }
            }
        }