首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读下列说明和C++代码,填补代码中的空缺。 【说明】 设计RGB方式表示颜色的调色板,进行绘图,其类图如图5一1所示。该程序的C++代码附后。 【C++代码】 #include <iostream> #include <stdlib.h
阅读下列说明和C++代码,填补代码中的空缺。 【说明】 设计RGB方式表示颜色的调色板,进行绘图,其类图如图5一1所示。该程序的C++代码附后。 【C++代码】 #include <iostream> #include <stdlib.h
admin
2016-09-08
42
问题
阅读下列说明和C++代码,填补代码中的空缺。
【说明】
设计RGB方式表示颜色的调色板,进行绘图,其类图如图5一1所示。该程序的C++代码附后。
【C++代码】
#include <iostream>
#include <stdlib.h>
#include<ctime>
using namespace std;
class MyColor{
private:
int red; int green; int bluef
public:
MyColor(){red = 0; green = 0; blue=0; }
~MyColor(){ }
MyColor(int red, int green, int blue){
this一>red = red; this一>green = green; this一>blue = blue; }
voici print(){
cout<<”Red:"《 red《 "\tGreen:"《 green《 "\tBlue "《 blue
<< endl;
}
};
class Palette {
private:
int number; MyColor** palette;
public:
Palette(){ number = 256; palette =(MyColor**)malloc
(sizeof(MyColor*)*number); }
~Palette(){
for(int i= 0; i < number; i++){ delete palette[i); }
(1);
Palette(MyColor** pale, int number){
(2)= num:ber;
palette =(MyColor**)malloc(sizeof(MyColor*)*number);
memcpy(palette, pale, sizeof(pale)*number);
}
void print(){
for(int i = 0; i < number; i++){
.
,
palette
一>print();
}
};
class Drawing{
public:
(3)int COLORNUMBER=16;
public:
~Drawing(){ )
void draw(){
Palette* palette;
int red, green, blue;
MyColor* color[COLORNUMBER];
srand((unsigned)time(0));
for(int i=0; i<COLORNUMBER; i++){
red=rand()% 256; green=rand()00 256; blue=rand()00 256;
color
=
(4)
(red, green, blue);
}
palette=new Palette(color, COLORNUMBER);
palette一>print();
for(int i=0; i<COLORNUMBER, i++)
delete color
;
}
};
int main(){
Drawing*d=
(5);
d一>draw();
delete d;
}
选项
答案
(1)free(palette) (2)this一>number (3)static const (4)new My Color (5)new Drawing()
解析
本题考查C++程序设计的能力,涉及类、对象、方法定义和相关操作。要求考生根据给出的案例和代码说明,认真阅读并理清程序思路,然后完成题目。
先考查题目说明。本题目中涉及到颜色、调色板、绘图等类以及初始化和调色相关等操作。根据说明进行设计。
类图中给出三个类Drawing.Palette和MyColor及其之间的关系。Drawing与Palette、MyColor之间具有关联关系,Palette与MyColor之间是聚合关系。
MyColor为以RGB方式表示颜色,由属性red、green和blue表示,每个MyColor对象即为一个RGB颜色。MyColor具有两个构造器,缺省构造器将RGB颜色均初始化为0;带参数的构造方法将当前对象的RGB值设置为调用构造方法时消息中所传递的参数值。print()用来输出当前对象的RGB值供测试使用。
Palette类用于表示调色板,其调色板颜色数量,用血型number表示,其MyColor对象指针数组,用指向指针的指针MyColor** palette表示。Palette的缺省构造方法中,将number设置为256色,并将palette指向动态申请存储256色MyColor对象指针的空间。另一个构造方法Palette(MyColor** pale,int number)中参数有指向MyColor对象指针数组的指针pale以及颜色数量number。该构造方法设置当前调色板对象的颜色数量,用this一>number表示当前对象的number属性,动态申请该数量对应的MyColor指针类型的number个存储空间,并将此存储空间复制给属性palette。析构方法先用delete删除用new创建的每个MyColor对象,并用free释放采用malloc函数动态申请的存放MyColor对象指针的存储空间。print()方法用来打印palette中每个颜色对象的颜色,供测试使用。在print()函数体内部,为每个数组元素调用当前对象的print()打印一个RGB颜色。
Drawing类属性int COLORNUMBER定义绘画时所用的颜色数量(本例中设置为16表示基于1 6色绘图)。void draw()方法声明调色板Palette palette、定义COLORNUMBER色MyColor对象指针数组color,随机生成RGB颜色并根据此颜色创建COLORNUMBER个MyColor对象.即循环COLORNUMBER次,每次循环生成随机的RGB颜色后调用MyColor的带参数构造器创建MyColor对象,即:
color
=new MyColor(red, green, blue);
所有颜色数组创建完成后,基于所创建的COLORNUMBER个MyColor对象指针数组创建调色板,即:
palette=new Palette(color, COLORNUMBER);
调用调色板的print()方法进行打印(模拟绘图)。最后将MyColor对象指针元素进行删除。由于COLORNUMBER的作用是绘图的颜色数量,在创建MyColor对象指针数组时作为元素个数,所以,需要是static const静态常量。
主控逻辑代码在main函数中实现。在main()函数中,创建Drawing对象指针d,即生成一个绘图对象:
Drawing*d=new Drawing();
并进行绘图,即调用d的draw()方法,实现绘图功能。在使用完对象之后,需要对new出的对象采用delete操作进行释放对象,对d对象进行删除,即delete d;,释放内存。
综上所述,空(1)需要表示释放malloc函数申请的动态内存的函数,即free(palette);空(2)需要表示当前对象的number属性,即this一>number;空(3)需要修饰COLORNUMBER为静态常量,即static const;空(4)需要调用MyColor的构造方法创建MyColor对象,即new MyColor;空(5)处为创建Drawing类的对象指针d的newDrawing()。
转载请注明原文地址:https://jikaoti.com/ti/tHW7FFFM
本试题收录于:
程序员下午应用技术考试题库软考初级分类
0
程序员下午应用技术考试
软考初级
相关试题推荐
假设100个数据的平均值为82.31,其中有10个数据又发生了如下增减变化:+3.52,+2.87,-4.13,+5.34,-2.87,+2.50,-3.52,+4.23,-5.04,+0.10,则新的平均值变为(26)。
数据处理有批处理和联机实时处理两种基本的处理方式。以下各种类型的数据处理中,______宜采用联机实时处理方式。
为了提高磁盘存取效率,人们常每隔一段时间进行磁盘碎片整理。所谓磁盘碎片是指磁盘使用一段时间后,(20)。
某咨询顾问公司派小强统计本市各品牌汽车的占有率,以下4种统计方法中,小强应采用______方法,使估算结果较为可信。
在PowerPoint2007中,为精确控制幻灯片的放映时间,可使用______功能。
在Excel中,A1,A2,B1,B2,C1,C2单元格的值分别为1、2、3、4、3、5,在D1单元格中输入函数“=SUM(A1:B2,B1:C2)”,按回车键后,D1单元格中显示的值为______。
下列关于Word绘图功能的叙述中,不正确的是__________。
采购了多种品牌的部件进行计算机组装,每个部件都正常,连接、安装、配置操作也完全正确,但系统仍不能正常使用。很可能是____________问题。
防火墙包过滤规则的默认策略为拒绝,下表给出防火墙的包过滤规则配置界面。若要求内部所有主机能使用IE浏览器访问外部IP地址为202.117.118.23的Web服务器,为图中(1)~(4)空缺处选择正确答案。(1)A.允许B.拒绝(2)A.192
ASP是(1)网页制作技术。A.动态B.静态从以下备选答案内为程序中(5)~(9)处空缺部分选择正确答案。(5)A.CreatObjectB.ConnectC.ExecuteSQLD.Open()(6)A.<body>
随机试题
我国学校课程的雏形“六艺”是指“礼、乐、射、御、书、数”。()
A.胸腔漏出液B.胸腔渗出液C.两者都有D.两者都无胸膜炎症可产生
崩漏之时,急予独参汤服之,此治疗属于“治崩三法”中的
大手术后的病人宜采用何种饮食()
完善公平贸易政策,健全贸易运行()机制,增强应对贸易争端能力,维护企业合法权益和国家利益。
可以反映企业的短期偿债能力和长期偿债能力的报表是()。
根据资产减值准则的规定,固定资产计提减值后,下列情况中该减值可以予以转销的有()。
假设某企业预测的年赊销额为2000万元,应收账款平均收账天数为45天,变动成本率为60%。资本成本为8%,一年按360天计,则应收账款的机会成奉为()万元。
构建社会主义和谐社会的目标和主要任务是什么?
请以外语学院学生会的名义写一则篮球比赛延迟通知。通知的内容是原定于后天(六月二十日)举办的2008级和2009级之间的篮球比赛,由于近日的阴雨天气将延期举行。新的比赛日期定于下周四(六月二十五日)举行,比赛地点不变,还是校体育馆,欢迎老师和同学们到时积极参
最新回复
(
0
)