自己建立一个文件score.dat,其中保存的是100 名学生的姓名和C++课成绩,请按成绩的降序(高成绩在前,低成绩在后)排序后的成绩单保存到文件odered_score.dat 中。
#include <fstream>
#include<iomanip>
#include <string>
#include<iostream>
using namespace std;
void ouput_salary();//输出数据;
void cin_salary();//从文件得到数据;
void cout_salary();//储存数据;
void bubble_sort();//排序;
string name[100];
int a[100];
int num=100;
int main( )
{
cin_salary( );//从文件读入数据;
bubble_sort();//排序;
ouput_salary();//输出数据;
cout_salary();//保存到文件;
return 0;
}
void cin_salary()
{
int i;
ifstream infile("score.dat",ios::in);
if(!infile)
{
cerr<<"open error!"<<endl;
exit(1);
}
for(i=0;i<num;i++)
{
infile>>name[i]>>a[i];
}
infile.close();
cout<<endl;
}
void cout_salary()
{
ofstream outfile("odered_score.dat",ios::out);
if(!outfile)
{
cerr<<"open error!"<<endl;
exit(1);
}
for(int i=0;i<num;i++)
outfile<<name[i]<<a[i]<<endl;
outfile.close();
}
void bubble_sort()
{
int i,j,k,t;
string x;
for(i=0;i<num-1;i++)
{
k=i;
for(j=i+1;j<num;j++)
if(a[j]<a[k]) k=j;
x=name[k];
t=a[k];
name[k]=name[i];
a[k]=a[i];
name[i]=x;
a[i]=t;
}
}
void ouput_salary()
{
int i;
cout<<"名次为:"<<endl;
for(i=0;i<=num-1;i++)
{
cout<<setw(8)<<name[i]<<" "<<a[i]<<" ";
if((i+1)%5==0)cout<<endl;
}
cout<<endl;
}
运行前贴图:
排名也完了!!!!!
最新推荐文章于 2024-04-30 17:10:31 发布