/*
* 程序的版权和版本声明部分
* Copyright (c)2013, 烟台大学计算机学院学生
* All rightsreserved.
* 文件名称:score.cpp
* 作 者:王立强
* 完成日期:2013 年 03 月12 日
* 版本号: v1.0
* 输入描述:略
* 问题描述:略
* 输出:略
*/
#include<iostream>
#include <fstream>
#include <cstdlib>
using namespace std;
struct Score
{
char num[12];
char name[6];
int cpp;
int math;
int english;
int grade;
};
void sort(Score [],int);
void output(Score [],int);
int main( )
{ int i;
Score score[200];
int stuNum=sizeof(score)/sizeof(score[0]);
ifstream infile("score.txt",ios::in);
if(!infile)
{
cerr<<"open error!"<<endl;
exit(1);
}
for(i=0;i<180;i++)
{
infile>>score[i].num>>score[i].name>>score[i].cpp>>score[i].math>>score[i].english;
score[i].grade=score[i].cpp+score[i].math+score[i].english;
}
infile.close();
sort(score,stuNum);
cout<<"按总成绩降序排序后无挂科可获奖学金的30人:"<<endl;
output(score,stuNum);
return 0;
}
void sort(Score score[], int n)
{
int i,j;
Score temp;
for(j=0;j<178;j++)
{
for(i=0;i<n-j-1;i++)
if(score[i].grade<score[i+1].grade)
{temp=score[i];
score[i]=score[i+1];
score[i+1]=temp;
}
}
}
void output(Score score[], int n)
{
int i;
for(i=0;i<30;i++)
if(score[i].cpp>=60&&score[i].math>=60&&score[i].english>=60)
cout<<score[i].name<<score[i].grade<<endl;
}
第二周项目三
最新推荐文章于 2023-05-11 10:39:37 发布