第二周C++上机报告(用结构体数组做计算)

来源:互联网 发布:大鸿米店 知乎 编辑:程序博客网 时间:2024/05/20 09:47
/* * 程序的版权和版本声明部分 * Copyright (c)2013, 烟台大学计算机学院学生 * All rightsreserved. * 文件名称:score.cpp                            * 作    者:王昕彤                             * 完成日期:2013  年3   月 11 日 * 版本号: v1.0       * 输入描述:无 * 问题描述:无 * 输出:无 */  #include <fstream>#include <iostream>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=0, j, k, stuNum=0;    Student stu[N];    ifstream infile("score.txt",ios::in);     if(!infile)       {        cerr<<"打开文件失败!"<<endl;        exit(1);    }    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++)    {    Student t;      for(j=0;j<stuNum-1;j++)          for(k=0;k<stuNum-1-j;k++)              if(stu[k].grade<stu[k+1].grade)              {t=stu[k];stu[k]=stu[k+1];stu[k+1]=t;}     }    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;}


输出结果:

原创粉丝点击