实验目的:学会利用结构体
实验内容:所有同学的成绩表等用结构体做
* 程序头部注释开始
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生
* All rights reserved.
* 文件名称:
* 作 者:臧鹏
* 完成日期: 2011年 12 月 16日
* 版本号:
#include < fstream >
#include <string>
#include < iostream >
#include<iomanip>
using namespace std;
struct Student
{
char num[12];
string name;
float grade1;
float grade2;
float grade3;
float score;
};
Student stu[180];
int main()
{
int i;
ifstream infile("score.txt",ios::in);
if(!infile)
{
cerr<<"open error!"<<endl;
exit(1);
}
for( i=0;i<180;i++)
{
infile>>stu[i].num>>stu[i].name>>stu[i].grade1>>stu[i].grade2>>stu[i].grade3;
stu[i].score=(stu[i].grade1)+(stu[i].grade2)+(stu[i].grade3);
}
infile.close();
int j;
Student t;
for(j=0;j<179;j++)
for(i=0;i<179-j;i++)
if(stu[i].score<stu[i+1].score)
{
t=stu[i];
stu[i]=stu[i+1];
stu[i+1]=t;
}
cout<<"按总分降序排序后"<<endl;
cout<<"学号"<<'\t'<<'\t'<<setiosflags(ios::left)<<setw(9)<<"姓名"<<setw(7)<<"C++"<<setw(8)<<"高数"<<setw(8)<<"英语"<<setw(8)<<"总分"<<endl;
for( i=0;i<180;i++)
{
cout<<stu[i].num<<" "<<setw(8)<<stu[i].name<<": "<<stu[i].grade1<<"\t"<<stu[i].grade2<<"\t"<<stu[i].grade3<<"\t"<<stu[i].score<<endl;
}
cout<<"无挂科者前三十名"<<endl;
for( i=0;i<180;i++)
{
if(stu[i].grade1>=60&&stu[i].grade2>=60&&stu[i].grade3>=60)
cout<<stu[i].num<<" "<<setw(8)<<stu[i].name<<": "<<stu[i].grade1<<"\t"<<stu[i].grade2<<"\t"<<stu[i].grade3<<"\t"<<stu[i].score<<endl;
if(i>=30)
break;
}
return 0;
}
第17周实验报告1
最新推荐文章于 2020-12-05 10:34:32 发布