类在循环体中的生命期(找出最大分数对应人的信息)

该程序目的在于找出在一群人中分数最大的所对应的人的信息;
如果使用数组来储存信息,那么将会浪费空间,因为有用的信息只是分数最大的那个;这时,明白在类在循环体中的生命期就可以很巧妙得得到分数最大的那个人;

如果在一个循环体中定义一个类,那么,该类得生命期只在那次循环。

while(1)
{
student s(…);
if(…)
break;
}
更多请运行以下程序:

输入人得ID 和成绩;
如果输入ID为0时出循环;

#include <iostream>
using namespace std;
class Mark{
 int ID;
 float grade;
 public:
  int getid(){return ID;}
  float getgrade(){return grade;  }
  Mark(int id,float g):ID(id),grade(g){cout<<"The begin of ID:"<<ID<<endl;  }
  Mark():ID(0),grade(0){cout<<"The begin of ID:"<<ID<<endl;  }
  ~Mark(){cout<<"The end of ID:"<<ID<<endl;  }
  bool operator>(const Mark &m){if(grade>m.grade)return 1;else return 0; }
};
ostream& operator<<(ostream& co,Mark &s){
 co<<"ID:"<<s.getid()<<",成绩:"<<s.getgrade()<<endl;
 return co; 
}
int main()
{
 int id,i=0;
 float g;
 Mark m;
 while(1)
 {
  cout<<"第"<<i+1<<"次循环开始"<<endl;
  cin>>id;
  if(id==0)
  break;
  i++;
  cin>>g;
  Mark mk(id,g);
  if(mk>m)
  m=mk;
  cout<<"第"<<i<<"次循环结束"<<endl; 
 }
 cout<<"成绩最高的学生的信息为:"<<m<<endl;
 return 0;
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值