§ [例]请用C++语言构造一个模拟加油站油泵的对象工作 正常情况下,我们在任何时刻,应该知道每公斤汽油的价格和油泵所在的油桶中还有多少汽油。当一个加油的请求出现时,如果要求加油的数量少于(或等于)油桶中的汽油数量时,就满足这个加油请求。否则,只能抽出油桶所剩下的汽油给予加油。 每次抽出汽油加油后,应显出被抽出加油的汽油数量及价格;同时,还要计算出加油后汽油桶里剩余的汽油量。)问题分析 根据要求,我们可设计出如下形式的油泵对象模型:)关于操作的具体分析 油泵进入服务 初始化油桶中汽油的数量 初始化每公斤汽油的价格 显示操作(函数) 显示油桶中汽油的数量 (函数) IF(油桶中汽油数量大于或等于需要被抽出的汽油数量) 将抽出数量设置成需要抽出的数量 ELSE将抽出数量设置成油桶中所剩汽油的数量 ENDIF 将油桶中汽油的数量减去被抽出汽油的数量 计算总金额(汽油单价乘以被抽出数量) 显示被抽出的汽油数量 显示油上剩下的汽油数量 )归纳以上分析可得到以下程序:#include<>#include<>constfloatAMTINT=; //初始化油桶中的油量constfloatPRICE=; //单价classPump{protected: floatamtint,price; public: Pump(float,float); //构造函数 voidvalues(); voidrequest(float);};::Pump(floatstart,floattodays){amtint=start;price=todays;}voidPump::values(){cout<<"Thegastankhas:"<<amtint<<endl; cout<<"Thepriceperkgofgasis:"<<price<<endl;}voidPump::request(floatpumpamt){floatpumped; if(amtint>=pumpamt)pumped=pumpamt; //满足 elsepumped=amtint; amtint=amtint-pumped; //加油后剩余数 cout<<pumpamt<<"kgwererequested"<<endl; cout<<pumped<<"kgwerepumped"<<endl; cout<<amtint<<"kgremaininthetank"<<endl; cout<<"Thetotalpriceis:"<<(pumped*price)<<endl;}() //演示程序{Pumpobj(AMTINT,PRICE); //创建一个油泵对象 (); //显示当前状态 cout<<endl; (); //要求加油 cout<<endl; (); //两次要求加油}根据程序功能分析,应得到如下执行结果:Thegastankhas:: :,我们在任何时候,应该知道每公斤汽油的价格和油泵所在的油桶中还有多少汽油。当一个加油的请求出
5.5 类与对象应用的例子 来自淘豆网www.taodocs.com转载请标明出处.