65,184
社区成员




void RankByGrade()
{
using namespace studentInformation;
using namespace std;
int flagCompareOut=0; //循环变量
int flagCompareIn=0; //循环变量
int rankVectorSize;
rankVectorSize = studentVector.size(); //容器的名字叫studentVector
if (rankVectorSize == 0)
{
cout << "---------------------------------" << endl
<< "系统当前没有学生信息!" << endl
<< "---------------------------------" << endl;
}
else if (rankVectorSize == 1)
{
studentVector[flagCompareOut].Student_WriteGradeRank(flagCompareOut + 1);
}
else //用了冒泡排序
{
int flagCompareOut = 0;
int flagCompareIn = 0;
for (flagCompareOut = 0; flagCompareOut < rankVectorSize - 1; flagCompareOut++)
{
for (flagCompareIn = 0; flagCompareIn < rankVectorSize - flagCompareOut - 1; flagCompareIn++)
{
if (studentVector[flagCompareIn].Student_ReadGrade() < studentVector[flagCompareIn + 1].Student_ReadGrade()) //如果前一个元素的成绩比后一个的成绩低,就交换位置。
{
Student studentTemp;
studentTemp = studentVector[flagCompareIn];
studentVector[flagCompareIn] = studentVector[flagCompareIn + 1];
studentVector[flagCompareIn + 1] = studentTemp;
}
} //排序完成
}
int i = 0;
for (i = 0; i < rankVectorSize; i++) //输出成绩。若后一个的成绩和前一个的一样,则两人的排名一样
{
if ((i>0)&(studentVector[i].Student_ReadGrade() == studentVector[i - 1].Student_ReadGrade()))
studentVector[i].Student_WriteGradeRank(studentVector[i - 1].Student_ReadGradeRank());
else
studentVector[i].Student_WriteGradeRank(i + 1);
}
}
}