当前位置:编程学习 > C/C++ >>

按总成绩排序

[cpp]  
*/                 
* 程序的版权和版本声明部分                 
*Copyright (c)2013, 烟台大学计算机学院学生                 
* All rightsreserved.                 
*文件名称: array.cpp                                            
* 作    者:杨绍宁                                            
* 完成日期: 2012 年3 月12 日                 
* 版本号: v1.0                       
*                 
* 输入描述:已经在程序初始化中      
*问题描述:将学生成绩信息存储在结构体数组中,对结构体并输出排序       
*输出:按C++降序和按学号升序排列后的学生成绩单           
*/                           
#include <fstream>   //操作文件必写    
#include <iostream>  
using namespace std;  
struct Student  
{  
    char num[300];  
    char name[300];  
    int cpp;  
    int math;  
    int english;  
    int score;  
};  
int main()  
{  
    struct Student student[300];  
    int num=0,i,j;  
    Student t[1];   
    ifstream infile("score.txt",ios::in);  
    if(!infile){  
        cout<<"open error"<<endl;  
        exit(1);  
    }  
    while(!infile.eof())//当文件没有达到结尾的时候,继续读入。    
    {    
        infile>>student[num].num>>student[num].name>>student[num].cpp>>student[num].math>>student[num].english;    
        ++num;    
    }    
    infile.close();  
    for(i=0;i<num;i++){  
        student[i].score=student[i].cpp+student[i].math+student[i].english;  
    }  
    for(i=0;i<num;i++){    
        for(j=0;j<num-i;j++)    
            if(student[j].score<student[j+1].score){    
                    t[0]=student[j];    
                    student[j]=student[j+1];    
                    student[j+1]=t[0];    
            }    
    }    
    for(i=1;i<num;++i){  
        cout<<student[i].num<<"  "<<student[i].name<<"  "<<student[i].cpp<<"  "<<student[i].math<<"  "<<student[i].english<<"  "<<student[i].score<<endl;  
    }  
    return 0;  
}  
      
      
 
结果:
补充:软件开发 , C++ ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,