/*
*Copyright (c)2014,烟台大学计算机与控制工程学院
*All rights reserved.
*文件名称:ee.cpp
*作 者 张伟建
*完成日期:2014年11月29日
*版 本 号:v1.0
*
*问题描述: 插入文件的成绩单
*输入描述:
*输出描述:
*/
#include <fstream> //操作文件必写
#include<iostream>
#include<string>
#include<cstdlib> //调用exit(1)需要包含cstdlib
using namespace std;
const int num=120;
int main( )
{
int i,j,t,n=0;
string temp;
string name[num] ;
double score[num];
//以输入的方式(ios::in)打开文件,注意f1.dat必须在文件夹中存在
ifstream infile("score.txt",ios::in);
//测试是否成功打开,打开失败时(如要读的数据文件不存在)退出
if(!infile)
{
cerr<<"open error!"<<endl;
exit(1);
}
//下面读取数据并完成处理,若数据需要多次使用,可以读入到数组中
for(i=0;i<num;i++)
{
infile>>name[i];
infile>>score[i];
if(name[i]=="")
break;
n++;
}
infile.close();
for(j=0; j<n; j++) //(1)按成绩排序
{
for(i=0; i<n-j-1; i++)
{
if(score[i]<score[i+1])
{
t=score[i];
score[i]=score[i+1];
score[i+1]=t;
temp=name[i];
name[i]=name[i+1];
name[i+1]=temp;
}
}
}
cout<<"按成绩排序结果为:"<<endl;
for(i=0;i<n;i++)
{
cout<<name[i]<<" "<<score[i]<<"分 "<<endl;
}
for(j=0; j<num-1; j++)
{
for(i=0; i<num-j-1; i++)
{
if(name[i]<name[i+1])
{
t=score[i];
score[i]=score[i+1];
score[i+1]=t;
temp=name[i];
name[i]=name[i+1];
name[i+1]=temp;
}
}
}
cout<<"按姓名排序结果为:"<<endl;
for(i=0;i<n;i++)
{
cout<<name[i]<<" "<<score[i]<<"分 "<<endl;
}
return 0;
}