十七周任务二

来源:互联网 发布:易语言刷qb源码 编辑:程序博客网 时间:2024/04/29 07:18

17周任务

作者:董宝文

时间: 2011-12-16

 

#include<iostream>#include<fstream>#include<string>#include<iomanip>using namespace std;struct student{ char num[12]; string name; int grade[3]; int sum;};int main(){ void open_file(student *p);    void select_score(student *p);    void show_score(student *p);    void school_reward(student *p);    student student[180],score,*p;    p=student; open_file(p);    select_score(p); cout<<"学号"<<setw(24)<<"姓名"<<setw(9)<<"c++"<<setw(9)<<"高数"<<setw(8)<<"英语"<<setw(8)<<"总成绩"<<endl;    show_score(p);    cout<<"获得奖学金的同学名单为:"<<endl;    school_reward(p); return 0;}//定义输入数据函数void open_file(student *p){ int j; ifstream infile("score.txt",ios::in); if(!infile) {  cerr<<"open error!"<<endl;  exit(1); } for(j=0;j<180;j++) {  infile>>(p+j)->num>>(p+j)->name>>(p+j)->grade[0]>>(p+j)->grade[1]>>(p+j)->grade[2];       (p+j)->sum=((p+j)->grade[0]+(p+j)->grade[1]+(p+j)->grade[2]); } infile.close();}//定义顺序处理函数void select_score(student *p){ int i,j,t;  for(j=0;j<179;j++)  for(i=0;i<179-j;i++)   if( (p+i)->sum <(p+i+1)->sum )   {    t=(p+i)->sum;    (p+i)->sum=(p+i+1)->sum;    (p+i+1)->sum=t;   }}//定义输出函数void show_score(student *p){ int i; for(i=0;i<180;i++) {  cout<<(p+i)->num<<setw(16)<<(p+i)->name<<setw(8)<<(p+i)->grade[0]<<setw(8)<<(p+i)->grade[1]<<setw(8)<<(p+i)->grade[2]<<setw(8)<<(p+i)->sum<<endl; }}//定义奖学金函数void school_reward(student *p){   int i=0,n=0;  while (n<30) {  if((p+i)->grade[0] >= 60 && (p+i)->grade[1] >= 60 && (p+i)->grade[2] >= 60)  {   n++;   cout<<(p+i)->num<<(p+i)->name<<endl;  }  i++; }} 


运行结果:

 
17周任务(一)


经验积累:

1.明白上课讲的结构体应用

2.这我是看的学佳姐的,声明一下。。。。。。

3.原来打开文件是这样。。。。。。

4.有的地方还不是很明白,会尝试用其他方法做这个任务的

 

 

上级感言:革命尚未成功,同学我仍需努力。。。。。。

 

原创粉丝点击