当先锋百科网

首页 1 2 3 4 5 6 7
/*
 *Copyright (c)2014,烟台大学计算机与控制工程学院
 *All rights reserved.
 *文件名称:C++.cpp
 *作    者:王一锟
 *完成日期:2014年11月29日
 *版 本 号:v1.0
 *
 *问题描述:分别按成绩和姓名排序成绩单(读入文件中数据)
 *输入描述:
 *输出描述:排序后的成绩单
 */
#include <fstream>
#include<iostream>
#include<cstdlib>
#include<string>

using namespace std;
const int num=94;
int main()
{
    int i,j,t,n;
    string temp;
    string name[num]= {};
    double score[num]= {};

    ifstream infile("score.txt",ios::in);
    if(!infile)
    {
        cerr<<"open error!"<<endl;
        exit(1);
    }
    for(n=0; n<num; ++n)
    {
        infile>>name[n];
        if(infile!="")
            infile>>score[n];
    }
    infile.close();

    for(j=0; j<=num-2; j++)
        for(i=0; i<=num-j-2; 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<=num-1; i++)
        cout<<name[i]<<":"<<score[i]<<endl;
    cout<<endl;

    for(j=0; j<=num-2; j++)
        for(i=0; i<=num-j-2; 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<=num-1; i++)
        cout<<name[i]<<":"<<score[i]<<endl;
}

输出结果: