1 / 19
文档名称:

5.5 类与对象应用的例子.ppt

格式:ppt   页数:19页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

5.5 类与对象应用的例子.ppt

上传人:szh187166 2015/11/3 文件大小:0 KB

下载得到文件列表

5.5 类与对象应用的例子.ppt

相关文档

文档介绍

文档介绍:§  类与对象应用的例子
1. 使用类和对象构造程序的实例
[例]请用C++语言构造一个模拟加油站油泵的对象工作
    正常情况下,我们在任何时刻,应该知道每公斤汽油的价格和油泵所在的油桶中还有多少汽油。当一个加油的请求出现时,如果要求加油的数量少于(或等于)油桶中的汽油数量时,就满足这个加油请求。否则,只能抽出油桶所剩下的汽油给予加油。
    每次抽出汽油加油后,应显出被抽出加油的汽油数量及价格;同时,还要计算出加油后汽油桶里剩余的汽油量。
1)问题分析
    根据要求,我们可设计出如下形式的油泵对象模型:
2)关于操作的具体分析
    油泵进入服务
        初始化油桶中汽油的数量
        初始化每公斤汽油的价格
    显示操作(函数)
        显示油桶中汽油的数量
        显示每公斤汽油的价格
抽出汽油进行加油的操作(函数)
    IF (油桶中汽油数量大于或等于需要被抽出的汽油数量)
        将抽出数量设置成需要抽出的数量
    ELSE 将抽出数量设置成油桶中所剩汽油的数量
    ENDIF
    将油桶中汽油的数量减去被抽出汽油的数量
    计算总金额(汽油单价乘以被抽出数量)
    显示被抽出的汽油数量
    显示油上剩下的汽油数量
    显示应付金额
3)归纳以上分析可得到以下程序:
#include<>
#include<>
const float AMTINT=;    //初始化油桶中的油量
const float PRICE=;    //单价
class Pump
{ protected:
    float amtint, price;
  public:
    Pump(float, float);    //构造函数
    void values( );
    void request( float);
};
Pump::Pump(float start, float todays)
{ amtint=start; price=todays; }
void Pump::values( )
{ cout<<"The gas tank has: "<<amtint<<endl;
  cout<<"The price per kg of gas is: "<<price<<endl;
}
void Pump::request( float pumpamt)
{ float pumped;
  if( amtint>=pumpamt ) pumped=pumpamt;    //满足
  else pumped= amtint;
  amtint=amtint-pumped;    //加油后剩余数
  cout<<pumpamt<<" kg were requested"<<endl;
  cout<<pumped<<" kg were pumped"<<endl;
  cout<<amtint<<" kg remain in the tank"<<endl;
  cout<<"The total price is: "<<(pumped*price)<<endl;
}
void main( )    //演示程序
{ Pump obj(AMTINT, PRICE);    //创建一个油泵对象
  ( );    //显示当前状态
  cout<<endl;
  ();    //要求加油
  cout<<endl;
  ();    //两次要求加油
}
根据程序功能分析,应得到如下执行结果:
The gas tank has:
The price per kg of gas is:

kg were requested
kg were pumped
kg remain in the tank
The total price is:

正常情况下,我们在任何时候,应该知道每公斤汽油的价格和油泵所在的油桶中还有多少汽油。当一个加油的请求出现时,如果要求加油的数量少于(或等于)油泵中的汽油数量时,就满足这个加油请求。否则,只能抽出油桶所剩下的汽油给加油。
每次抽出汽油加油后,应显出被抽出加油的汽油数量及价格;同时,