|
|
发表于 2006-3-31 23:03:25
|
显示全部楼层
int main()
{
vector<Student_info> students;
Student_info record;
string::size_type maxlen = 0;
//读并存储所有学生的数据
//students包含了所有学生记录
//max包含了students中最长的姓名
while (true)
{
read(cin,record)
//找出最长的姓名的长度
if (record.name=="teacher")
{
break;
}
maxlen = max(maxlen,record.name.size());
students.push_back(record);
}
//按字母顺序排列记录
sort(students.begin(),students.end(),compare);
//输出姓名和成绩
for (vector<Student_info>::size_type i=0;
i!=students.size();++i)
{
//输出姓名,把姓名填充至maxlen+1个字符的长度
cout<<setw(maxlen+1)<<students.name;
//计算并输出成绩
try
{
double final_grade = grade(students);
streamsize prec = cout.precision();
cout<<setprecision(3)<<final_grade
<<setprecision(prec);
}
catch (domain_error e)
{
cout<<e.what();
}
cout<<endl;
}
return 0;
} |
|