第二周上机任务项目3-用结构体数组做计算

来源:互联网 发布:sql优化的几种方法 编辑:程序博客网 时间:2024/06/04 18:03
01./*       02.* 程序的版权和版本声明部分       03.* Copyright (c)2013, 烟台大学计算机学院学生       04.* All rightsreserved.       05.* 文件名称:read .cpp                                  06.* 作    者:赵冠哲                                   07.* 完成日期:2013年03月09日       08.* 版本号: v1.0             09.* 输入描述:       10.* 问题描述:     11.*/   #include<fstream>#include<iostream>using namespace std;struct Student{char num[13]; char name[14];int cpp;int math;int english;int total;}student[300];void reward(Student [],int );void sort(Student [],int );void output(Student [],int );int main(){    int i,stuNum=0;ifstream infile("score.txt",ios::in);if(!infile){cerr<<"open error!"<<endl;exit(1);}while(!infile.eof()){infile>>student[stuNum].num>>student[stuNum].name>>student[stuNum].cpp>>student[stuNum].math>>student[stuNum].english;++stuNum;}infile.close();for(i=0;i<stuNum;i++){student[i].total=student[i].cpp+student[i].math+student[i].english;}cout<<"获得奖学金学生的名单:"<<endl;reward(student,stuNum);cout<<endl;cout<<"按照总分排序为:"<<endl;sort(student,stuNum);output(student,stuNum);return 0;}void sort(Student [],int stuNum){int i,j;Student t;for(j=1;j<stuNum;j++)for(i=0;i<=stuNum-j-1;i++)            if(student[i].total<student[i+1].total){t=student[i];student[i]=student[i+1];student[i+1]=t;}return;}void reward(Student [],int stuNum){int i,j;sort(student,stuNum);for(i=0;i<stuNum;i++){if(student[i].cpp>=60&&student[i].math>=60&&student[i].english>=60)j++;}for(j=0;j<=30;j++){cout<<student[j].name<<"     ";}return;}void output(Student [],int stuNum){for(int i=0;i<stuNum;i++){cout<<student[i].num<<"   "<<student[i].name<<"   "<<student[i].cpp<<"    "<<student[i].math<<"    "<<student[i].english<<"   "<<student[i].total<<endl;}return;}


运行结果: