第二周项目三————结构体数组计算
/*【项目3-用结构体数组作计算】接项目2,* Copyright (c)2013, 烟台大学计算机学院学生 * All rightsreserved. * 文件名称:score.cpp * 作 者:蛋蛋 * 完成日期:2013 年3 月13 日 * 版本号: v1.0 * 输入描述: * 问题描述:(1)从文件中读出数据,存放到你定义的结构体数组中,即项目2(1);(2)求出每名同学的总分(可以在读入过程中“顺便”计算);(3)按总分排序(降序);(4)输出排序后的成绩单;(5)有30名同学可以获得奖学金,规则是总分高者优先,有挂科不能得奖学金。请输出可以得奖学金同学的名单。(6)选做:统计各门课及总分的平均成绩、最高和最低成绩、标准偏差,并输出。 建议做两个版本:(1)所有功能全在main()函数中;(2)用自定义函数实现各任务* 输出:读取后的的获得奖学金学生名单及成绩单 * 操作感悟:还是读取失败,完全不懂呢,找不到.dat呢5555 */ #include <iostream>#include <fstream>using namespace std;struct Student{ char num[12]; char name[12]; int cpp; int math; int english; int score;};const int N=200;int main( ){ int i, stuNum=0; Student stu[N]; 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].english; ++stuNum; ++i; } infile.close();Student t;for(i=0;i<stuNum-1;i++){for(int j=0;j<stuNum-i-1;j++){if(stu[j].score<stu[j+1].score){t=stu[j];stu[j]=stu[j+1];stu[j+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].score<<endl; }cout<<"获得奖学金的有以下同学"<<endl;if(stu[i].cpp>=60&&stu[i].math>=60&&stu[i].english>=60){int j=0;while(j<30){ 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;j++;}i++;} return 0;}