第2周项目三-用结构体数组做计算

来源:互联网 发布:b2b发布软件 编辑:程序博客网 时间:2024/05/16 10:00

/* * Copyright (c) 2013, 烟台大学计算机学院                     * All rights reserved.                     * 文件名称:test.cpp                     * 作    者:徐凯旋                    * 完成日期:2013 年 3 月 10 日                     * 版 本 号:v1.0                                       * 输入描述:无                     * 问题描述:从文件中读入,放到结构体数组中,并输出。                                      */                     #include<iostream>#include <fstream>using namespace std;struct Student{ char num[13]; char name[20]; int cpp; int math; int english; int score;};void sort(Student [],int );void output(Student [],int );  void money(Student [],int );int main(){ int stuNum=0,i; struct Student student[200]; 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].score=student[i].cpp+student[i].english+student[i].math; } cout<<"获得奖学金的学生为:"<<endl; money(student,stuNum); cout<<endl; cout<<"按照总分降序排序:"<<endl; sort(student,stuNum); output(student,stuNum); return 0;}void sort(Student student[],int stuNum){ int i,j; struct Student a[1]; for(i=0;i<stuNum;i++){  for(j=0;j<stuNum-1;j++)   if(student[j].score<student[j+1].score){    a[0]=student[j];    student[j]=student[j+1];    student[j+1]=a[0];   } } return ;}void output(Student student[],int stuNum){ int i; for(i=0;i<stuNum;i++){   cout<<student[i].num<<" "<<student[i].name<<" "<<student[i].cpp<<" "<<student[i].math<<" "<<student[i].english<<" "<<student[i].score<<endl; } return ;}void money(Student student[],int stuNum){ int i,num; sort(student,stuNum); for(i=0;i<stuNum;i++){  if(student[i].cpp>60&&student[i].english>60&&student[i].math>60)   num++; } for(num=0;num<=30;num++){  cout<<student[num].name<<" "; } return ;  }


运行结果:


原创粉丝点击