首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
使用VC6打开考生文件夹proj2下的工程proj2,其中有两个类:一是销售类(Sale),用于表示按照一件商品的基本价格进行销售;另一个是打折销售类(DiscountSale),用于表示在基本价格基础上按一个折扣比例进行销售。DiscountSale类继
使用VC6打开考生文件夹proj2下的工程proj2,其中有两个类:一是销售类(Sale),用于表示按照一件商品的基本价格进行销售;另一个是打折销售类(DiscountSale),用于表示在基本价格基础上按一个折扣比例进行销售。DiscountSale类继
admin
2017-07-04
36
问题
使用VC6打开考生文件夹proj2下的工程proj2,其中有两个类:一是销售类(Sale),用于表示按照一件商品的基本价格进行销售;另一个是打折销售类(DiscountSale),用于表示在基本价格基础上按一个折扣比例进行销售。DiscountSale类继承了sale类。类的主要数据成员的含义和成员函数的功能要求在程序注释中有说明。请在程序中的横线处填写适当的代码,然后删除横线,完成程序的功能。此程序的正确输出结果应为:
Discount item is cheaper.
Saving is 0.1
注意:只能在横线处填写适当的代码,不要改动程序中的其他内容。
#include
using namespace std;
class Sale
{
public:
Sale();//默认构造函数,将price初始化为0
Sale(double the_price);//构造函数,用the_price初始化price
virtual double bill()const;//返回当前商品的价格(基本价)
double savings(const Sale&other)const;//返回参数other所引用的对象比当前对象便宜的差价
protected:
double price;//商品的基本价格(不打折的价格)
};
Sale::Sale():price(0){)
Sale::Sale(double the_price):price
(the_price){)
double Sale::bill()const
{
return price;
}
double Sale::savings(const.Sale
&other)const
{
//ERROR******found******
_________;//返回当前对象价格比other贵多少的差价
}
class DiscountSale:public Sale//打折
销售类继承销售类
{
public:
DiscountSale();//默认构造函数,将
discount初始化为0
DiscountSale(double the_price,
double the discount);//构造函数,the
price是基本价格;the discount是折扣百
分比
virtual double bill()const;//返
回本商品销售价格(即打折以后的实际售价,覆
盖了基类的bill函数)
protected:
double discount;//折扣百分比。例如
降价至原价的70%,此成员值应为70
{;
DiscountSale:: DiscountSale ( ):discount(0){}
DiScountSale::DiscountSale(double
the_price,double the_discount)
:Sale(the_price),discount(the
discount){)
double DiscountSale::bill()const
{
double fraction=discount/100 ;
// ******found******
________;//返回本对象打折以
后的实际售价
}
bool operator<(const Sale&first,
const Sale&second)
{
// ******found******
__________,//判断是否first价
格低于second价格
}
int main()
{
Sale simple(10.00);
DiScountSale diScount(11.00,
90);
if(discount
{
cout<<”DiScount item iS cheaper\n”;
// ******found******
//这里输出购买discount比购买
simple节省多少钱
cout<<”Saving is”<<
_________<
}
else
cout<<”DiScount item is not
cheaper.\n”;
return 0 ;
}
选项
答案
(1)return this->bill()-other.bill() (2)return fraction*price (3)return first.bill()
解析
Sale类有一个数据成员:保护成员price,表示商品的价格;两个构造函数:默认构造函数SMe()将类成员price初始化为0,构造函数Sale(double the_price)将成员price初始化为the_price;两个成员函数:bill()函数是一个虚函数,返回price的值;savings()函数返回参数other所引用的对象比当前对象便宜的差价
DiscountSale类继承Sale类,它有两个数据成员:保护成员price继承于Sale类,表示商品价格,保护成员discount表示商品折扣百分比;两个成员函数:savings()函数继承于Sale类;bill()函数继承Sale类并被改写。
main()函数中,首先构造两个类对象:Sale类对象simple和DiscountSale类对象discount,其中simple对象的price被赋值为10.00;discount对象的price被赋值为11.00,成员discount被赋值为90,即折扣为90%
(1)if语句的条件中,将discount与simple进行比较,如果main()主数的discount小于simple,那么说明discount的实际价格比simple价格便宜;所以需要重载“<”运算符,题意中重载的“<”运算符函数接收两个Sale类对象的引用,通过对象的引用,比较两个对象的实际价格,所以重载“<”运算符函数体中,若first对象引用的商品实际价格小于second对象引用的商品实际价格,那么函数值返回true,可知函数体中需要补充的语句如下:
return first.bill()
(2)由于bill()是虚函数,且重载“<”运算符函数的参数是引用,所以调用bill()函数时,使用了多态机制,引用的对象是Sale类对象,调用Sale类中的bill()函数,引用的对象是DiscountSale类对象,那么将调用DiscountSale类的bill()函数,bill()函数体中,需要返回的是商品的实际价格,即折扣完的价格,所以需要将返回打过折的价格:DiscountSale类中,bill()函数体中需要补充的语句如下:
return fraction*price
(3)savings()函数需要计算当前对象比other。引用的对象在价格上贵多少,所以savings()函数体中需要补充的语句如下:
return this->bill()一other.bill()
同样,this指针引用当前对象,other是引用对象,所以可以与bill()虚函数一起使用多态机制,获得当前对象和other对象的实际价格,再进行差值计算
(4)main()函数中,程序判断discount小于simple后,输出提示信息,再调用savings()函数输出discount和simple的差值,这里需要计算discount比simple节省多少钱,所以需要将simple当做当前对象,discount当做参数传人savings()函数,所以补充语句如下:
simple.savings(discount)
转载请注明原文地址:https://kaotiyun.com/show/ELAp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
在下列基类的定义中,有无virtual修饰use成员函数的结果将不同,其原因是【 】。当use()为虚拟函数时的程序执行结果:sizeof(A)=8sizeof(B)=12
有下列二叉树,对此二叉树前序遍历的结果为( )。
下列程序执行结果是 #include <iostream.h> class A { public: int a; A():a(10){cout<<a<<endl;} }; void main()
在软件生存周期中,能准确地确定软件系统必须做什么和必须具备哪些功能的阶段是
数据结构分为逻辑结构和存储结构,循环队列属于______结构。
符号常量可以用宏定义define和______来表示。
含有纯虚函数的类称为______。
有如下类声明;classSAMPLE{intn;public:SAMPLE(inti=0):n(i){}voidsetValue(intn0);}
下列运算符中,在C++语言中不能重载的是
下列有关类继承的叙述中,错误的是()。
随机试题
()对调节体内糖代谢乃至热能代谢过程具有重要作用,缺乏后容易患脚气病。
我国农村养老保险中投保人领取养老保险金的保证期为()
某大型运输公司下设陆运事业部和水运事业部,分别从事陆运和水运业务。2014年陆运事业部的车辆资产如下:(1)年初拥有整备质量5吨的货车26辆;整备质量4吨的挂车10辆。(2)因业务扩张需要,2014年2月进口11辆1.6升排气量的高档小
固定资产净残值率一般按固定资产原值的()确定。
幼儿记忆能力的强弱很大程度上在于记忆方法的运用。()
2009年,我国973计划(含重大科学研究计划)新立和在研项目共547,其中新立项目123项,在研项目424项。国家财政共投入26亿元。2009年我国973计划(含重大科学研究计划)中,有几个领域的投入经费超过2亿元?()
一架战斗机从甲机场匀速开往乙机场,如果速度提高25%,可比原定时间提前12分钟到达,如果以原定速度飞行600千米后,再将速度提高三分之一,可以提前5分钟到达。那么甲乙两机场的距离是()千米。
表单的【】是对象能够执行的、完成相应任务的操作命令代码的集合。
中国菜讲究色香味,这都是说的菜本身,倘若再有个好名字,无形之中就抬高了身价。比方说“贵妃鸡”“东坡肉”,这类菜名本身就容易让人产生好感。所以有修养的烹饪大师,在给自己创造的新菜起名时格外注意它的文化内涵。至于菜是不是好吃,那就是另一回事了。东北菜
Whowillprobablyreadthispage?Thosewhowantto______inAustraliaandNewZealand.WhatinformationdoesAustralianEng
最新回复
(
0
)