上机目的:数据结构体
上机内容:获得奖学金的人以及排名
/*
.* 程序的版权和版本声明部分
.* Copyright (c)2013, 烟台大学计算机学院学生
.* All rightsreserved.
.* 文件名称:text.cpp
.* 作者:刘玉金
.* 完成日期: 2013年3月18日
.* 版本号: v1.0
.* 输入描述:从文件中获得学生名单
.* 问题描述: 求学生的排名以及获得奖学金的人
.* 输出: 学生的排名以及获得奖学金的的人
*/ #include <iostream>
#include <iostream>
#include <fstream>
#include <cstdlib>
using namespace std;
struct Student
{
char num[13];
char name[10];
int cpp;
int math;
int english;
int grade;
};
const int N=200;
int main( )
{
int i, j, k, stuNum=0;
Student stu[N], t_stu;
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].grade=stu[i].cpp+stu[i].math+stu[i].english;
++stuNum;
++i;
}
infile.close();
for(i=0; i<stuNum-1; i++)
{
k=i;
for(j=i+1; j<stuNum; j++)
if(stu[j].grade>stu[k].grade) k=j;
t_stu=stu[k]; stu[k]=stu[i];
stu[i]=t_stu;
}
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].grade<<endl;
}
cout<<"恭喜以下同学获得奖学金"<<endl;
i=0,j=1;
while (j<=30)
{
if (stu[i].cpp>=60&&stu[i].math>=60&&stu[i].english>=60)
{
cout<<j<<'\t'<<stu[i].name<<'\t'<<stu[i].grade<<endl;
j++;
}
i++;
}
return 0;
}
运行结果:
心得体会:这个根据项目一与项目二的结合,进行运算的。