您的位置:首页 > 其它

用结构体数组做计算

2013-03-13 09:21 232 查看
/*
* Copyright (c) 2012, 烟台大学计算机学院
* All rights reserved.
* 文件名称:123.cpp
* 作    者:  邱学伟
* 完成日期:2013 年 3 月 13 日
* 版 本 号:v1.0
* 输入描述:无
* 问题描述:结构体计算学生信息
* 程序输出:略
* 问题分析:略
算法设计:略
*/
#include <iostream>
#include <fstream>
#include <cstdlib>
using namespace std;
struct student
{
char num[20];
char name[10];
int cpp;
int math;
int english;
int score;
};
const int n=200;
int main()
{
int i,j,k,stunum=0;
student stu
,temp;
ifstream infile("score.txt",ios::in);
if(!infile)
{
cerr<<" open error"<<endl;
exit(1);
}
i=0;
while(!infile.eof())
{
infile>>stu[i].num>>stu[i].name>>stu[i].cpp>>stu[i].math>>stu[i].english;
stu[i].score=stu[i].cpp+stu[i].math+stu[i].math;
i++;
stunum++;
}
infile.close();
//按总分排序
for(j=0;j<stunum-1;j++)
{
k=j;
for(i=j+1;i<stunum;i++)
if(stu[k].score<stu[i].score)
k=i;
temp=stu[j];
stu[j]=stu[k];
stu[k]=temp;

}
//输出排序后的成绩单
for(i=0;i<stunum;i++)
cout<<stu[i].num<<"\t"<<stu[i].name<<"\t"<<stu[i].cpp<<"\t"<<stu[i].math<<"\t"<<stu[i].english<<"\t"<<stu[i].score<<endl;
//奖学金获得者
cout<<"恭喜以下同学荣获奖学金"<<endl;
i=0;
j=0;
int g;
while(j<=30)
{
if(stu[i].cpp>=60 && stu[i].english>=60 && stu[i].math>=60)
{
cout<<stu[i].num<<"\t"<<stu[i].name<<"\t"<<stu[i].score<<endl;
g=stu[i].score;
j++;
}
i++;
}
while(g==stu[j].score)
{
if(stu[i].cpp>=60 && stu[i].english>=60 && stu[i].math>=60)
{
cout<<stu[i].num<<"\t"<<stu[i].name<<"\t"<<stu[i].score<<endl;
j++;
}
i++;
}
return 0;
}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: