17周实验报告1

来源:互联网 发布:java 对象equals方法 编辑:程序博客网 时间:2024/06/08 13:50

//*实验目的:学会利用结构体*实验内容:所有同学的成绩表等用结构体做* 程序头部注释开始* 程序的版权和版本声明部分* Copyright (c) 2011, 烟台大学计算机学院学生* All rights reserved.* 文件名称: * 作 者:朱亚楠

* 完成日期: 2011年 12 月 19 日* 版本号: zyn.01

*//

#include <fstream>#include <iomanip>#include <string>#include <iostream>using namespace std;struct Student{char num[12];string name;int grade[3];int sum;};int main(){void open_file(Student *p); //从文件中读取数据void select_socre(Student *p); //对数据进行排序void grade_place(Student *p);//输出降序后的数据void school_reward(Student *p);//输出获得奖学金的同学名单。Student student[180],temp,*p;p=student;open_file(p);select_socre(p);cout<<"成绩排名"<<endl;grade_place(p);cout<<"获得奖学金的同学"<<endl;school_reward(p);return 0;}void open_file(Student *p){int i;ifstream infile("score.txt",ios::in);if(!infile){cerr<<"open error!"<<endl;exit(1);}for(i=0;i<180;i++){infile>>(p+i)->num>>(p+i)->name>>(p+i)->grade[0]>>(p+i)->grade[1]>>(p+i)->grade[2];(p+i)->sum=((p+i)->grade[0]+(p+i)->grade[1]+(p+i)->grade[2]);}infile.close();}void select_socre(Student *p) //对数据进行排序{Student temp;int i , j;for(j=0;j<179;j++){for(i=0;i<179-j;i++){if((p+i)->sum<(p+i+1)->sum){temp=*(p+i);*(p+i)=*(p+i+1);*(p+i+1)=temp;}}}}void grade_place(Student *p) //输出降序后的数据{for(int i=0;i<180;i++){cout<<(p+i)->num<<" ";cout<<setw(8)<<(p+i)->name;cout<<setw(8)<<(p+i)->grade[0];cout<<setw(8)<<(p+i)->grade[1];cout<<setw(8)<<(p+i)->grade[2];cout<<setw(8)<<(p+i)->sum<<endl;}}void school_reward(Student *p) //输出获得奖学金的同学名单。{for(int i=0;i<30;i++){if((p+i)->grade[0]>=60&&(p+i)->grade[1]>=60&&(p+i)->grade[2]>=60){if(i%5==0)cout<<endl;cout<<setw(12)<<(p+i)->name;}else i--;}cout<<endl;}

 
原创粉丝点击