/* Copyright (c) 2014, 烟台大学计算机学院
* All rights reserved.
* 文件名称:test.cpp
* 作者:陈丹妮
* 完成日期:2014年 12 月 01 日
* 版 本 号:v1.0
*
* 问题描述: 无
* 输入描述: 输入一些整型数
* 程序输出: 输出成绩单
*/
#include <fstream> //操作文件必写
#include <cstdlib> //调用exit(1)需要包含cstdlib
#include <iostream>
#include <string>
using namespace std;
const int N=100;
int main()
{
int i,j,t;
string name[N];
double score[N];
int num=0; //实际的学生人数
string temp;
ifstream infile("score.txt",ios::in);
if(!infile)
{
cerr<<"open error"<<endl;
exit(1);
}
while(infile>>name[num]>>score[num]) //当到达文件尾,则循环处理结束
{
num++;
}
infile.close();
//(1)按成绩排序并输出结果
for(i=0; i<num-1; i++)
for(j=0; j<num-1-i; j++)
{
if(score[j]<score[j+1])
{
t=score[j];
score[j]=score[j+1];
score[j+1]=t;
temp=name[j];
name[j]=name[j+1];
name[j+1]=temp;
}
}
cout<<"按同学成绩排序后的结果是:"<<endl;
for(j=0; j<num; j++)
cout<<name[j]<<"\t"<<score[j]<<endl;
//(2)按姓名排序并输出结果
for(i=0; i<num-1; i++)
for(j=0; j<num-i-1; j++)
{
if(name[j]<name[j+1])
{
temp=name[j];
name[j]=name[j+1];
name[j+1]=temp;
t=score[j];
score[j]=score[j+1];
score[j+1]=t;
}
}
cout<<"按同学姓名排序后的结果是:"<<endl;
for(j=0; j<num; j++)
cout<<name[j]<<"\t"<<score[j]<<endl;
return 0;
}