首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
使用VC6打开考生文件夹proj2下的工程proj2,其中有两个类:一是销售类(sale),用于表示按照。件商品的基本价格进行销售;另一个是打折销售类(DiscountSale),用于表示在基本价格基础上按一个折扣比例进行销售。DiscountSale类继
使用VC6打开考生文件夹proj2下的工程proj2,其中有两个类:一是销售类(sale),用于表示按照。件商品的基本价格进行销售;另一个是打折销售类(DiscountSale),用于表示在基本价格基础上按一个折扣比例进行销售。DiscountSale类继
admin
2021-06-10
115
问题
使用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()eonst
{
return price;
}
double Sale::savings(const Sale&other)const
{
//**********found**********
____________;//返回当前对象价格比other贵多少的差价
}
class DiscountSaLle: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 DiseountSale::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 firsl,.bill()
解析
Sale类有一个数据成员:保护成员price,表示商品的价格;两个构造函数:默认构造函数Sale()将类成员price初始化为0,构造函数sale(double the_price)将成员price初始化为the—price;两个成员函数:bill()函数是一个虚函数,返回price的值;savings()函数返回参数t)ther所引用的对象比当前对象便官的差价。
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(diseount)
转载请注明原文地址:https://kaotiyun.com/show/Wvfp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
使用VC6打开考生文件夹下的源程序文件modi3.cpp。其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。完成以下功能:(1)基类Person完成打印功能,定义其中的打印函数为虚函数,请在注释//********1********后
请使用【答题】菜单命令或直接用VC6打开考生文件夹下的工程prog3,其中声明了ValArray类,该类在内部维护一个动态分配的整型数组。ViArray类的复制构造函数应实现对象的深层复制。请编写ValArray类的复制构造函数。在main函数中给出了一组
使用VC6打开考生文件夹下的源程序文件modi3.cpp,其中定义了用于表示雇员的Employee类,但类Employee的定义并不完整。请按要求完成下列操作,将类CEmployee的定义补充完成。(1)定义私有数据成员name、street、c
使用VC6打开考生文件夹下的源程序文件modi3.cpp。其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。完成以下功能:(1)定义私有常量PI,请在注释//********1********后添加适当的语句。(2)完成类的私有常量PI的赋
有如下类定义:classPoint{public:voidSetX(intxx){x=xx;}protected:voidSetY(intyy)
分析下面程序,该程序的运行结果是()。#inc1ude<iostream.h>classTestclass{public:staticintm,Testclass(){
软件设计中划分模块的一个准则是()。
下列关于运算符函数的描述中,错误的是()。
有如下类定义:classMyClass{intb;chara;doublec;public:MyClass():c(0.0),b(0),a(’,’){}};创建这个类的对象时,数据成员
已知类IMS中两个成员函数的声明为“voidlisten()const;”与“voidspeak();”,另有两个对象的定义为“IMSobj1;”与“constIMSobj2;”,则下列语句中,产生编译错误的是()。
随机试题
下列组织中属于国家行政机关的是()。
A,阵发性腹痛B,持续性腹痛C,两者都有D,两者都无胃十二指肠溃疡穿孔
患者,男,40岁,因大量蛋白尿,高度浮肿,因诊断为肾病综合征而入院治疗。肾穿活检病理为“微小病变型”,给予泼尼松60mg/d口服,症状有所控制。治疗3周后,又出现大量蛋白尿,双下肢浮肿加重,肾功能减退。此时首先应考虑为
下列具有受体酪氨酸蛋白激酶活性的是
后马托品丙胺太林
某水利枢纽工程由水闸、泵站、灌溉引水洞及堤防等建筑物组成。其中水闸共3孔,每孔净宽8m,采用平板钢闸门,闸门采用一台门式启闭机启闭。在施工过程中发生如下事件:事件一:为加强枢组工程施工质量与安全控制,施工单位设立安全生产管理机构,配备了专职安全生产管理
某公司是一家高新技术企业,目前正在进行股份制改造。公司高层决定以此为契机,对公司进行重新设计,并着力进行组织文化建设,以形成鼓励创新和民主参与的文化。为此,公司决定聘请某著名管理咨询公司帮助公司进行变革。双方商定,在组织结构设计中,应重点考虑公司战略、管理
下列有关我国税收执法权的表述中,正确的是()。
根据我国宪法的规定,下面不属于我国公民所享有的政治自由的是()。
汽车保险公司的统计数据显示:在所处理的汽车被盗索赔案中,安装自动防盗系统汽车的比例明显低于未安装此种系统的汽车。这说明,安装自动防盗系统能明显减少汽车被盗的风险。但警察局的统计数据却显示:在报案的被盗汽车中,安装自动防盗系统的比例高于未安装此种系统。这说明
最新回复
(
0
)