第十四周项目二 带姓名的成绩单(3)

来源:互联网 发布:js设置input的宽度 编辑:程序博客网 时间:2024/04/29 17:13

问题及代码:

/** Copyright (c) 2014, 烟台大学计算机学院* All rights reserved.* 文件名称:Project.cpp* 作    者:chenqin.* 完成日期:2014年12月1日* 版 本 号:v1.0** 问题描述:设score[8]数组中存储8名同学的C++成绩,增加一个数组string name[8]并赋初值,表示同学们的姓名。            这两个数组中,每名同学的姓名与成绩的下标要始终保持一致(例如name[i]和score[i]            表示同一位同学(下标为i)的姓名和C++成绩,否则会张冠李戴)。* 输入描述:* 程序输出:*/#include<fstream>#include<iostream>#include<string>#include <cstdlib>using namespace std;const int num=90;int main(){    int i,j,t,a=0;    string temp;    string name[num];    double score[num];    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;        a++;    }    //(1)按成绩排序并输出结果    for (j=0; j<num-1; j++)        for (i=0; i<num-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<num; i++)        cout <<name [i]<<"  "<<score [i]<<endl;    //(2)按姓名排序并输出结果    for (j=0; j<num-1; j++)        for (i=0; i<num-j-1; i++)        {            if(name [i]<name[i+1])            {                temp=name [i];                name [i]=name [i+1];                name [i+1]=temp;                t=score[i];                score[i]=score [i+1];                score [i+1]=t;            }        }    cout <<"按同学姓名排序后的成绩单:"<<endl;   //排序对象是字符串    for (i=0; i<num; i++)        cout <<name[i]<<"  "<<score[i]<<endl;    infile.close();    return 0;}

运行结果:

0 0
原创粉丝点击