十七周任务二

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.有的地方还不是很明白,会尝试用其他方法做这个任务的

 

 

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

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值